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>
function pack32(num) {
return String.fromCharCode(num >> 16) + String.fromCharCode(num & 65535);
}
function unpack32(str) {
return (str.charCodeAt(0)<<16) + str.charCodeAt(1);
}
function pack35(num) {
var i1 = num >> 28;
var r1 = num & 268435455;
var i2 = r1 >> 21;
var r2 = r1 & 2097151;
var i3 = r2 >> 14;
var r3 = r2 & 16383;
var i4 = r3 >> 7;
var r4 = r3 & 127;
return String.fromCharCode(i1) + String.fromCharCode(i2) + String.fromCharCode(i3) + String.fromCharCode(i4) + String.fromCharCode(r4);
}
function unpack35(str) {
return str.charCodeAt(0)*268435456 + str.charCodeAt(1)*2097152 + str.charCodeAt(2)*16384 + str.charCodeAt(3)*128 + str.charCodeAt(4);
}
function pack21(num) {
var i1 = num >> 14;
var r1 = num & 16383;
var i2 = r1 >> 7;
var r2 = r1 & 127;
return String.fromCharCode(i1) + String.fromCharCode(i2) + String.fromCharCode(r2);
}
function unpack21(str) {
return str.charCodeAt(0)*16384 + str.charCodeAt(1)*128 + str.charCodeAt(2);
}
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
toString/parseInt |
| ready |
pack32/unpack32 |
| ready |
unpack32 |
| ready |
parseInt |
| ready |
or zero |
| ready |
pack32 |
| ready |
toString |
| ready |
pack35/unpack35 |
| ready |
pack35 |
| ready |
unpack35 |
| ready |
pack21/unpack21 |
| ready |
pack21 |
| ready |
unpack21 |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.