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
This test compares speeds from ECMAscript5 (262) Array.prototype.forEach vs jQuery .each method and standard for..in, for methods.
Modified preparation code to make the last test case working. (But be carefull this test case will not work if your array contains any "false" values... So, discouraged)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js">
</script>
<script>
var arr = [],
loop = 5000;
while (loop--) {
arr[loop - 1] = loop;
}
var fn = function(x) {
x = x;
};
var jQfn = function(i, v) {
v = v;
};
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
each() |
| ready |
forEach() |
| ready |
for..in |
| ready |
for |
| ready |
for, caching length |
| ready |
assign in loop declaration |
| ready |
Underscore |
| ready |
while |
| ready |
for, caching length + call |
| ready |
for, not setting len variable |
| ready |
while, counting down |
| ready |
for loop countin' down and floutin' the rules |
| ready |
while until undefined, pop |
| ready |
while until undefined, shift |
| ready |
while until undefined, pop, non-destructive |
| ready |
while until undefined, counting up |
| ready |
reduce |
| ready |
recursive, closure |
| ready |
recursive |
| ready |
dereference throws |
| ready |
underscore reduce |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.