Test name | Executions per second |
---|---|
_.isEqual Level 1 | 1239845.4 Ops/sec |
JSON.stringify Level 1 | 381515.3 Ops/sec |
_.isEqual Level 2 | 884229.8 Ops/sec |
JSON.stringify Level 2 | 382614.7 Ops/sec |
_.isEqual Level 3 | 173503.1 Ops/sec |
JSON.stringify Deepest Level | 150665.4 Ops/sec |
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>
// 1 level deep
window.foo1 = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
},
e: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
}
}
};
window.bar1 = {
a: 1,
b: 3,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
},
e: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
}
}
};
// 2 levels deep
window.foo2 = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
},
e: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
}
}
};
window.bar2 = {
a: 1,
b: 2,
c: {
a: 1,
b: 3,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
},
e: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
}
}
};
// deepest levels deep
window.foo3 = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
},
e: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
}
}
};
window.bar3 = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
}
},
e: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2
}
},
d: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 3
}
}
}
}
};
_.isEqual(window.foo1, window.bar1)
JSON.stringify(window.foo1) === JSON.stringify(window.bar1);
_.isEqual(window.foo2, window.bar2)
JSON.stringify(window.foo2) === JSON.stringify(window.bar2);
_.isEqual(window.foo3, window.bar3)
JSON.stringify(window.foo3) === JSON.stringify(window.bar3);