函式 函式使用效能

2021-10-25 08:31:04 字數 576 閱讀 5223

以便 defer 能在合適時機執行

// 錯誤的例子

func example()

}

這地方有個問題,example 函式是乙個加鎖操作。m.unlock()只有在 example 函式結束的時候才執行,那麼每次迴圈實際上是執行m.lock()語句,這個時候解鎖操作會被延遲到函式結束。

很顯然這個邏輯並不是我們想要的,我們當時寫的意思是加鎖,defer 為了保證鎖會被釋放,defer 就是語句後面就算出錯也會執行解鎖。

顯然現在邏輯出錯了,解鎖被延長了。

很顯然,它會認為程式死鎖,為什麼死鎖,是因為你不停的加鎖,解鎖沒有執行。

怎麼重構呢?最簡單的做法用匿名函式func(){}把for迴圈裡面邏輯包起來,因為這個時候 defer 是在匿名函式執行完執行,所以你每次迴圈都可以保證加鎖解鎖都可以被執行。

func example() ()

}}

所以利用匿名函式縮小作用域,因為不用

bootstrap使用效能問題

1 如icheckbox等的初始化,不要採用類似for in的迴圈來對所需應用的元素進行初始化,直接採用如 data toggle popover popover 初始化即可 2 tooltips example tooltip options 使用popover需要載入tooltip.js exa...

linux下使用效能分析工具nmon

一 簡介 nmon 工具可以幫助在乙個螢幕上顯示所有重要的效能優化資訊,並動態地對其進行更新。這個高效的工具可以工作於任何啞螢幕 telnet 會話 甚至撥號線路。另外,它並不會消耗大量的 cpu 週期,通常低於百分之二。在更新的計算機上,其 cpu 使用率將低於百分之一。使用啞螢幕,在螢幕上對資料...

提高記憶體使用效能的幾種方法

提高記憶體使用效能的幾種方法,儘管現在計算機的記憶體一般都比較大,一般都有1gb的記憶體,有的甚至達到2gb,還有的更高達4gb的記憶體,但是由於使用者執行的軟體本身較大,或者開啟的檔案視窗較多,或者上網時開啟的視窗較多,也會影響系統執行的速度,嚴重地將會影響系統的執行效能。儘管現在計算機的記憶體一...