Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Ramda vs. Lodash vs. Immutable vs. Native array methods
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Browser:
Chrome 120
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Lodash
5531.2 Ops/sec
Ramda compose
16421.8 Ops/sec
Ramda pipe
5709.7 Ops/sec
Immutable List
706.2 Ops/sec
Immutable Seq
4168.9 Ops/sec
Native
4525.3 Ops/sec
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.3.4/immutable.min.js"></script>
Script Preparation code:
var data = _.range(10000).map(function(i) { return { counter: i } }); function isOdd({ counter }) { return counter % 2 === 1; } function square({ counter }) { return counter * counter; } function lessThanThreeDigits(value) { return value.toString().length < 3; }
Tests:
Lodash
var result = _.chain(data) .filter(isOdd) .map(square) .filter(lessThanThreeDigits) .value();
Ramda compose
var result = R.compose( R.filter(isOdd), R.map(square), R.filter(lessThanThreeDigits) )(data);
Ramda pipe
var result = R.pipe( R.filter(isOdd), R.map(square), R.filter(lessThanThreeDigits) )(data);
Immutable List
var result = Immutable.List(data) .filter(isOdd) .map(square) .filter(lessThanThreeDigits) .toArray();
Immutable Seq
var result = Immutable.Seq(data) .filter(isOdd) .map(square) .filter(lessThanThreeDigits) .toArray();
Native
var result = data .filter(isOdd) .map(square) .filter(lessThanThreeDigits);