3

ファイル暗号化プログラムがあります。プログラムがファイルを暗号化しているとき、CPU 使用率が 25% を超えないため、処理が遅くなります。

OS がより多くの CPU 負荷を割り当てるようにするにはどうすればよいですか? (WinRARなど、ファイル圧縮時はCPU負荷から100%に達します)。


[編集]: 私のコアは 4 であるため、複数のコアを使用することはありません。残りのコアを使用するにはどうすればよいですか?

4

5 に答える 5

2

別の方法でアプリケーションを調整しない限り、OS が許可する限りの CPU を使用します。これはデフォルトで最大 100% になるはずです。他のリソースがボトルネックになっていると思います。

遠隔地から暗号化するデータをストリーミングしていますか? 何らかの理由でかなり遅いディスクから?

于 2011-07-06T14:34:11.527 に答える
1

CPU の割合が高いほど、プログラムが効率的であると考える人がいます。そうであれば、無限ループが最も効率的です。

基本的に機械式ハード ドライブからファイルを処理するプログラムがある場合、理想的には IO バウンドにする必要があります。つまり、CPU 部分は、ファイルをディスクから移動する場合と比較して、時間の割合が低くなるように十分に効率的である必要があります。I/O が全体に占める割合が大きくなるため、CPU 時間を削減するためにできることはすべて CPU の割合を減らします。この 2 つを行ったり来たりして、最初に CPU (プログラムのチューニング) を減らし、次に I/O (例: ソリッドステート ドライブ) を減らすことができれば、本当に飛ばすことができます。

次に、CPU 部分がまだ必要以上に時間がかかっている場合は、必ず複数のコアにファームアウトしてください。

于 2011-07-06T18:11:35.297 に答える
1

念のため、v4.0 を使用している場合は、より多くの CPU 負荷を割り当てるのではなく、Parallel Framework(PFX)を使用してみてください。マルチコアプロセッサ向けに最適化されています。.

Parallel.Invoke(() => DoCompress());

また、C# の Threading は、宇宙で最高のスレッド関連リソースです。

于 2011-07-06T18:46:51.397 に答える
1

ツールがシングル スレッド プログラムの場合、1 つのコアしか消費しません。プログラムが for ループまたは他の種類のループのみを実行する場合、そのコアでのパフォーマンスは 100% に達します。ツールが I/O を実行する必要がある場合、パフォーマンスが最大になることはありません。ご覧のとおり、25% はすべての CPU コアあたりです。私が覚えているように、いくつかの投稿では、各 CPU コアの消費率を表示する方法を示しています。

于 2011-07-06T14:37:51.013 に答える
-1

これは、プロセッサやリソースの割り当てとは関係ありません。使用するツールは、CPU の 4 つのコアすべてを使用するようには設計されていません。

于 2011-07-06T14:34:22.170 に答える