web-dev-qa-db-ja.com

すべてのアプリケーションにデフォルトのプロセッサ親和性を設定する

ゲームのCPUパフォーマンスを向上させようとしています。これを行うには、そのアプリケーションのみを実行し、Windows関連のサービスを実行しない2〜4個のCPUコアを提供してみたいと思います。すべてのアプリケーション、サービス、プロセスなどにデフォルトのアフィニティを設定できる場所はありますか。コンピュータ上にあるので、コアは事実上まったく使用されていませんか?

4
Novicode

powerShellで:

$instances = Get-Process
foreach ($i in $instances) { $i.ProcessorAffinity=1 }

ほとんどのプロセスを最初のコア(タスクマネージャーのコア0)で実行します。はい、アフィニティを変更できないプロセスに対して、非常に多くの「アクセス拒否」エラーがスローされます。無視してください...残りは機能します。

次に、手動またはコマンドを使用して、次のようにゲームを目的のコアに設定します。

(Get-Process -name Doom).ProcessorAffinity = 14

「Doom」ゲームを4コアCPUの残りの3コアで実行するように設定します。

4
deemon

これは部分的に多くの手作業で達成できます。タスクマネージャまたはコマンドラインからプロセッサアフィニティを設定できます。それを行う方法については、これを参照してください 記事 。残念ながら、この方法はサービスでは機能しません。

しかし、これがあなたに大いに役立つとは思いません。ゲーム中、OSはCPUに関してあまり多くのことをしていません。もちろん、これはあなたの家賃が同時に他のタスクを実行していることを前提としていますが、パフォーマンスについて不平を言っているので、そうはなりません。ゲームをプレイするとき、すべてのコアが100%で最大になりますか?私はそれを疑うでしょう。パフォーマンスの低下は、CPUに依存しない可能性が高いですが、グラフィックスやディスクなどの他の何かです。何があなたを遅くしているのかを実際に確認するには、パフォーマンスモニター(Windowsのperfmonなど)を実行する必要があります。

2
Keltari

Windowsに1つのコアのみでアプリケーションを実行させる他のいくつかの方法が答えられます ここ 。これにより、他の3つのコアをゲーム用に解放できます。そして、taskmgrまたはcmdlineを介して手動でこれに対するアフィニティを設定する方法は、パフォーマンスのボトルネックが発生する可能性のある他の有用なヒントとともにKeltariに回答しました。

2
wottis