fast-vs-lodash-coco-custom (v13)

Revision 13 of this benchmark created on


Preparation HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
<script src="//jspm.io/system@0.6.js"></script>
<script>
document.getElementById('run').display = 'none';
System.import('github:codemix/fast.js@0.0.4').then(function(fast) {
  window.fast = fast;
  document.getElementById('run').display = '';
});
</script>

Setup

var acc = 0;
    var array = _.range(1000);
    var add = function(a, b, c) { return a + b + c; };
    var iterator = function(x) { acc += x; };
    var mapper = function(x) { return x * x; };
    var reducer = function(acc, x) { return acc + x; };
    
    var fastBound = fast.bind(add, this),
        lodashBound = _.bind(add, this),
        nativeBound = add.bind(this);
    
    var fastPartial = fast.partial(add, 1, 2),
        lodashPartial = _.partial(add, 1, 2);

Test runner

Ready to run.

Testing in
TestOps/sec
indexOf - fast
var a = function (a, b) {
    return fast.indexOf(a, b);
};

a(array, 1);
a(array, 999);
ready
indexOf - lodash
var a = function (a, b) {
    return _.indexOf(a, b);
};

a(array, 1);
a(array, 999);
ready
indexOf - native
array.indexOf(1);
array.indexOf(999);
ready
lastIndexOf - fast
var a = function (a, b) {
    return fast.lastIndexOf(a, b);
};

a(array, 999);
a(array, 1);
ready
lastIndexOf - lodash
var a = function (a, b) {
    return _.lastIndexOf(a, b);
};

a(array, 999);
a(array, 1);
ready
lastIndexOf - native
array.lastIndexOf(999);
array.lastIndexOf(1);
ready
forEach - fast
acc = 0;

var a = function (a, b) {
    return fast.forEach(a, b);
};

a(array, iterator);
ready
forEach - lodash
acc = 0;

var a = function (a, b) {
    return _.forEach(a, b);
};

a(array, iterator);
ready
forEach - native
acc = 0;
array.forEach(iterator);
ready
bind - fast
fastBound(1, 2, 3);
ready
bind - lodash
lodashBound(1, 2, 3);
ready
bind - native
nativeBound(1, 2, 3)
ready
partial - fast
fastPartial(3);
ready
partial - lodash
lodashPartial(3);
ready
map - fast
var a = function (a, b) {
    return fast.map(a, b);
};

a(array, mapper);
ready
map - lodash
var a = function (a, b) {
    return _.map(a, b);
};

a(array, mapper);
ready
map - native
array.map(mapper);
ready
reduce - fast
var a = function (a, b, c) {
    return fast.reduce(a, b, c);
};

a(array, reducer, 0);
ready
reduce - lodash
var a = function (a, b, c) {
    return _.reduce(a, b, c);
};


a(array, reducer, 0);
ready
reduce - native
array.reduce(reducer, 0);
ready
concat - fast
fast.concat(array, 1, 2, [3, 4, 5]);
ready
concat - native
array.concat(1, 2, [3, 4, 5]);
ready
indexOf - wrapped - fast
var a = function (a, b) {
    return fast.indexOf(a, b);
};

a(array, 1);
a(array, 999);
ready
indexOf - unwrapped - fast
fast.indexOf(array, 1);
fast.indexOf(array, 999);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.