jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<script src="//cdnjs.cloudflare.com/ajax/libs/seedrandom/2.4.2/lib/xor4096.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/seedrandom/2.4.2/lib/alea.min.js"></script>
<script src="//cdn.rawgit.com/banksean/300494/raw/ecfd3ee68aeebc8894bf825854218df1d8369c72/mersenne-twister.js"></script>
var seed = new Uint32Array(1024);
window.crypto.getRandomValues(seed);
xor4096gen = new xor4096(seed);
aleagen = new alea(seed);
var MAX_RAND = Math.pow(2, 32);
var state = [seed[0], seed[1]];
mwc1616 = function mwc1616() {
var r0 = (18030 * (state[0] & 0xFFFF)) + (state[0] >>> 16) | 0;
var r1 = (36969 * (state[1] & 0xFFFF)) + (state[1] >>> 16) | 0;
state = [r0, r1];
var x = ((r0 << 16) + r1) | 0;
if (x < 0) {
x = x + MAX_RAND;
}
return x / MAX_RAND;
}
mt = new MersenneTwister(seed[0]);
var crypto_random = (function() {
var m = Math.pow(2, 32);
var cache_size = 1024
, cache = new Uint32Array(cache_size)
, position = cache_size;
var random = function random() {
position += 1;
if (position >= cache_size) {
window.crypto.getRandomValues(cache);
position = 0;
}
return cache[position] / m;
}
return random;
})();
Ready to run.
Test | Ops/sec | |
---|---|---|
Math.random() (native) |
| ready |
xor4096 |
| ready |
alea |
| ready |
mwc1616 |
| ready |
mersenne twister |
| ready |
crypto.getRandomValues |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.