Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Seedrandom browser (+ xoshift128**)
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Vanilla
4746.3 Ops/sec
arc4
7619.5 Ops/sec
alea
8275.8 Ops/sec
tychei
7997.1 Ops/sec
xor128
7988.4 Ops/sec
xor4096
8381.5 Ops/sec
xorshift7
8294.1 Ops/sec
xorwow
8165.9 Ops/sec
xoshiro128**
7089.2 Ops/sec
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/seedrandom.min.js" integrity="sha512-+Ru50BzEpZjlFzVnjSmJfYFPFfY2hS0Kjlu/IvqaJoux7maF5lJrRVUJWJ2LevPls7rd242GLbWEt+zAo4OVVQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/lib/alea.min.js" integrity="sha512-qdg0W1MJ7Tm0so0tniJeBgmMNS4dhgiUITVvbet4MG8WgyJhrBN7D60tYBFRX/miwUtMo2x9Ln0XuavTA0e6mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/lib/tychei.min.js" integrity="sha512-X+JqB/aryeXNyZ9BRD/nyEmwI5ksz4fKx8KeK//JGfJAg32Ulg4p5BiYQC0ZSxIPZ2cTTOHqBFM/YRZ7V2fhTA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/lib/xor128.min.js" integrity="sha512-B2ng6iJaZXjJjE2BNQOkclIxgz3J2CFZksmErkh9O2853tVIGcaA8omayOJ6pLScE7X3E69L8RU4JWEVU/LWMg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/lib/xor4096.min.js" integrity="sha512-DHg2KuUgiv5K7c92qHOTe7wZH/kARX0Ux+Wa110n0mYjEzbST+a1bSndHPwBkePAvaQ7rYX8Zq6Y8A05cI5Gvg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/lib/xorshift7.min.js" integrity="sha512-YqdH2Tyucg3njU/OdpRn5orxvng9MVdBfC6iii5m8qPck9Wn1gEFjvZ1qIAx4zA7OMePCSQMUNWUFzNBZnjgNw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/3.0.5/lib/xorwow.min.js" integrity="sha512-6Vc18+kgr4pX88B0V5/2d+xRk+KcVewLVW4MZYWt/PtuDZxyfQzIgZAkZ4cZTsIDnU4zRov5YBXi9giH/Nce8g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
Script Preparation code:
class Xoshiro128StarStar { constructor(a, b, c, d) { this.a = a >>> 0; this.b = b >>> 0; this.c = c >>> 0; this.d = d >>> 0; } next() { const t = this.b << 9; let r = this.b * 5; r = ((r << 7) | (r >>> 25)) * 9; this.c ^= this.a; this.d ^= this.b; this.b ^= this.c; this.a ^= this.d; this.c ^= t; this.d = (this.d << 11) | (this.d >>> 21); return r >>> 0; // Ensure unsigned integer } } //// function generateInt32() { return Math.floor(Math.random() * 0x80000000) | 0; } // init arc4Gen = new Math.seedrandom("test"); aleaGen = alea("test"); tycheiGen = tychei("test"); xor128Gen = xor128("test"); xor4096Gen = xor4096("test"); xorshift7Gen = xorshift7("test"); xorwowGen = xorwow("test"); Xoshiro128StarStarGen = new Xoshiro128StarStar(435335105, 1235613264, 1925681904, 682079889);
Tests:
Vanilla
for (let i = 0; i < 1000; i++) { const a = Math.random() + generateInt32(); }
arc4
for (let i = 0; i < 1000; i++) { const a = arc4Gen.quick() + arc4Gen.int32(); }
alea
for (let i = 0; i < 1000; i++) { const a = aleaGen.quick() + aleaGen.int32(); }
tychei
for (let i = 0; i < 1000; i++) { const a = tycheiGen.quick() + tycheiGen.int32(); }
xor128
for (let i = 0; i < 1000; i++) { const a = xor128Gen.quick() + xor128Gen.int32(); }
xor4096
for (let i = 0; i < 1000; i++) { const a = xor4096Gen.quick() + xor4096Gen.int32(); }
xorshift7
for (let i = 0; i < 1000; i++) { const a = xorshift7Gen.quick() + xorshift7Gen.int32(); }
xorwow
for (let i = 0; i < 1000; i++) { const a = xorwowGen.quick() + xorwowGen.int32(); }
xoshiro128**
for (let i = 0; i < 1000; i++) { const a = Xoshiro128StarStarGen.next() / 0x100000000 + Xoshiro128StarStarGen.next(); }