「GPUを良いやつに変えたのに、思ったよりFPSが出ない…」といったことはないだろうか。そういった場合、CPUが足を引っ張っている(=CPUボトルネック)ことが多い。CPUを交換するのが一番なんだけど、マザボも変えなきゃいけないし、パーツを外すのも面倒だ。交換をせず、CPU依存のゲームでより高いFPSを出す方法を紹介する。
CPU依存のゲームの特徴
影の描写や爆発の煙、炎のエフェクト等は基本的にはGPUで処理されることが多いので、CPUの負荷はそこまで高くない。しかし、キャラクターモデルの動き(位置の移動やキャラクターのふるまい)など、描画以外のゲームを成立させるうえで必要な目に見えない処理はCPUが処理することになる。
つまり、プレイヤーなどキャラクターの多いゲームまたは多くなるシーンは、CPU負荷が高くなるのだ。最近流行りのバトロワなんかは特にそうで、CPU依存の傾向が強い。プレイヤーが60人、100人いるゲームの中で、密集地帯になると単純にCPUの処理する量が増えてしまう。
原因
CPUが足を引っ張る、といっても大きく分けて原因が2つある。単純にCPU性能の場合と、メモリが足を引っ張っている場合。両方の場合もある。描画の際は、GPUが出力するデータをCPUがメモリを使って処理した後描画される。
例えばGPUが秒間100フレーム出力していても、CPUが秒間60フレームしか処理できない場合はCPUが足を引っ張り、最終的なアウトプットは秒間60フレーム(60FPS)となってしまうのだ。
つまり、この2つのうちどちらかが弱いとそこに足を引っ張られてしまう。これがボトルネックだ。
対策
以下すべての項目において、すべて自己責任で実施すること。意味が分からず、調べてもわからなければやらないほうが安全。上から順に低リスク・低コストでおススメだ。
1. レジストリの編集
以下レジストリの SystemResponsiveness の値を、10進数で 10 に変更する。
HKEY_LOCAL_MACHINE\SOFTWARE Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
この値は、低優先度のタスクに対して予約されるCPUリソースの割合を設定している。デフォルトでは20、つまり20%を予約しているが、それを10%に減らしてやる。減らした予約リソース分をゲームに使えるので、FPSが上がるという仕組みだ。
2. 優先度の変更
タスクマネージャからゲームのプロセスを検索し、優先度を上げる。
「リアルタイム」に変更すると動作が不安定になることが多々あったので、「通常以上」または「高」がおススメだ。
3. オーバークロック
オーバークロックとは、CPUの動作クロック周波数を上げることで処理速度を高める手法だ。
CPUにはベースクロックという標準の動作周波数が設定されているが、これを上回る周波数で動作させるのがオーバークロックだ。(例:ベースクロックが3.6GHzのCPUを4.0GHzで動作させる)オーバークロックによってCPUの性能を底上げすることで、ゲームのFPSを向上させることができる。
ただし、オーバークロックにはリスクが伴う。クロック周波数を上げると、消費電力が増えCPUの発熱量が増大する。適切な冷却対策を施さないと、PCの動作が不安定となったり最悪の場合故障してしまう恐れがある。また、オーバークロックに対応したCPUとマザーボードが必要となる。
よくわからない人、恐怖を感じるならやめておいたほうが良い。気になる人は「CPU型番 overclock」とググってみると良い。そのCPUをオーバークロックした人が、どのくらいの電圧で、どのくらいのクロックで動いたのかを書いてくれているので、それを参考にしつつ微調整していこう。
まとめ
FPSを上げてさらに上の世界を目指してください。