我正在研究面向高性能的 Web 组件,我怀疑是否值得在多次访问之前将对象属性的值分配给常量。
我的意思是转动这个:
let counter = 0;
for (let i = 0, len = parentObject.myObject.items.length; i < len; i++) {
// items is an array of integers
counter += parentObject.myObject.items[i] ;
}
进入这个:
let counter = 0;
const { myObject } = parentObject;
const { items } = myObject;
for (let i = 0, len =items.length; i < len; i++) {
counter += items[i] ;
}
在 Python 中,此更改会对性能产生积极影响。然而,我所做的测试(代码在 https://gist.github.com/Edorka/fbfb0778c859d8f518f0508414d3e6a2 )显示没有区别:
caseA total 124999750000
Execution time (hr): 0s 1.88101ms
caseB total 124999750000
Execution time (hr): 0s 1.117547ms
我怀疑我的测试是否有误,或者 VM 是否针对这种情况进行了任何我不知道的优化。
更新:根据@George Jempty 的建议,我在 https://jsperf.com/attribute-vs-constants 对 JSPerf 进行了快速调整。但结果一直很不稳定。
最佳答案
关于javascript - javascript 中的属性与常量访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58933886/