随机数效率测试
1 | int main(int argc, char** argv) { |
测试命令:-Wall -O0 -fno-ms-extensions -std=c++14
编译器:g++ (tdm64-1) 4.9.2
(mingw-w64)
随机数生成器 | 平均运行时间(ns) |
---|---|
std::minstd_rand0 |
10.98 |
std::minstd_rand |
11.96 |
std::mt19937 |
11.82 |
std::mt19937_64 |
9.93 |
std::ranlux24_base |
12.57 |
std::ranlux48_base |
10.31 |
std::ranlux24 |
112.13 |
std::ranlux48 |
343.49 |
std::knuth_b |
21.41 |
std::rand |
10.69 |
shift32 |
8.30 |
shift64 |
7.58 |
shift32
,shift64
如下(感谢 zez 同学提供)
1 | std::uint64_t x; |