[資訊] 偽共享(False-sharing)

雜談 什麼是偽共享(false sharing)?
https://mp.weixin.qq.com/s?__biz=Mzg2ODA0ODM0Nw==&mid=2247483887&idx=1&sn=eac830409917a8c31840c687b4a4154b&scene=21#wechat_redirect

偽共享(false sharing),併發程式設計無聲的性能殺手
https://www.cnblogs.com/cyfonly/p/5800758.html

多執行緒程式的效能隱形殺手 - False sharing
https://jed1978.github.io/2018/10/13/solve-false-sharing-problem-csharp.html

False Sharing 原理動態展示
https://blog.darkthread.net/blog/false-sharing-demo-with-jquery-animation/

偽共享:
當多執行緒修改互相獨立的變數時,如果這些變數共用同一個緩存行,就會無意中影響彼此的性能,這就是偽共享。

1. CPU具有多級緩存,越接近CPU的緩存越小也越快
2. CPU緩存中的資料是以緩存行為單位處理的
3. CPU緩存行能帶來免費載入資料的好處,所以處理陣列性能非常高
4. CPU緩存行也帶來了弊端,多執行緒處理不相干的變數時會相互影響,也就是偽共享
5. 避免偽共享的主要思路就是讓不相干的變數不要出現在同一個緩存行中


#false sharing, 偽共享

留言