プロセスのアフィニティを永続的に設定するにはどうすればよいですか?

プロセスのアフィニティを永続的に設定するにはどうすればよいですか?

CPU 使用率に問題があるゲームがあるので、解決策の 1 つは、クアッド コア CPU のうち 1 つのコアを無効にすることです。ゲームを起動するたびに、タスク マネージャーに手動でアクセスしてアフィニティを手動で入力する必要がありますが、ゲームは新しくリリースされたばかりなのに頻繁にクラッシュする傾向があるため、これは面倒です。

ソフトウェア以外のソリューションはありますか?

オンラインでいくつかの解決策を調べましたが、それらは Windows 7 のみを対象としているようです。私のような Windows 8.1 ユーザー向けの解決策はありますか?

答え1

アフィニティを割り当てるためのショートカットを作成できます。

X:\Windows\System32\cmd.exe /C start /affinity Y game.exe

Y16進数でビットマスクです:

0x1 - 0001 - Core0
0x2 - 0010 - Core1
0x3 - 0011 - Core1 & Core0
0x4 - 0100 - Core2
0x5 - 0101 - Core2 & Core0
0x6 - 0110 - Core2 & Core1
0x7 - 0111 - Core2 & Core1 & Core0
0x8 - 1000 - Core3
0x9 - 1001 - Core3 & Core0
0xA - 1010 - Core3 & Core1
0xB - 1011 - Core3 & Core1 & Core0
0xC - 1100 - Core3 & Core2
0xD - 1101 - Core3 & Core2 & Core0
0xE - 1110 - Core3 & Core2 & Core1
0xF - 1111 - Core3 & Core2 & Core1 & Core0

答え2

「非ソフトウェア」が追加のソフトウェアを必要としないことを意味するのであれば、それは可能です。コマンドスクリプトからプログラムを実行し、アフィニティスイッチを使用することができます。"Start /AFFINITY 20 process.exe"

/AFFINITY 20は を 16 進数として扱い20、2 進数では となり100000、6 コア プロセッサの 0 ~ 5 のうちコア 5 にアフィニティを設定します。同様の 16 進マスクを使用すると、 のように特定のコアを無効にすることができ、E0 ~ 3 または 0 ~ 5 のうちコア 1 ~ 3 でのみプロセスが実行されます。

答え3

この質問に対する答えを探していて、何も見つからない人のために、私が見つけた解決策は、というアプリを使うことでした。ウィンAFC(または AffinityChanger)。これは、特定の実行可能ファイルのプロファイルを指定し、それらのプロセス リストをポーリングできる、部分的に GUI、部分的にコマンド ラインのアプリです。一致するプロセスが見つかった場合は、読み込まれたプロファイルの設定に従って、それらのプロセスのアフィニティを変更します。

ここにいくつかのドキュメントがあります:http://affinitychanger.sourceforge.net/

私の目的のために、次のようなプロファイルを作成しました。

TestMode = 0
TimeInterval = 1
*\convert.exe := PAIR0+PAIR1

このプロファイルは、すべての convert.exe プロセスが最初の 2 つの CPU コア ペア (CPU0、CPU1、CPU2、CPU3) を使用するように設定し、1 秒ごとにポーリングします。これTestModeは、実際にアフィニティを設定せずにプロファイルが機能しているかどうかを確認できる切り替えです。

誰かにとってこれが役に立つことを願っています!

答え4

私はここに来たばかりで、このフォーラムに投稿するのは初めてですが、とにかく、この表を作成しました。これで理解がずっと簡単になりました。コマンド ラインに 16 進数値 Y を入力するだけで、CPU スレッドの数が有効になります。お楽しみください。

CPU - HEX  - BINARY
00 -- 1 ---- 0001
01 -- 3 ---- 0011
02 -- 7 ---- 0111
03 -- F ---- 1111
04 -- 1F --- 0001 1111
05 -- 3F --- 0011 1111
06 -- 7F --- 0111 1111
07 -- FF --- 1111 1111
08 -- 1FF -- 0001 1111 1111
09 -- 3FF -- 0011 1111 1111
10 -- 7FF -- 0111 1111 1111
11 -- FFF -- 1111 1111 1111
12 -- 1FFF - 0001 1111 1111 1111
13 -- 3FFF - 0011 1111 1111 1111
14 -- 7FFF - 0111 1111 1111 1111
15 -- FFFF - 1111 1111 1111 1111

%ComSpec% /c start /affinity Y game.exe

関連情報