From 39f6cf4d2e31afebd64cabd5847e93ed590e1cd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Eng=C3=A9libert?= Date: Sun, 18 Jan 2026 10:53:41 +0100 Subject: [PATCH] Add i5 results --- README.md | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/README.md b/README.md index bc5bfbd..35d234a 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,76 @@ Time (s) PRNG 3.7084286 simplerand::Random ``` +Results on Intel Core i5-7300HQ: (with AVX2) + +``` +Time (s) PRNG +0.08816869 simd_rand::specific::avx2::xoshiro256plusplus::Xoshiro256PlusPlusX4 +0.08920241 simd_rand::portable::xoshiro256plusplusx4::Xoshiro256PlusPlusX4 +0.0916341 simd_rand::portable::xoshiro256plusx4::Xoshiro256PlusX4 +0.091638505 frand::Rand +0.09203979 simd_rand::portable::xoshiro256plusx8::Xoshiro256PlusX8 +0.09215377 simd_rand::specific::avx2::xoshiro256plus::Xoshiro256PlusX4 +0.10456483 fast_rands::RomuDuoJrRand +0.10739412 romu::Rng +0.10897199 fast_rands::RomuTrioRand +0.11360018 simd_rand::specific::avx2::shishua::Shishua<32768> +0.12551166 rand_xoshiro::xoshiro256plus::Xoshiro256Plus +0.12791388 simd_rand::portable::xoshiro256plusplusx8::Xoshiro256PlusPlusX8 +0.13942851 rand_xoshiro::xoshiro256starstar::Xoshiro256StarStar +0.14631735 rand_xoshiro::xoroshiro128plus::Xoroshiro128Plus +0.14701757 fast_rands::Xoshiro256PlusPlusRand +0.14716452 rand_xoshiro::xoshiro256plusplus::Xoshiro256PlusPlus +0.16382654 tinyrand::wyrand::Wyrand +0.16435602 shishua::core::ShiShuAState +0.16689982 wyrand::final_v4_2::wyrand::WyRand +0.16744553 fastrand::Rng +0.16864042 rand_xoshiro::xoroshiro128starstar::Xoroshiro128StarStar +0.16963984 wyhash::final3::traits::WyRng +0.17015934 wyhash::v1::traits::WyRng +0.17045826 rand::rngs::small::SmallRng +0.1716554 rand_xoshiro::xoroshiro128plusplus::Xoroshiro128PlusPlus +0.17414004 tinyrand::xorshift::Xorshift +0.17646453 fast_rands::Sfc64Rand +0.18034014 rand_xoshiro::splitmix64::SplitMix64 +0.18191795 tiny_prng::xorshift::Xorshift1024star +0.19055116 tiny_prng::xorshift::Xorshift128 +0.1933505 rand_xoshiro::xoshiro512plus::Xoshiro512Plus +0.2013804 tiny_prng::pcg::PcgXslRrMcg +0.2033752 rand_xoshiro::xoshiro512starstar::Xoshiro512StarStar +0.2053617 mcg59::MCG59 +0.20707493 fast_rands::Lehmer64Rand +0.21336877 rand_xoshiro::xoshiro512plusplus::Xoshiro512PlusPlus +0.22039062 tinyrand::splitmix::SplitMix +0.23350179 tiny_prng::pcg::PcgXslRr +0.23514548 bsd4random::BSD +0.23781174 fast_rands::XorShift64Rand +0.23798868 tiny_prng::xorshift::Xorshift64 +0.23917288 tiny_prng::xorshift::Xorshift64star +0.24470972 rand_xoshiro::xoshiro128plus::Xoshiro128Plus +0.2509169 tiny_prng::pcg::PcgXslRr6432Mcg +0.29076266 rand_xoshiro::xoshiro128starstar::Xoshiro128StarStar +0.3070184 rand_xoshiro::xoshiro128plusplus::Xoshiro128PlusPlus +0.31972992 aes_prng::AesRng +0.32094362 tiny_prng::pcg::PcgXshRs6432 +0.3234704 prng_mt::mt19937::MT19937_64 +0.33205837 tiny_prng::pcg::PcgXshRr6432 +0.3321641 rand_xoshiro::xoroshiro64star::Xoroshiro64Star +0.37840256 rand_xoshiro::xoroshiro64starstar::Xoroshiro64StarStar +0.42188576 quad_rand::RandGenerator +0.45290765 rand::rngs::std::StdRng +0.46695596 tiny_prng::xorshift::Xorshift32 +0.47651544 prng_mt::mt19937::MT19937 +0.47986245 nanorand::rand::wyrand::WyRand +0.5589406 tiny_prng::mt64::Mt19937 +0.6100908 nanorand::rand::pcg64::Pcg64 +1.146011 nanorand::rand::chacha::ChaCha<8> +1.442915 tiny_prng::mt::Mt19937 +1.7194357 shishua::rand::ShiShuARng +3.682478 acorn_prng::Acorn +15.616315 simplerand::Random +``` + [FRand](https://crates.io/crates/frand) is the fastest, however it has no particular mathematical justification beyond the fact its parameters were found empirically to minimize bias. [simd_rand](https://github.com/martinothamar/simd-rand) provides the fastest implementations of common PRNGs. The best on my computer (without AVX512) was a portable one, probably thanks to compiler autovectorization. Sadly this crate is not published on crates.io, only on GitHub.