C++11標準ライブラリに追加された乱数生成器(RNG; Random Number Generator)のオブジェクトサイズについてメモ。
注意:具体的なオブジェクトサイズは実装依存となるため、下表は各オブジェクト間のオーダー比較程度に解釈すること。
RNG | gcc/64 | gcc/32 | Clang/64 | MSVC/32 | MSVC/64 |
---|---|---|---|---|---|
minstd_rand0 | 8 | 4 | 8 | 4 | 4 |
minstd_rand | 8 | 4 | 8 | 4 | 4 |
mt19937 | 5000 | 2500 | 5000 | 5000 | 5000 |
mt19937_64 | 2504 | 2504 | 2504 | 5008 | 5008 |
ranlux24_base | 208 | 104 | 208 | 200 | 200 |
ranlux48_base | 112 | 112 | 112 | 208 | 208 |
ranlux24 | 216 | 108 | 216 | 204 | 204 |
ranlux48 | 120 | 120 | 120 | 216 | 216 |
knuth_b | 2064 | 1032 | 2064 | 1040 | 1040 |
凡例:gcc/64=gcc 4.8.2/x86_64-unknown-linux-gnu, gcc/32=gcc 4.8.2/i686-pc-cygwin, Clang/64=clang3.3/x86_64-unknown-linux-gnu, MSVC/32=MSVC11(VisualC++2012)/Win32, MSVC/64=MSVC11(VisualC++2012)/x64
関連URL
- cppreference random, cpprefjp random
- https://gist.github.com/yohhoy/8032377