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 native vs. underscore vs lo-dash (v13) Revision 13 of this benchmark created on November 29, 2013 Description This test compares the performance of a native array vs. underscore vs lo-dash
Preparation HTML <script >
var lodashVersion = '2.4.0' ;
function noConflict () {
var isLodash = (_.VERSION === lodashVersion);
if (isLodash) {
window .lodash = _.noConflict ();
} else {
window .underscore = _.noConflict ();
}
}
var underscore = document .createElement ('script' );
var lodash = document .createElement ('script' );
underscore.onload = noConflict;
lodash.onload = noConflict;
underscore.src = 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.1/underscore-min.js' ;
lodash.src = 'http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.0/lodash.min.js' ;
document .body .appendChild (underscore);
document .body .appendChild (lodash);
</script >
Setup var arr = Array .apply (null , Array (10000 )).map (function (el,i ){return i})
var wrappedWhile = function (arr, func ){
var i=-1 ,
len = arr.length ,
res = Array (len)
while (i++ < len){
res[i] = func (arr[i])
}
return res
}
var sum = function (num ){
return num+num
}
var i=-1 ,
len = arr.length ,
res = [],
num
Test runner Ready to run.
Run Quick Run Testing in Test Ops/sec native arr.map (function (num ) {
return num + num;
});
ready
underscore underscore.map (arr, function (num ) {
return num + num;
});
ready
underscore (wrapped) var arr = underscore (arr);
arr.map (function (num ) {
return num + num;
});
ready
lo-dash lodash.map (arr, function (num ) {
return num + num;
});
ready
while var i=-1 ,
len = arr.length ,
res = Array (len),
num
while (i++ < len){
num = arr[i]
res[i] = num+num
}
ready
wrapped while wrappedWhile (arr, sum)
ready
Revisions You can edit these tests or add more tests to this page by appending /edit to the URL.
Revision 1 : published on February 16, 2013 Revision 2 : published on February 17, 2013 Revision 3 : published on February 20, 2013 Revision 5 : published by Denys on February 22, 2013 Revision 6 : published by Serj on February 25, 2013 Revision 8 : published by Mark Johnson on September 4, 2013 Revision 9 : published on September 26, 2013 Revision 10 : published by Mark Johnson on October 16, 2013 Revision 11 : published on November 7, 2013 Revision 12 : published on November 29, 2013 Revision 13 : published on November 29, 2013 Revision 14 : published on November 29, 2013 Revision 15 : published on November 30, 2013 Revision 16 : published on December 4, 2013 Revision 17 : published on February 7, 2014 Revision 18 : published by tomByrer on February 15, 2014 Revision 19 : published on April 9, 2014 Revision 20 : published on April 12, 2014 Revision 21 : published on April 12, 2014 Revision 22 : published on April 14, 2014 Revision 23 : published by Emanuel Jackstare on April 17, 2014 Revision 24 : published on May 18, 2014 Revision 25 : published on June 11, 2014 Revision 26 : published on June 11, 2014 Revision 27 : published on June 11, 2014 Revision 28 : published on June 13, 2014 Revision 29 : published on June 20, 2014 Revision 30 : published on June 24, 2014 Revision 31 : published by dev on June 25, 2014 Revision 32 : published on July 11, 2014 Revision 33 : published by Daniel K on July 17, 2014 Revision 34 : published by muthukumar on July 23, 2014 Revision 35 : published by dev on August 26, 2014 Revision 36 : published by b on August 27, 2014 Revision 37 : published on August 28, 2014 Revision 41 : published on September 16, 2014 Revision 42 : published on September 16, 2014 Revision 43 : published by DontShootMe on September 22, 2014 Revision 45 : published by DontShootMe on September 23, 2014 Revision 46 : published by _.map vs. loop on September 25, 2014 Revision 47 : published by d3v on October 1, 2014 Revision 48 : published on October 1, 2014 Revision 50 : published on October 9, 2014 Revision 51 : published on October 31, 2014 Revision 52 : published by Joe Stanton on November 4, 2014 Revision 53 : published by Joe Stanton on November 4, 2014 Revision 84 : published on March 12, 2015