程式設計實踐之效能優化

2021-09-26 21:06:52 字數 2665 閱讀 6930

四、使用速度快的部分

雙重求值:在js**中執行另一段js**時,會導致雙重求值的效能消耗。在js**中執行乙個包含js**的字串的方法有。

var num1 =

5, num2 =6;

result =

eval

("num1 + num2");

sum =

newfunction

("arg1"

,"arg2"

,"return arg1 + arg2");

settimeout

("sum = num1 + num2"

,100);

setinterval

("sum = num1 + num2"

,100

);

雙重求值慢的原因是每次呼叫這些函式時都要建立乙個新的直譯器/編譯器例項

解決方法是,避免使用eval函式和function()建構函式,settimeout()和setinterval()建議傳入函式而不是字串來作為第乙個引數。

在js中建立物件和陣列時,使用物件和陣列直接量是最快的操作

function

addhandler

(target, eventtype, handler)

else

}function

removehandler

(target, eventtype, handler)

else

}

這個就是重複工作,每次呼叫addhandler都會重新走一次判斷。

function

addhandler

(target, eventtype, handler);}

else;}

//call the new function

addhandler

(target, eventtype, handler);}

function

removehandler

(target, eventtype, handler);}

else;}

//call the new function

removehandler

(target, eventtype, handler)

;}

當第一次呼叫addhandler、removehandler時,走一次流程,並將它們覆蓋。

在指令碼addhandler、removehandler執行之前就檢測了一次,把真正的addhandler、removehandler設定好。

var addhandler = document.body.addeventlistener ?

function

(target, eventtype, handler)

:function

(target, eventtype, handler)

;var removehandler = document.body.removeeventlistener ?

function

(target, eventtype, handler)

:function

(target, eventtype, handler)

;

js被指責慢,其實它的js引擎並不慢(它是有低階語言寫的,如c),慢的是js**

js中位操作是有優勢的。js的位操作有位或、位異或、位與、位非。用位運算提高運算速度的方式例子——對2取模實現顏色設定、位掩碼。

對2取模實現顏色設定例子

for

(var i =

0, len = rows.length; i < len; i++

)else

}// 通過位運算提高運算速度

for(

var i =

0, len = rows.length; i < len; i++

)else

}

位掩碼例子。

var

option_a=1

;var

option_b=2

;var

option_c=4

;var

option_d=8

;var

option_e=16

;//你自己的選項

var options =

option_a

|option_c

|option_d

;// 對你選擇的選項進行判斷

if(options &

option_a)if

(options &

option_b

)

無論你怎麼優化js**,速度都沒有js引擎提供的原生方法快。所以盡量使用js提供的math物件

選擇器api中,queryselector() 與 queryselectorall()都比jquery快。

效能優化實踐

由於系統表資料量達到百萬級別,所有就遇到了效能優化問題。總結解決問題思路如下 1 從使用者角度來說,介面的資料載入緩慢,超過5秒就是存在效能問題了。解決問題思路,首先,先確定瓶頸點在 確定是 的問題還是sql的問題,可以通過debug除錯或者日誌或者擷取堆疊資訊檢視耗時來確定。2 如果是 層面的問題...

C 效能優化實踐

優化準則 1.二八法則 在任何一組東西中,最重要的只佔其中一小部分,約20 其餘80 的儘管是多數,卻是次要的 在優化實踐中,我們將精力集中在優化那20 最耗時的 上,整體效能將有顯著的提公升 這個很好理解。函式a 雖然 量大,但在一次正常執行流程中,只呼叫了一次。而另乙個函式b 量比a 小很多,但...

C 效能優化實踐

優化準則 1.二八法則 在任何一組東西中,最重要的只佔其中一小部分,約20 其餘80 的儘管是多數,卻是次要的 在優化實踐中,我們將精力集中在優化那20 最耗時的 上,整體效能將有顯著的提公升 這個很好理解。函式a雖然 量大,但在一次正常執行流程中,只呼叫了一次。而另乙個函式b 量比a小很多,但被呼...