Skip to content

Latest commit

 

History

History
75 lines (69 loc) · 9.98 KB

File metadata and controls

75 lines (69 loc) · 9.98 KB

Random Number Generator Performance Benchmarks

Auto-generated via RandomPerformanceTests.Benchmark. Run the test to refresh these summary and detail tables.

Summary (fastest first)

Random NextUint (ops/s) Speed Quality Notes
LinearCongruentialGenerator1,338,500,000FastestPoorMinimal standard LCG; fails spectral tests and exhibits lattice artifacts beyond small dimensions.
WaveSplatRandom1,311,200,000FastestExperimentalSingle-word chaotic generator; author notes period 2^64 but provides no formal test results—treat as experimental.
SplitMix641,065,500,000Very FastVery GoodWell-known SplitMix64 mixer; passes TestU01 BigCrush and PractRand up to large data sizes in literature. Vigna 2014
BlastCircuitRandom1,063,400,000Very FastGoodEmpirical PractRand testing to 32GB shows strong diffusion; designed as a chaotic ARX mixer rather than a proven statistically optimal generator.
FlurryBurstRandom943,000,000FastExcellentSix-word ARX-style generator tuned for all-around use; passes TestU01 BigCrush per upstream reference implementation. Will Stafford Parsons (wileylooper)
PcgRandom919,000,000FastExcellentPCG XSH RR 64/32 variant; passes TestU01 BigCrush and PractRand in published results. O'Neill 2014
IllusionFlow849,900,000FastExcellentHybridized PCG + xorshift design; upstream PractRand 64GB passes with no anomalies per author.
RomuDuo759,500,000FastVery GoodROMU family member (RomuDuo); authors report strong BigCrush results with minor low-bit weaknesses in some rotations.
XoroShiroRandom742,500,000FastVery Goodxoshiro128** variant; authors recommend for general-purpose use and report clean BigCrush performance with jump functions. Blackman & Vigna 2019
StormDropRandom721,400,000ModerateExcellent20-word ARX generator derived from SHISHUA; author reports excellent PractRand performance and long periods.
XorShiftRandom601,900,000ModerateFairClassic 32-bit xorshift; known to fail portions of TestU01 and PractRand, acceptable for lightweight effects only. Marsaglia 2003
WyRandom452,700,000SlowVery GoodWyhash-based generator; published testing shows it clears BigCrush/PractRand with wide seed coverage. Wang Yi 2019
SquirrelRandom414,300,000SlowGoodHash-based generator built on Squirrel3; good equidistribution for table lookups but not extensively tested beyond moderate ranges. Squirrel Eiserloh
PhotonSpinRandom268,800,000SlowExcellentSHISHUA-inspired generator; independent testing (PractRand 128GB) by author indicates excellent distribution properties.
UnityRandom87,100,000Very SlowFairMirrors UnityEngine.Random (Xorshift196 + additive); suitable for legacy compatibility but not high-stakes simulation. Unity Random Internals
SystemRandom65,600,000Very SlowPoorThin wrapper over System.Random; inherits same LCG weaknesses and fails modern statistical batteries. System.Random considered harmful
DotNetRandom56,600,000Very SlowPoorLinear congruential generator (mod 2^31) with known correlation failures; unsuitable for high-quality simulations. System.Random considered harmful

Detailed Metrics

Random NextBool Next NextUint NextFloat NextDouble NextUint (Range) NextInt (Range)
LinearCongruentialGenerator791,900,000835,000,0001,338,500,000184,400,000381,500,000589,100,000505,400,000
WaveSplatRandom792,100,000819,300,0001,311,200,000184,500,000411,000,000532,900,000464,100,000
SplitMix64794,900,000741,600,0001,065,500,000183,400,000352,600,000488,100,000445,800,000
BlastCircuitRandom785,000,000656,700,0001,063,400,000182,600,000360,100,000486,400,000424,300,000
FlurryBurstRandom786,000,000649,300,000943,000,000180,500,000287,500,000455,200,000408,400,000
PcgRandom783,900,000654,600,000919,000,000184,300,000318,600,000454,500,000410,100,000
IllusionFlow778,300,000640,900,000849,900,000178,100,000296,300,000446,000,000395,800,000
RomuDuo786,300,000590,000,000759,500,000167,200,000254,700,000443,500,000396,200,000
XoroShiroRandom766,900,000563,100,000742,500,000166,500,000243,800,000426,700,000381,400,000
StormDropRandom758,200,000531,300,000721,400,000182,100,000258,900,000394,700,000338,100,000
XorShiftRandom786,200,000593,500,000601,900,000184,300,000288,000,000440,400,000393,100,000
WyRandom751,000,000387,500,000452,700,000166,400,000189,300,000297,400,000281,700,000
SquirrelRandom753,500,000409,100,000414,300,000172,300,000202,200,000328,800,000313,300,000
PhotonSpinRandom708,700,000256,400,000268,800,000121,100,000123,500,000216,300,000210,800,000
UnityRandom647,000,00085,000,00087,100,00062,200,00041,500,00081,700,00082,400,000
SystemRandom145,300,000147,400,00065,600,000131,500,000140,100,00060,100,00060,500,000
DotNetRandom522,600,00054,600,00056,600,00046,200,00027,000,00053,900,00054,000,000