效能評估與效能剖析
在多核心或NUMA系統上測量效能時,有時會將執行緒固定在特定的核心上(設定親和性,affinity),其理由下列何者正確?
- A若作業系統讓執行緒在核心之間移動,快取的內容會遺失,或是使用到較遠的記憶體,使結果產生變動
- B因為固定之後,核心數會變成2倍
- C因為不固定的話,程式就無法執行
查看答案與解析
正確答案:A. 若作業系統讓執行緒在核心之間移動,快取的內容會遺失,或是使用到較遠的記憶體,使結果產生變動
作業系統為了分散負載,有時會將執行緒移到別的核心。移動後的核心快取中沒有所需的資料,而在NUMA系統中,也可能移到離放置資料的記憶體較遠的插槽(socket)上。因此,即使是同一個程式,時間也會依它在哪個核心上執行而不同。將執行緒固定在核心上,並統一記憶體的放置位置,可提高測量的再現性。
- A. 正確。這是統一測量條件的作法。
- B. 核心數不會改變。
- C. 即使不固定也可以執行。