【发布时间】:2019-03-10 12:42:14
【问题描述】:
我需要来自 arc4random_buf 的数十亿个随机字节,我的策略是一次请求 X 个随机字节,并重复多次。
我的问题是 X 应该有多大。由于 arc4random_buf 的 nbytes 参数可以任意大,我想必须有某种内部循环,每次执行其主体时都会产生一些熵。比如说,如果 X 是每次迭代生成的随机字节数的倍数,则性能可以提高,因为我没有浪费任何熵。
我在 macOS 上,不幸的是它是闭源的,所以我不能简单地阅读源代码。是否有任何便携式方法来确定最佳 X?
【问题讨论】:
-
听起来基准测试是您最好的选择。
-
@pjs 有点离题,但我刚刚阅读了您的个人资料,并认为您可以为my question on Cross Validated 提供一些很好的见解?
-
macOS 的大部分内容实际上是开源的。
arc4random_buf()的实现是 here。 -
@pjs 是!最初我期待一个快速的答案,比如“CSPRNGs are good for Monte Carlo simulations”,但阅读这些论文肯定会教会我很多东西。也感谢您的链接!
标签: c macos performance random arc4random