關於 x86_64 架構下 atomic、mutex、rwlock 的效能對比

發表於2016-11-06

這裡以多執行緒操作long型別變數,進行加法運算1億次的時間作為效能對比的標準。

測試使用SLES 11SP2作業系統,3.0.80核心,CPU使用Xeon 55062 socket, 4 cores, 1thread
關於 x86_64 架構下 atomic、mutex、rwlock 的效能對比

由於針對64位型別的atomic glibc沒有提供相應的庫,將核心實現程式碼移植到應用層

atomic64.h

測試程式碼performance.c

執行結果這裡就不詳細列出來了,可以直接看這個曲線圖。
關於 x86_64 架構下 atomic、mutex、rwlock 的效能對比

橫座標是執行緒數,縱座標是運算1億次耗費的微秒數。

從這個圖中可以看出,對於頻繁寫操作的情況atomic > mutex > rwlock

對於同一種同步型別,並不是隨著執行緒數的增加而一直增加,不過因為只有8個核心,所以沒有測試更多執行緒的情況。

相關文章