当前位置: 首页 > 知识库问答 >
问题:

CompletableFuture在complete上缓慢工作

仉宪
2023-03-14

所以我在CompletableFuture类上运行了一些测试,我偶然发现了一些我无法解释的奇怪行为。

我已经设法将问题减少到以下代码片段

        long nanos = System.nanoTime();
        CompletableFuture<UUID> someFuture = CompletableFuture.supplyAsync(()->{
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
            }
            return UUID.randomUUID();
        });
        someFuture.get(5, TimeUnit.SECONDS);
        System.out.println((System.nanoTime() - nanos) / 1_000_000 + "ms");
    null

共有1个答案

江展
2023-03-14

uuid.randomuuid的文档中:

静态工厂检索类型4(伪随机生成)的UUID。UUID是使用密码学强的伪随机数生成器生成的。

密码RNGs的一个缺点是速度慢。由于它是一个伪随机数生成器,生成好随机数的缓慢性只存在于创建随机数生成器时。

private static class Holder {
        static final SecureRandom numberGenerator = new SecureRandom();
    } 
SecureRandom ng = Holder.numberGenerator;

如果您不需要加密性强的UUID,您可以使用非加密性强的RNG创建这些UUID:

Random rand=new Random();//do this once

//do this whenever you need a new UUID
UUID uuid=new UUID(rand.nextLong(),rand.nextLong());
 类似资料:
  • 问题内容: 我正在OSX上尝试使用docker beta,主要用于Symfony开发,但是挂载的速度非常慢。即使对于香草Symfony项目,页面加载时间也只有6秒。难以忍受!有没有人找到解决此问题的方法?试图摆脱无业游民,但我只是找不到任何合理的方法来使用docker。 问题答案: 显然,目前有一种解决方法: https://forums.docker.com/t/file-access-in-m

  • 我有一个表,有3000000条记录。 +--------+ 计数(*) +--------+ 发生什么事了?

  • 问题内容: 我正在使用Windows 7,Apache 2,PHP 5,MySQL 5,它们都在同一台计算机上。我发现了一个有趣的问题,我有以下代码: 以上代码的运行时间超过1秒。 当我使用而不是时,运行时间约为10毫秒。 我试图在互联网上找到根本原因,结果是: 最近,我将开发从XP迁移到Windows 7,发现我开发的网页加载时间长达5秒。这当然是不可接受的,所以我不得不找出问题所在。我最终找到

  • 问题内容: 我在CentOS 6.6 32位和openJDK7上使用Tomcat 7.0.57。当我在服务器(生产环境)上启动14个不同的Tomcat实例时,它们中的许多启动时间都太多了。 这是启动日志的一部分,它告诉我所有时间都花在哪里 解决此问题的最佳实践/解决方案是什么? 谢谢! 问题答案: 安全的随机调用可能会被阻止,因为没有足够的熵来将它们提供给/ dev / random。 如果你有线

  • 我在JFrame中有一个AWT画布(我知道Swing和AWT不应该同时使用,但它在Windows上工作得很好,所以我不认为问题是由这个引起的),并使用画布中的BufferStrategy在屏幕上绘制。它在Windows上运行非常流畅,但当我试图在Ubuntu12.04上运行时,它变得慢得令人难以忍受。不仅是呈现,而且JFrame也是无响应的。当我注释掉双缓冲和渲染部分时,它又变得平滑了。我有一个A

  • 问题内容: 我想问问是否有人知道FTP存在Java 7问题吗?我已经使用了Sun Net和Apache Commons Net库,并且都在Java 6上达到了预期的效果。但是,当我将开发环境(Eclipse)切换到1.7时,相同的操作的执行速度非常慢(大约4.5至8KB / s),这些是本地主机服务器和局域网内的另一台服务器。 我尝试了缓冲流,字节到字节的传输,关闭Nagle算法,并使用了Apac