lock free到底能不能提高效能

來源:互聯網
上載者:User

不知道lock free的可以看我前一篇文章。lock free這個東西還真是一路波折,爭議不斷。最近連續看到有不少大牛(比如1,2)都曾經或正在討論這個問題。

lock free對於dead/live lock問題的解決這點應該是沒什麼可爭議的,這也確實是lock free最大的好處。

討論得比較多的還是集中在演算法的效能上,畢竟多核時代multiprogramming主要還是要解決程式效能瓶頸的問題。雖然我個人並不是太關心lock或者lock free對效能的影響,但大家對效能的追求總是無止境的……

映像中以前有些文章測試過lock free帶來的效能上的改善,好象是某些情況下可以多達4倍左右,當然這個數字本身沒什麼意義。眾所周知,performance的問題受太多的因素影響,多核就更複雜了,總而言之是軟硬體共同作用的結果。不過如果真的是在某些測試下速度可以提高好幾倍,這個應該是相當可觀的了。

不過很多討論(還是這個)都認為lock free裡面用到的那些CPU的原子指令最終還是需要用到lock一樣的機制來實現,所以和直接用lock的演算法相比效能基本上不應該有提高。這個觀點我是不太贊成的,從概念上講像CMPXCHG這樣的指令當然可以理解成內部用了一把鎖,實際上處理器用的應該是鎖匯流排的方法。我們通常講的真正的lock,這個是作業系統層的概念,至於內部是如何?的不是很清楚,不過可以肯定的是對鎖的各種操作(檢查、擷取、釋放)相對一條簡單的原子指令來說都是非常重量級的。畢竟鎖要面對的問題也要比一條原子指令複雜得多。所以,用原子指令替換系統lock的方案應該還是會有一些效能提升的。至於提升多少,這個得看具體case了,不過應該不只是那種可以忽略的提高。原子指令相對OS上的鎖來說正是利用了硬體對並發的專門支援,畢竟特化的東西通常情況下總是比通用的方案更適合一些(否則也就不需要特化了)。搞過某些特定應用(比如視頻處理)的人都知道,一般都是先用軟體來類比實現和驗證某個邏輯,但是到最後可能還是要靠一些專用的電路來提速,其實道理有點類似。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.