Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Multiple chunk
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/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Lodash
4974.0 Ops/sec
slice
20975.0 Ops/sec
push
1475.8 Ops/sec
you might not need
1491.2 Ops/sec
bucket
99.7 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:
var test = Array.from({ length: 100000 }, () => Math.random()) function createGroupedArray(arr, chunkSize) { const groups = []; let i = 0; while (i < arr.length) { groups.push(arr.slice(i, i += chunkSize)); } return groups; }; function createGroupedArray2(arr, chunkSize) { const groups = []; for (let i= 0; i < arr.length; i++) groups.push(arr.slice(i, i += chunkSize)); return groups; }; function array_to_chunks(data, size){ let chunks = [] let d = data.slice() while (d.length >= size) chunks.push(d.splice(0, size)) return chunks } function chunk_ymnn(arr, chunkSize = 1, cache = []) { const tmp = [...arr] if (chunkSize <= 0) return cache while (tmp.length) cache.push(tmp.splice(0, chunkSize)) return cache } function chunkBucket(arr, size) { let buckets = [] // Just create the buckets/chunks storage for (let i = 1; i <= Math.ceil(arr.length / size); i++) { buckets.push([]) } // Put in the buckets/storage by index access only for (let i = 0; i < arr.length; i++) { var arrIndex = Math.ceil((i + 1) / size) - 1 buckets[arrIndex].push(arr[i]) } return buckets; }
Tests:
Lodash
_.chunk(test,5000)
slice
createGroupedArray(test,5000)
push
array_to_chunks(test,5000)
you might not need
chunk_ymnn(test,5000)
bucket
chunkBucket(test,5000)
slice for
createGroupedArray2(test, 5000)