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
Modified to access array elements in all loops. Previous for loops were an unfair comparison because they never actually accessed the array. Also removed calls to functions in loops. Those are an entirely different test that don't belong here.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script src="//documentcloud.github.com/underscore/underscore-min.js">
</script>
<script>
var a = new Array(100000),
e;
var ArrayIterator = function(array) {
this.array = array;
this.index = -1;
};
ArrayIterator.prototype.next = function() {
return this.index < (this.array.length - 1);
};
ArrayIterator.prototype.current = function() {
this.index += 1;
return this.array[this.index];
};
function each(array, func) {
for (var i = 0, l = array.length; i < l; i++) {
if (func.call(this, i, array[i]) === false) return;
}
return true;
}
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
jQuery.each |
| ready |
good old for loop |
| ready |
underscore.each |
| ready |
good old for loop (decrementing) |
| ready |
Iterator pattern |
| ready |
Simpler each |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.