在C语言中,Call Rand()和RdRand之间的速度差异是什么?

时间:2015-05-13 03:12:44

标签: c algorithm random rdrand

按照我之前的问题“What algorithm is Rand() based on in C language?”,我想知道函数算法的原因是我想用RdRand比较它之间的速度差异。

我试着循环它1亿次并计算它的运行时间。

通常,使用硬件创建随机数(RdRand)会使其速度更快,但结果显示其他情况(Rand()3sec V.S. RdRand 10sec)。

有人可以帮我解决这个问题吗?

万分感谢!

1 个答案:

答案 0 :(得分:2)

硬件方法并不总是比软件方法快。

对于look here,它的glibc的sin函数与英特尔的fsin指令相比,你可能感兴趣的是它在大多数情况下都更加准确和快速。

此外,每个实现都有自己的优点/缺点。 RdRand的主要关注点是:

  

随机数生成器符合安全和加密标准,如NIST SP 800-90A,[4] FIPS 140-2和ANSI X9.82。 --- RdRand, Wikipedia

因此,如果您需要快速随机生成并且安全性不是问题,那么您可以使用RdRand并确保其安全性。你可以简单地使用glibc的rand()。