回答:
アフィニティの設定は何かを行いますが、それを使いたくないでしょう。
CPUアフィニティを設定すると、Windowsは選択したCPU(またはコア)のみを使用するようになります。アフィニティを単一のCPUに設定すると、WindowsはそのCPUでのみアプリケーションを実行し、他のCPUでは実行しません。
Windowsは、実行中のアプリケーションを最も使用率の低いプロセッサに自動的に配置するため、単一のCPUに制限しても、Windowsはその役割を果たせません。CPU /コア1が他のアプリケーションの実行でビジーであっても、WindowsはCPU /コア2でアフィニティが設定されたアプリケーションを実行できません。
マルチCPU /コアシステムで実行しているときに正しく動作しない古いアプリケーションを実行することが、これを実行する唯一の理由です。
アフィニティを設定すると、そのプロセスで実行が許可されているプロセッサがそのプロセスに通知されます。
一部のニッチなケースでは非常に便利ですが、平均的なユーザーはおそらくそれをいじる必要はありません。
たとえば、プロセスが独自のコアの実行を許可されている場合、70のウィンドウユーティリティが独自のタイムスライスのプロセッサで絶えず割り込みやスタックスワップを行わなくても、(ほぼ)リアルタイムで実行できます。リアルタイムアプリケーションは、マルチプロセッサ/マルチコアシステムが登場するまで、OSがアプリケーションを中断したり、タスクを切り替えたりするため、ウィンドウズが決して実行できなかったものでした。システムの他のすべてのアプリケーションがそのプロセッサを使用しないようにしながら、リアルタイムアプリケーションを1つのプロセッサに分離することで、ほとんどの場合それを克服できます。これは非常にニッチなテーマですが、(実際の)フライトシミュレータ、ファクトリオートメーション、制御フィードバックシステムなどのシステムは、リアルタイムアーキテクチャに依存して機能します。
プロセッサを集中的に使用するアプリケーション(VMなど)を独自のコアに分離できるため、システムの残りの部分をクロールしなくても使用できます。理論的には、ベアメタルハイパーバイザーの相互作用をサポートするプロセッサ上で実行されるハイパーバイザーは、それ自体で実行される独立したOS(ホストOSの実行に必要なプロセッサを除く)と同等のプロセッサパフォーマンスに到達できます。もちろん、実際には、独立したコア/プロセッサで実行されているVMでも、ホストOSからの少量のオーバーヘッドを受け入れる必要があります。
大量のデータをフラックスで処理するアプリケーションの場合、アプリケーションをそれ自体のプロセッサーに分離すると(さらに、複数のコアを使用する可能性がある場合)、キャッシュスワッピングが削減されます。
古いプロセッサが複数のプロセッサに分散しているときに機能しなくなると、問題を修正するために1つのコア/プロセッサに制限することができます。
特定のアプリケーションでパフォーマンス測定を行っていた場合、プロセスを分離できない限り、異なるシステム間で一貫した結果を得るのはほぼ不可能です。そうしないと、OSがアプリケーションに与える時間を制御できないためです。ほとんどの人は、ランタイムパフォーマンスを測定しても良い結果が得られないことに同意しますが、アフィニティを使用することでOSの介入(結果の一貫性が失われる)を制限できるとは考えていません。
アフィニティが重要な場合はたくさんありますが、それらが何であるかがわからない場合は、おそらく必要ありません。
これは、特定のシナリオで非常に役立つ機能です。アイドル状態になる傾向があるか、数分間すべてのCPUの100%を積極的に取得し、検索やビルドなどを行う傾向があるマルチスレッドアプリケーションがあるとします。このアプリケーションを「食」と呼びましょう。
また、このアプリケーションに取り組んでいる間に、CPU要件が適度であるが、本質的にはリアルタイムアプリケーションである他のアプリケーションがたくさんあるとします。たとえば、Eclipseを使用していて、ランダムにビルドを開始したり、gwtコンパイルを行ったりしているときに、コンピューターを使用して音楽をストリーミングしたり、ブラウザーウィンドウで調査を行ったりします(たとえば、ビルドの問題の原因を調査します)。 。確かに、音楽がスキップしたり、ブラウザが応答を停止したりしても死ぬことはありませんが、迷惑です。
CPUイーティングアプリを7/8コアに制限することで、他の誰もが比較的未使用のCPUにアクセスできることが保証され、コンピュータ上の他のすべてのユーザビリティの途切れや中断に常に対処する必要がなくなります。日食がすり減っている間。
優先度が高いほど、タスクの処理が優先度の低いタスクよりも有利になります。非常に応答性が必要なアプリケーションを実行している場合や、たとえば他の非対話型プロセスが多数ある場合、優先順位を設定することで、優先順位の高いプロセスのエクスペリエンスを向上させることができます。
例:Windows Vista以降、Windows Media Playerは自動的にメディアファイルのスムーズで継続的な再生を保証するためにより高い優先順位を取得し、デフォルトでは他のプロセスで使用できるCPU時間は約20%のみです。これは、優先順位が何をするかを理解するのに役立つ例にすぎません。(Technetの VistaでのMedia Playerの優先順位について詳しく読むことができます。)
ソフトアフィニティまたはハードアフィニティを使用すると、以前にプロセスが中断され、後で再開されたときに、CPUのキャッシュにプロセスの残りが残っている可能性があるため、処理速度が向上します。
これの完璧な例は、古い32ビットゲーム(アプリケーション)が最新の64ビットコンピューターでエミュレートされている場合は特に、古いコンピューターゲーム(または他のソフトウェア)です。古いゲームのアフィニティを4つのコアのみに制限することで、クラッシュを回避してスタブバーンゲームを開始できるようになることがよくあります。OLDゲーム、ビデオエディター、ハードウェアアクセラレーショングラフィックソフトウェア、またはCADソフトウェアで使用される一部のレンダリングエンジンは、4つを超えるCPUコアを認識せず、起動時にクラッシュします。
これを投稿するためだけにアカウントを作成するのではなく、google 'kieseyhow'を見つけます