質問

私が過去に読んだ内容によると、Windows アプリケーションの優先順位をプログラムで変更しないこと、また、変更する場合は決して「リアルタイム」に変更しないことが推奨されています。

「リアルタイム」プロセス優先度設定は、「高」や「通常以上」と比較してどのような影響を及ぼしますか?enter image description hereenter image description here

役に立ちましたか?

解決

リアルタイム優先度のスレッドは、タイマ割り込みによって横取りしないと、システム内の他のスレッドよりも高い優先順位で実行されないことができます。そのようなCPUバウンドリアルタイム優先度のスレッドとして完全にマシンを台無しにすることができます。

リアルタイム優先度のスレッドを作成する権限が必要です( SeIncreaseBasePriorityPrivilege )ので、管理ユーザーのみによって行うことができます。

Vistaの場合以降、彼らはリアルタイムの優先順位で実行することを要求しないアプリケーションのための一つの選択肢は、<のhref = "http://msdn.microsoft.com/en-us/library/ms684247(VSを使用することです。 85)」のrel = "noreferrer">マルチメディアクラススケジューラサービスする(MMCSS)を.aspxのと、それはあなたのスレッドの優先度を管理することができます。あなたがマシンを暴落を心配する必要はありませんので、MMCSSがあまりにも多くのCPU時間を使用してからアプリケーションを防止します。

他のヒント

単純に、「リアルタイム」優先クラスは「高」優先クラスよりも高くなります。それ以上のことはないと思います。そうそう、あなたはそれを持っている必要があります SeIncreaseBasePriorityPrivilege スレッドを Real Time クラスに追加します。

Windows はさまざまな理由でスレッドの優先順位を上げることがありますが、スレッドの優先順位を別の優先順位クラスに上げることはありません。また、リアルタイム優先クラスのスレッドの優先順位も上がりません。したがって、高優先度のスレッドは、リアルタイム優先度クラスに自動的に一時的にブーストされません。

Windows が優先順位を処理する方法に関する Russinovich の「Inside Windows」の章は、これがどのように機能するかを学ぶための優れたリソースです。

通常の Windows システムでは、リアルタイム優先度を持つスレッドにまったく問題はありません。これらは、必ずしも dedicatd マシンで実行される特別なプロセス用ではありません。マルチメディア ドライバーやプロセスには、リアルタイム優先度のスレッドが必要になるのではないかと思います。ただし、そのようなスレッドは多くの CPU を必要としません。通常のシステム イベントが処理されるようにするために、ほとんどの時間はブロックされるはずです。

これは、利用可能な最も高い優先順位の設定になり、そして通常はその特定のプログラムを実行するに捧げられた箱に使用されます。それは、彼らが応答しなくなる程度にキーボードとマウスのスレッドの飢餓を引き起こす可能性があることを十分に実際に高いのです。

ですからbasicly、あなたが聞いている場合は、それを使用しないでください。)

リアルタイムが最優先です クラス プロセスで利用可能。したがって、1 段階大きいという点で「高」、2 段階大きいという点で「標準以上」とは異なります。

同様に、リアルタイムもスレッドの優先順位レベルです。

プロセスの優先順位 クラス プロセス内のすべての有効なスレッド優先度を上げたり下げたりするため、「基本優先度」とみなされます。

したがって、プロセスには次のものがあります。

  1. 基本プロセス優先度クラス.
  2. 個々のスレッドの優先順位, 、基本優先クラスのオフセット。

リアルタイムは、他の実行中のプロセスを絶対に先取りする必要があるアプリケーションのために予約されていると考えられているため、リアルタイムを無計画に使用しないように保護するための特別なセキュリティ特権があります。これはセキュリティ ポリシーによって定義されます。

NT6+ (Vista+) では、Vista マルチメディア クラス スケジューラを使用することが、リアルタイム操作を実現する適切な方法です。 ない リアルタイムOSのこと。ほとんどの場合は機能しますが、OS はリアルタイム操作用に設計されていないため、完全ではありません。

Microsoft は、この優先順位が非常に危険であると考えていますが、それは当然のことです。非常に特殊な状況を除き、アプリケーションはこれを使用すべきではありません。また、その場合でも、その使用を一時的なニーズに限定するようにしてください。

Windowsのプログラムは、通常の優先度よりも高いを使用して学習したら、それはプロセスに優先順位を制限ように

それはそうです。

IDLEからREALTIMEに優先度を設定すると、CPUの使用率を変更しません。

私がドロップするとCPUのいずれかが最後のCPU使用率意志MAX OUTのようにotの、最後のCPUがアイドル状態のままであることを私のマルチプロセッサAMDのCPUで見つかりました。プロセッサ速度は、私のクワッドAMD 75%増加します。

を使用するタスクマネージャ - >はPROCESS-を選択>右PROCESS-> SELECT - >アフィニティセットをクリックします。 最後のプロセッサが、すべてをクリックしてください。処理映像が増加する場合、CPUの使用率が残りのプロセッサとフレーム数にMAXに増加します。

これは、基本的に他のすべてで大きい/高くなっています。キーボードは、リアルタイムプロセスよりも優先順位の低いです。このプロセスは、キーボード、次に速い考慮されますと、それはそれを扱うことができない場合は、キーボードが減速されることを意味します。

すべての他の回答のように、リアルタイムの前には、そのプログラムに最優先クラスを提供します。そのプログラムが処理されるまでは何も処理されません。
私のペンティアム4のマシンでそれがゲームのパフォーマンスをたくさん増加するので、私はリアルタイムにたくさんのMinecraftを設定し、システムが完全に安定したようです。そう、リアルタイムでは、マルチコアが特定のコアまたはコア(だけではないそれらのすべて、ちょうどすべてがそうでない場合には、リアルタイムに実行することができるようにするには、プログラムの親和性を設定しているだけであれば、それは思ったほど悪くないですセットのプログラムがハングアップ)し、リアルタイムに優先度を設定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top