[英]Attribute vs constant access in javascript
我正在研究面向高性能的 web 組件,我懷疑是否值得在多次訪問之前將 object 屬性的值分配給常量。
我的意思是轉這個:
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
我懷疑我的測試是否錯誤,或者虛擬機是否針對這種我不知道的情況進行了優化。
更新:根據@George Jempty 的建議,我在https://jsperf.com/attribute-vs-constants對 JSPerf 進行了快速調整,但結果一直很不穩定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.