2012-04-13 86 views
1

我是一名業餘程序員,請耐心等待。 我即將爲遊戲編寫一個遊戲插件(適用於Windows操作系統),它可以在遊戲中在後臺運行。由於插件會產生執行CPU密集型的線程,並且遊戲在不同CPU核心上的執行可能會有很大差異,因此該插件只能在具有低於某個限制的負載的多個核心的PC上執行。 我想出瞭如何監控每個內核的CPU負載,但我仍然有一個問題: 插件是否應該將線程分配給負載最低的內核,或者我可以讓系統爲我處理? 第一種解決方案對遊戲性能會更好嗎?每個CPU內核的線程分配(僅限Windows)

+0

_Pretty please_ **不要嘗試處理CPU核心負載,內存負載,線程負載**等** **,但留給操作系統,**甚至** - 這是種重要的 - **如果你能想出你看似更好的解決方案**。我要求你採取這樣的行動的原因如下:_Imagine如果有多個程序這樣做!_想象他們**不斷地根據系統的負載改變他們的行爲,並且他們最終* *使用大量CPU時間**來適應不斷變化的系統負載。你明白爲什麼你不應該這樣做? – mg30rg 2015-05-29 13:41:41

回答

0

如果您在Visual Studio 2010中開發Windows代碼,那麼我建議您查看可用的併發運行時。 Concurrency Runtime in Visual C++ 2010

如若插件手柄螺紋與 最低負載分配給內核或者我可以讓系統處理一下嗎?

如果您可以設計系統,您可以讓系統爲您處理該問題。此外,您的代碼不需要根據內核數量進行更改,因爲運行時會捕獲這些細節,並且生成的線程數量與內核數量成正比。

+0

(s)他不在「can」上,但**應該**將這種資源管理留給底層系統,原因如下:想象一下,如果有多個程序這樣做!想象一下,他們會根據系統的負載不斷改變他們的行爲,並且他們最終會使用大量的CPU時間來適應不斷變化的系統負載。你明白爲什麼你不應該這樣做? – mg30rg 2015-05-29 14:36:44