gpt4 book ai didi

java - "isProbablePrime"真的需要花费大部分时间来读取文件吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:11 26 4
gpt4 key购买 nike

我刚刚解决了the Project Euler Problem 60 ,但是我的程序还是有点太慢了。我发现大部分时间都花在读取文件上......

看起来 BigInteger.isProbablePrime 使用 SecureRandom 始终从 Linux 设备读取。我的问题是:

  • 真的有必要使用SecureRandom吗?
  • 是否使用/dev/random/dev/urandom
  • 从操作系统读取它们真的是生成良好随机数的最佳方法吗?

AFAIK,java 曾经从操作系统获取一些字节,这些字节被用作基于 SHA1 的 PRNG 的种子,恕我直言,这应该更快。

最佳答案

Is reading them from the OS really the best way for generating good random numbers?

我不知道 isProbablePrime,但 SecureRandom 尝试通过相应的操作系统函数获取随机数,该函数对于随机函数具有非常好的属性。
在 Linux 中,这是由两个虚拟设备 /dev/random/dev/urandom 发生的,当您从文件中读取时,这些位是不可预测的随机的,并且是根据系统发生的事件生成的。

Does /dev/random or /dev/urandom get used?

实际上这是可以配置的,你可以看到这一点。
打开 JRE 的 lib\security 中的 security.properties 文件。那里有一个配置条目。在我的安装中指定了 /dev/urandom

/dev/random/dev/urandom 之间的区别是,如果新的随机位不可用,/dev/random 会阻塞

关于java - "isProbablePrime"真的需要花费大部分时间来读取文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com