Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Concat vs push(...) for large arrays (----)
Comparing the various ways to append to a large array
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/131.0.0.0 Safari/537.36
Browser:
Chrome 131
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Control (for push)
370.1 Ops/sec
Concat
7111.4 Ops/sec
Spread
10573.0 Ops/sec
Apply
10882.7 Ops/sec
Script Preparation code:
window.top.tests = {control:[], concat:[], spread:[], apply: []}; window.test = (new Array(20000)).fill(null).map((e, i) => ( { "_id": "6756f95de1bf2a3657bf2262", "index": 0, "guid": "bdc23f10-a1ac-47ad-a423-1c498f5d7857", "isActive": true, "balance": "$2,288.04", "picture": "http://placehold.it/32x32", "age": i, "eyeColor": "brown", "name": "Reid Holden", "gender": "male", "company": "KAGGLE", "email": "reidholden@kaggle.com", "phone": "+1 (844) 427-3173", "address": "923 Dewitt Avenue, Macdona, Florida, 2333", "about": "Eu quis amet ipsum id occaecat reprehenderit cillum cupidatat ullamco ad duis. Lorem tempor incididunt culpa dolor labore et officia nulla aliqua et incididunt amet dolor reprehenderit. Ut voluptate est elit quis fugiat ex magna irure eiusmod esse duis sint qui. Exercitation duis duis ullamco est eiusmod sunt eiusmod velit laboris ex elit.\r\n", "registered": "2017-07-12T07:52:14 -02:00", "latitude": 49.456753, "longitude": -37.824429, "tags": [ "est", "laborum", "laborum", "incididunt", "adipisicing", "anim", "sit" ], "friends": [ { "id": 0, "name": "Gutierrez Collins" }, { "id": 1, "name": "Lisa Richardson" }, { "id": 2, "name": "Wilson Kane" } ], "greeting": "Hello, Reid Holden! You have 4 unread messages.", "favoriteFruit": "strawberry" })); window.cutoff = 500000;
Tests:
Control (for push)
for (let element of window.test) window.top.tests.control.push(element); if (window.top.tests.control.length > window.cutoff) { window.top.tests.control = []; console.log('reset control'); }
Concat
window.top.tests.concat = window.top.tests.concat.concat(window.test); if (window.top.tests.concat.length > window.cutoff) { window.top.tests.concat = []; console.log('reset concat'); }
Spread
window.top.tests.spread.push(...window.test); if (window.top.tests.spread.length > window.cutoff) { window.top.tests.spread = []; console.log('reset spread'); }
Apply
window.top.tests.apply.push.apply(window.top.tests.apply, window.test); if (window.top.tests.apply.length > window.cutoff) { window.top.tests.apply = []; console.log('reset apply'); }