JS程式設計建議 21 推薦提高迴圈效能的策略(1)

2021-09-22 19:20:53 字數 1114 閱讀 1993

建議21:推薦提高迴圈效能的策略(1)

每次執行迴圈體時都會產生效能開銷,增加總的執行時間,即使是迴圈體中最快的**,累計迭代上千次,也將帶來不小的負擔。因此,減少迴圈的迭代次數可獲得顯著的效能提公升。例如:

var iterations = math.floor(items.length / 8), startat = items.length % 8, i = 0;

do startat = 0;

} while (--iterations);

在上面**中,每次迴圈最多可呼叫process()函式8次。迴圈迭代次數為元素總數除以8。因為總數不一定是8的整數倍,所以startat變數存放餘數,指明第一次迴圈中應當執行多少次process()。如果現在有12個元素,那麼第一次迴圈將呼叫process() 4次,第二次迴圈呼叫process() 8次,用兩次迴圈代替了12 次迴圈。在下面的**中取消switch 表示式,將餘數處理與主迴圈分開。

var i = items.length % 8;

while(i)

i = math.floor(items.length / 8);

while(i)

雖然上面**使用兩個迴圈替代了先前的乙個迴圈,但是在迴圈體中去掉了switch 表示式,速度更快。如果迴圈的迭代次數少於1000次,減少迭代次數的迴圈與普通迴圈相比可能只有微不足道的效能提公升。如果迭代次數超過1000 次,比如在500 000 次迭代中,合理地減少迴圈的迭代次數可以使執行時間減少到普通迴圈的70%。

有兩個因素影響到迴圈的效能:

每次迭代幹什麼。

迭代的次數。

通過減少這兩者中的乙個或全部(的執行時間),可以提高迴圈的整體效能。如果一次迴圈需要較長時間來執行,那麼多次迴圈將需要更長時間。限制在迴圈體內進行耗時操作的數量是乙個加快迴圈的好方法。乙個典型的陣列處理迴圈可採用3種迴圈的任何一種。最常用的**如下:

//方法1

for (var i=0; i < items.length; i++)

//方法2

var j=0;

while (j < items.length)

//方法3

var k=0;

do while (k < items.length);

提高程式設計的建議

1.閱讀別人的 讀那些你常用的庫 程式設計框架的源 讀那些你景仰的大牛的源 讀 裡的測試 測試本身就是一種有效的文件 讀 改 執行 2.閱讀那些 1 閱讀你依賴的 2 閱讀令你深刻的 3 閱讀你崇拜的人寫的 4 閱讀你可以理解的 3.如何閱讀 1 閱讀工具 c vs go liteide nodep...

提高程式設計能力的建議

程式設計是非常酷的一件事情,但是在酷炫的背後它對很多人來說還是挺難的。很多人在學習程式設計之初就被困難擊敗了。當你不熟悉程式設計的時候,你可能會覺得無從下手,並且不知道如何運用學到的知識。只要你通過了這一困難的學習階段,你就會發現乙個全新的世界。以下是一些能夠幫助你快速提高程式設計技巧的建議 1.多...

提高程式設計的7個建議

程式設計是非常酷的一件事情,但是在酷炫的背後它對很多人來說還是挺難的。很多人在學習程式設計之初就被困難擊敗了。當你不熟悉程式設計的時候,你可能會覺得無從下手,並且不知道如何運用學到的知識。只要你通過了這一困難的學習階段,你就會發現乙個全新的世界。以下是一些能夠幫助你快速提高程式設計技巧的建議。1.多...