在http://blog.memsql.com/common-pitfalls-in-writing-lock-free-algorithms/的末尾,David Stolp顯示了無鎖定堆棧的性能數據,表明無鎖定版本比由互斥鎖保護的順序版本慢,即使爭用增加。結果很有意思,但有兩件事關注我:http://tinyurl.com/pzpyvb9上的無鎖棧性能數據是否現實?
- 充其量,隨着線程數量的增加,「總體吞吐量」減少並逐漸消失。隨着線程數量的增加,整體吞吐量不應該增加嗎?
- 在最終圖表中,1線程的性能值範圍從35M到55M左右。對於1個線程來說,這看起來非常寬泛(不存在任何爭用)。
我試圖找到一種方法來聯繫作者關於這些問題,但我沒有成功,所以我轉向SO社區,看看結果是否看起來很現實。他們呢?
正如我所看到的互斥體版本si最慢。 –
@GJ:從我所知道的情況來看,基於互斥體的版本與「天真」無鎖版本(每個最終圖表)基本相同(緩慢)。可能會有點慢,但是,你是對的。但是,這不會影響線程數增加或單個線程的吞吐量值範圍很寬的吞吐量問題。 – KnowItAllWannabe