web-dev-qa-db-ja.com

プロセスの開始後にプロセスのアフィニティを自動的に調整するにはどうすればよいですか?

パフォーマンスに影響を与えずにスタートアップでいくつかのプログラムを開き、スタートアップフォルダーにそれらへのショートカットを作成したいと思います。

場所の文字列の最後に修飾子を追加してこれを行うことができれば、うまくいくでしょう。

5

私はグーグルで簡単に検索したところ、次の記事が一番上に表示されました。 特定のアフィニティでアプリケーションを起動します。 また、 " start "の機能とそのスイッチのコマンドラインを確認すると、通常の起動方法が表示されます。起動時に特定のファイルを低優先度として実行するようにバッチファイルを設定し、cpuコア1または2のいずれかを使用するように設定できます。

3
Phillip R.

数年前に見つけた Prio という名前の小さなツールがあります。基本的には「プライオリティセーバー」です。つまり、アプリケーションの優先度レベルを指定して、アプリケーションの起動時にこれを自動的に復元するようにPrioに指示できます。

非常に良いです-起動するMathKernelがコンピュータ上のすべての処理スレッドを誤って使い果たしないように、Mathematicaと組み合わせて使用​​します。

素晴らしいのは、特定のプロセスの優先度を記憶しているからです。複数のインスタンスを起動すると(Mathematicaが多数のカーネルを並行して実行する場合のように)、それらはすべて同じ優先度で起動します。

したがって、Visual Studioで開発作業を行っていて、devenvの優先度を低く設定すると、起動するVSの各インスタンスにその優先度レベルが設定されます。

3
Mike Bailey

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

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

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

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

このプロファイルは、convert.exeプロセスが最初の2つのCPUコアペア(CPU0、CPU1、CPU2、およびCPU3)を使用するように設定し、毎秒ポーリングします。 TestModeは、実際にアフィニティを設定しなくても、プロファイルが機能しているかどうかを確認できるトグルです。

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

1
Jake