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 src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script src="//documentcloud.github.com/underscore/underscore-min.js">
</script>
<script>
window.underscore = _.noConflict();
</script>
<script src="https://raw.github.com/bestiejs/lodash/master/lodash.min.js">
</script>
<script>
window.lodash = _.noConflict();
</script>
var $ = window.$,
lodash = window.lodash,
underscore = window.underscore;
var a = [],
newArray = [],
pi = Math.PI;
window.newArray = newArray;
for (var i = 1, max= 100 ; i <= max ; i++) {
a.push('Fundamental alert number ' + i);
}
function iterate( a, x ) {
var s = x.toString();
var d = s.indexOf('{');
d = s.substr(0,d);
s = s.substr( s.indexOf('{') );
if ( /^\{\s*\[native code\]\s*\}\s*$/.test(s) )
Array.prototype.forEach( a, x );
var p = d.substring( d.indexOf('(') + 1, d.indexOf(')') );
if ( p !== '' ) {
p = p.split(',');
p.unshift('Ω');
p.push('for (var α = 0; α < '+a.length+'; ++α) { '+p[1]+' = Ω[α]; '+s+'}');
(Function.apply(null,p))(a);
} else {
(new Function( 'for (var α = 0; α < '+a.length+'; ++α) '+s ))();
}
}
newArray = [];
Ready to run.
Test | Ops/sec | |
---|---|---|
jQuery.each |
| ready |
good old for loop |
| ready |
underscore.each |
| ready |
Lo-Dash each |
| ready |
array prototype forEach |
| ready |
array forEach |
| ready |
iterator hax (similar to Lo-Dash approach) |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.