避免記憶體順序管道清除
要避免由於記憶體順序問題而導致的管道清除,請嘗試以下方法:
劃分工作(例如陣列),使每個執行緒處理不同快取線中的數據;或是製作陣列/數據結構的自有副本,供每個執行緒使用。
在自旋等待循環與空閑循環中,插入新的 pause 指令。此指令充當提示,告知程式碼序列是自旋等待循環,這樣可以大幅降低記憶體順序衝突的可能性。
單獨放置每個同步變數,變數之間相隔 128 個位元組,或是放入單獨的快取線。
如需有關詳細資訊,請參閱 Intel(R) Pentium(R) 4 and Intel(R) Xeon(TM) Processor Optimization Manual(英特爾(R) 奔騰(R) 4 與英特爾(R) 至強(TM) 處理器優化手冊)的第 7 章。