gpt4 book ai didi

linux - 为什么 reading/dev/random byte block 如此频繁?

转载 作者:IT王子 更新时间:2023-10-29 01:26:50 25 4
gpt4 key购买 nike

以下调用快速返回:

time dd if=/dev/random bs=1024 count=1
.... 0+1 records in
0+1 records out
49 bytes (49 B) copied, 0.000134028 s, 366 kB/s

real 0m0.004s
user 0m0.001s
sys 0m0.002s

但是,如果/dev/random是一个字节一个字节的读取:

for i in {1..500}; do dd if=/dev/random bs=1 count=1 status=none; done

循环读取几个字节,然后阻塞几秒钟,然后再读取几个字节。在键盘上键入随机字符会大大加快该过程,就像随机池中的熵不足一样。毕竟循环需要很多分钟才能完成。

是什么让逐字节读取 /dev/random 比从中读取一个 block 慢很多?

Uname -a:

Linux ... 2.6.32-431.11.2.el6.centos.plus.x86_64

最佳答案

答案就在你的问题中:

49 bytes (49 B) copied, 0.000134028 s, 366 kB/s

所以它并没有像告诉它的那样复制 1024 个字节,而是只复制了几个然后就停止了。我怀疑这与您在循环阻塞之前在循环中获得的数量相同。

/dev/random 很慢,因为它需要从不同的来源收集随机性,只要没有可用的,它就不会输出任何东西。

如果您需要更快的数字,请使用/dev/urandom。

关于linux - 为什么 reading/dev/random byte block 如此频繁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22686510/

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