lodash-lazy-lx

Benchmark created by jdd on


Preparation HTML

<script src="//cdn.rawgit.com/dtao/lazy.js/7a9b0210d97168ff48c5d2b4ce4d12194ba7fbec/lazy.js"></script>
<script src="//cdn.rawgit.com/Reactive-Extensions/IxJS/be10ea9fa620dc65b52d5e3a7722a387316e743d/dist/ix.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore.js"></script>
<script src="//cdn.rawgit.com/lodash/lodash/55df525f1bd3c6407de96fb275503bd1109fd259/lodash.js"></script>
<script>var lodash = _.noConflict();</script>

Setup

var arr = _.range(10000),
        limit = 100;
    
    var odd = function(v) { return !!(v % 2); },
        square = function(v) { return v * v; };

Test runner

Ready to run.

Testing in
TestOps/sec
Native
var r = arr.map(square).filter(odd).slice(0, limit);
ready
Underscore
var r = _(arr).chain().map(square).filter(odd).take(limit).value();
ready
Ix
var r = Ix.Enumerable.from(arr).map(square).filter(odd).take(limit).toArray();
ready
Lazy
var r = Lazy(arr).map(square).filter(odd).take(limit).toArray();
ready
Lo-Dash
var r = lodash(arr).map(square).filter(odd).take(limit).value();
ready

Revisions

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