Speed Testing Object VS Array Operation In JavaScript
Asad Anik
Posted on October 4, 2022
When you wants to working with collections of data, there is a conclusion between Object and Array. Sometimes Array works great and sometime Object works outstanding. We are going to testing these 2 things when million of data comes into an empty Array & Object, and how they perform. How many times they needs to update data.
Update operation speed comparisons.
Array updating speed with 5M. data
// Array..
const arr = [];
for (let i = 0; i < 5000000; i++){
arr.push({
id: I,
value: `${i * 84}`
});
}
// Updating data..
console.time('ARRAY SPEED');
let id = 4999998;
const findItem = arr.find(item => item.id === id);
findItem.value = 'HACKED BY ASAD ANIK';
console.timeEnd('ARRAY SPEED');
ARRAY SPEED: 48.817ms
Object updating speed with 5M. data
// Object..
const obj = {};
for (let i = 0; i < 5000000; i++){
obj[i] = {
id: I,
value: `${i * 84}`
};
}
// Updating data..
console.time('OBJECT SPEED');
let id = 4999998;
obj[id].value = 'HACKED BY RAKHIYAATUL KUBRA';
console.timeEnd('OBJECT SPEED');
OBJECT SPEED: 0.085ms
Delete operation speed comparisons.
Array’s Deleting speed.
// Array..
const arr = [];
for (let i = 0; i < 5000000; i++){
arr.push({
id: I,
value: `${i * 84 + 77}`
});
}
// Deleting data..
console.time('ARRAY DELETE SPEED');
let id = 4999999;
const index = arr.findIndex(item => item.id === id);
arr.splice(index, 1);
console.timeEnd('ARRAY DELETE SPEED');
ARRAY DELETE SPEED: 49.457ms
Object’s Deleting speed.
// Object..
const obj = {};
for (let i = 0; i < 5000000; i++){
obj[i] = {
id: i,
value: `${i * 84 + 77}`
};
}
// Deleting data..
console.time('OBJECT DELETE SPEED');
let id = 4999999;
delete obj[id];
console.timeEnd('OBJECT DELETE SPEED');
OBJECT DELETE SPEED: 0.084ms
Reduce Vs Map, Filter method.
Reduce is more powerful method than Map and Filter. Let’s see the prove.
→ Map, Filter
const arr = [];
for (let i = 0; i < 5000000; i++){
arr.push(i);
}
// Not Optimised operation..
console.time('MAP_FILTER');
arr.filter(item => item %2 === 0).map(item => item * 2);
console.timeEnd('MAP_FILTER');
MAP_FILTER: 153.749ms
→ Reduce
const arr = [];
for (let i = 0; i < 5000000; i++){
arr.push(i);
}
// Optimised operation..
console.time('REDUCE_WAY');
arr.reduce((acc, cur) => {
if (cur %2 === 0){
acc.push(cur * 2);
}
return acc;
}, []);
console.timeEnd('REDUCE_WAY');
REDUCE_WAY: 89.065ms
Decision making
→ When is time to build an Application, so we have to decide about its task. Is your Application are handling lots of traversing ? ⇒ So go for working with Array Operations in the most case. it’s totally fine.
→ And if your Application handles lot’s of CRUD operations like Create, Retrieve, Read, Update, Delete ? ⇒ So go for working with Object Operations in the most case. It’s fine.
Posted on October 4, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.