gpt4 book ai didi

javascript - 使用 Object.keys 和 lodash _.keys() 的性能差异是什么

转载 作者:行者123 更新时间:2023-11-28 14:19:09 25 4
gpt4 key购买 nike

使用ES6有性能差异Object.keyslodash _.keys()

或者使用一种对抗另一种的好处是什么?

最近我正在考虑使用哪一个是最佳实践,有谁知道每个实践的原理是什么?谢谢。

最佳答案

库方法_.keys是用Javascript编写的,而不是 native 代码 - 当 native 代码和自定义函数都可以完成X时, native 代码几乎总是更快,因为它内置于浏览器中并以较低级别编写(如 C++):

const obj = [...new Array(50)];
const p0 = performance.now();
for (let i = 0; i < 1e5; i++) {
_.keys(obj);
}
const p1 = performance.now();
console.log('lodash', p1 - p0);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>

const obj = [...new Array(50)];
const p0 = performance.now();
for (let i = 0; i < 1e5; i++) {
Object.keys(obj);
}
const p1 = performance.now();
console.log('Object.keys', p1 - p0);

也就是说,担心此类优化通常并不重要 - 通常,如果您的脚本存在瓶颈,它很可能出现在其他地方。避免过早优化。如果您当前的代码库使用 _.keys 并且您不会多次重复调用 _.keys,则可能不需要担心 - 您可能会考虑坚持使用您的代码库当前的样式,无论它是什么,目前,除非/直到您遇到性能问题。

另一个区别是 Object.keys 是 ES5 方法。如果您必须支持非常古老的浏览器,它们可能无法在没有polyfill的情况下使用Object.keys(并且polyfill可能具有与Lodash实现类似的性能) .

关于javascript - 使用 Object.keys 和 lodash _.keys() 的性能差异是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55914302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com