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
Manual array lookups vs. holey arrays.
var generateUUID = (function () {
var format = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
var regex = /[xy]/g;
var callback = function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
};
return function () {
return format.replace(regex, callback);
};
}());
var a1 = [];
for (var i = 0; i < 200; i++)
a1.push({id: i, name: 'name1'});
var a2 = [];
a2[198] = {id: 199, name: 'name1'};
a2[199] = {id: 199, name: 'name1'};
var o = {};
for (i = 0; i < 200; i++)
o[i] = {id: i, name: 'name1'};
var s = [];
var lastUUID;
for (i = 0; i < 200; i++)
lastUUID = generateUUID();
s.push({id: lastUUID, name: 'name1'});
Ready to run.
Test | Ops/sec | |
---|---|---|
Manual Array Lookup |
| ready |
Holey Array by Index |
| ready |
Object by Key |
| ready |
Super-lucky |
| ready |
Not quite so lucky. |
| ready |
20 |
| ready |
40 |
| ready |
Big string |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.