記憶體順序問題導致的管道清除
管道由於記憶體順序問題而清除,對效能造成了負面影響。在採用“超執行緒技術”的處理器上,這通常表示發生假共享。兩個執行緒訪問相同快取線中不同的或無關的數據時,將發生假共享。有兩種情況會導致假共享。
情況 1:第一種情況是,在相同的快取線上,同時存在一個執行緒的同步鎖與另一個執行緒的執行緒專用數據。一個執行緒修改同步變數時,快取線變成“污損”狀態,並且必須寫到每個邏輯或物理處理器。在採用“超執行緒技術”的系統上,這會導致快取線收回,以保持快取一致性。在多處理器系統上,這會導致記憶體順序機器清除衝突。這兩種系統都有與它們關聯的明顯的效能懲罰。
情況 2:第二種情況是,兩個不同步的執行緒之間存在真共享。這是程式錯誤,並且也會導致明顯的效能懲罰。對於採用“超執行緒技術”的系統或多處理器系統,估計的影響代表總計處理器時間影響(系統上所有邏輯/物理處理器之和),而不是“實際執行”時間影響。因此,在採用“超執行緒技術”的系統或多處理器系統上,很可能會看到細節的時間影響大於對負載實際執行時間的影響。請注意,在單處理器系統上,處理器時間與實際執行時間相同。
計數器相關性:
此細節與以下效能計數器函式相關:
MemoryOrderMachineClear 效能影響 = (記憶體順序機器清除*500)/時鐘訊號)*100
較低值:0.2
較高值:2
在“MemoryOrderMachineClear 效能影響”較高時,此細節具有實質性意義。
建議: