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
math.imul vs << vs * 31
<script>
function hashCode(str) {
var hash = 0,
i, chr;
if (str.length === 0) return hash;
for (i = 0; i < str.length; i++) {
chr = str.charCodeAt(i);
hash = ((hash << 5) - hash) + chr;
hash |= 0; // Convert to 32bit integer
}
return hash;
}
function hashCodeImul(str) {
var hash = 0,
i, chr;
if (str.length === 0) return hash;
for (i = 0; i < str.length; i++) {
chr = str.charCodeAt(i);
hash = Math.imul(hash, 31) + chr;
hash |= 0; // Convert to 32bit integer
}
return hash;
}
function hashCodeMulti(str) {
var hash = 0,
i, chr;
if (str.length === 0) return hash;
for (i = 0; i < str.length; i++) {
chr = str.charCodeAt(i);
hash = (hash * 31) + chr;
hash |= 0; // Convert to 32bit integer
}
return hash;
}
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
regular |
| ready |
imulation |
| ready |
multiplication |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.