Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Lodash Sort vs Array.sort vs Stable Sort
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Browser:
Chrome 123
Operating system:
Windows
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
_.sortBy
26.2 Ops/sec
array.prototype.sort
565.5 Ops/sec
other
7.2 Ops/sec
Stable Sort
158.6 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
function getRandomInt(max) { return Math.floor(Math.random() * Math.floor(max)); } var arr = []; for(var i = 0; i < 100000; i++){ arr.push({value:getRandomInt(100)}); }
Tests:
_.sortBy
_.orderBy(arr,"value");
array.prototype.sort
arr.sort((a,b) => a.value - b.value);
other
var sort = function(array) { var len = array.length; if(len < 2) { return array; } var pivot = Math.ceil(len/2); return merge(sort(array.slice(0,pivot)), sort(array.slice(pivot))); }; var merge = function(left, right) { var result = []; while((left.length > 0) && (right.length > 0)) { if(left[0].value > right[0].value) { result.push(left.shift()); } else { result.push(right.shift()); } } result = result.concat(left, right); return result; }; sort(arr);
Stable Sort
const stableSort = (arr, compare) => arr .map((item, index) => ({item, index})) .sort((a, b) => compare(a.item, b.item) || a.index - b.index) .map(({item}) => item) stableSort(arr, (a,b) => a.value - b.value)