使用 jsPerf 和 JSLitmus 對各種各樣的循環做了 N 次測試。定義數組a=["It's","a","loop"]起初,兩個測試器都給出了 For +for (var i=0;i<a.length;i++){
a[i]
}效率最高(五次均是)???為什么?在多次測試后,jsPerf 告訴我“其實是 For + cache(六次平均)for (var i=0,len=a.length;i<len;i++){
a[i]
}JSLitmus 糾正道:“不!是 Do While + cache(三次平均)var i=0,len=a.lengthdo {
a[i]
i++
}while(i<len)不解。前后性能為什么會不一樣?為何最初不緩存變量直接i<a.length性能更高?還是測試代碼有問題?到底那種循環性能更好?jsPerf 測試頁見這里謝答。
我該相信哪個?jsPerf or JSLitmus?
HUH函數
2018-10-20 10:13:53