原出處和下載處
Multithreading with multicore - an indepth look at SupCom.
http://forums.gaspowered.com/viewtopic.php?t=13032
這是MadBoris寫的一個小小的程式
針對AI及單位太多的情況下,改善Supreme Commander的遊戲流暢度。
執行後設定為Auto Initialize(等Supreme Commander執行後25秒自動作用)
或在進入Supreme Commander遊戲後,用 Alt+Shift+A 手動開啟。
改善的部份如下列
1. 改善FPS,部分的系統甚至得到兩倍的FPS。
2. 改善操作介面的反應,還有單位對的反應,減少單位卡在路上和無視命令的情形。
3. 對部分的人,甚至改善了音樂音效斷斷續續消失的情況。
4. 不過,這會影響Supreme Commander模擬的速度,目前會減慢大約20%左右。
5. 也就是說雖然FPS改善了,但是遊戲的進行速度,理論上會慢20%,但是模擬速度與遊戲進行速度的關係,MaddBoris還不是100%確定。
6. MadBoris還在測試這個程式之中,他目前只建議將這個程式使用在單機模式下。
7. 線上對戰時,因為模擬速度的減慢,會影響一起連線的其他玩家,目前MadBoris並不建議用在線上對戰。
以下是MadBoris針對Supreme Commander使用Multithreading with multicore的發現
1. MadBoris確實是發現到了CPU0 100%的現象。
2. 同時發現了ALT+TAB切換,FPS會發生變化的現象。
3. Supreme Commander執行時會建立總共23個(確實數字要翻文章)執行緒。
4. 但是其中有4個主要的執行緒,會佔用大部分的CPU時間。
5. 理論上在多核心的環境,這4個執行緒應該要依CPU使用量平均分配在多個核心。
6. 但是其中負責畫面和負責模擬的兩個執行緒,是佔用CPU最多最吃重的兩個執行緒。
7. 這兩個執行緒,卻出現擠在CPU0造成CPU0 100%的使用率,其他核心卻空閒在那邊。
8. Madboris發現ALT+TAB切換會大幅影響FPS的狀況,實際上是因為影響了Supreme Commander的執行緒分配,畫面和模擬兩個執行緒意外分配到不同核心上。
9. 於是MadBoris寫了個小程式,也就是"SupCom Core Maximizer",把畫面和模擬兩個執行緒及其他執行緒,適當的重新分配到多個核心上。
目前這個程式使用上的問題
1. 對多核心的系統有效,對單核心無效,但是有使用HT功能的intel單核心使用者回報,效能上的明顯改善,但是目前MaddBoris也不知道原因。
2. 雙核心的效果最明顯,四核心以上,目前使用者是回報有改善,但是不明顯。
3. 四核心的使用者目前會發現到,使用此工具之後,CPU使用率較平均,但是在遊戲後期,Delay到不行的情況下,四個核心中,使用率最高的核心只有70%左右,也就是說CPU有空閒,但是遊戲照樣Delay到死,可能Supreme Commander程式本身有其他的限制存在。
4. 目前八核心的使用者,使用這程式會當掉,似乎是程式自己的Bug,在MadBoris修正前,所以目前沒有八核心的使用報告。
5. 至於未什麼要把畫面和模擬兩個最吃重的執行緒放在同一個核心上,GPG目前只回覆會納入Patch檢討,並沒有正面回覆原因。
6. 所以四核心以上的使用者,目前還是處在,CPU閒閒沒事做,但是游戲用力Delay的情形下。
與各位分享這個,可以更盡情享受Supreme Commander單機模式的小程式。