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
testing speed of a standard for loop vs. Array.indexOf.
<script>
var sourceArr = [
{ foo: 'bar' },
{ foo: 'bar' },
{ foo: 'bar' },
{ foo: 'bar' },
{ foo: 'bar' },
{ foo: 'bar' }
];
var targetObj = { foo: 'bar' };
sourceArr.push(targetObj);
// for i++ loop
function getObjPosition1(array, object) {
for (var i = 0; i < array.length; i++) {
if (array[i] === object) {
return i;
break;
}
}
}
// while i-- loop
function getObjPosition2(array, object) {
var i = array.length;
while (i--) {
if (array[i] === object) {
return i;
break;
}
}
}
// while i-- loop + function declared as var
var getObjPosition3 = function(array, object) {
var i = array.length;
while (i--) {
if (array[i] === object) {
return i;
break;
}
}
};
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
for i++ loop |
| ready |
while i-- loop |
| ready |
while i-- loop + function declared as var |
| ready |
Array.indexOf |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.