最近電腦升級從12核心升級到20核心後發現一些多執行緒的程式跑得更慢了,多次觀察後發現以下現象,如果該程式的「基本優先順序」為「標準」或更高級者是可以使用全部邏輯處理器的,但該程式的「基本優先順序」為「在標準以下」或更低級者就只能使用邏輯處理器16-19。許多跟我一樣升級的同事電腦也都是碰到一樣的情形,不知道是不是Windows既存的問題,或者是可以有Windows選項調整的?
先提供我電腦硬體的基本資訊
為了展示我的發現,我寫了一個ProcessPrioritization.exe的應用程式,他主要就是開16個執行緒硬吃邏輯處理器資源。
void ThreadWaste() {while(true);}
在「基本優先順序」為「標準」的情形下
邏輯處理器資源被耗盡
在「基本優先順序」調整為「在標準以下」後
只有邏輯處理器16-19被耗盡