簡體   English   中英

for循環與for循環反向:性能

[英]for loop vs for loop in reverse: performance

根據用JavaScript編寫循環的最快方法是什么? 以及為什么要以比遞增快的速度將迭代器遞減到0 ,基本的for循環要比for-循環慢for且測試條件簡化,即:

 console.log("+++++++"); var until = 100000000; function func1() { console.time("basic") var until2 = until; for (var i = 0; i < until2; i++) {} console.timeEnd("basic") } function func2() { console.time("reverse") var until2 = until; for (until2; until2--;) {} //while(until2--){} console.timeEnd("reverse") } func1(); func2(); 

您可能會看到,第一個功能與預期相反,比第二個要快。 自從此oracle文章發布以來,是否發生了某些變化?或者我做錯了什么?

是的,自文章發布以來,情況有所變化。 Firefox一開始就從版本3升到了版本38。 通常,當發布新版本的瀏覽器時,幾件事的性能已經改變。

如果您在不同系統上的不同瀏覽器的不同版本中嘗試該代碼,則會發現性能會有所不同。 不同的瀏覽器針對不同的Javascript代碼進行了優化。

由於性能不同,並且您不能長期依賴任何度量,因此,如果需要優化Javascript,基本上可以遵循兩個原則:

  • 對每個任務使用最簡單,最通用的代碼; 這是瀏覽器供應商將嘗試最優化的代碼。

  • 不要在特定瀏覽器中尋找最佳性能,而要在任何瀏覽器中尋找最差性能。 在不同的瀏覽器中測試代碼,並選擇一種不會在任何一種瀏覽器中均帶來明顯不良性能的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM