3


複雑なアルゴリズムを実装するループでは CPU 時間の 100% を使用するのに、ビジー ループでは CPU 時間を 100% 使用することがよくあるのはなぜですか?
ありがとう :)

4

5 に答える 5

4

CPU アーキテクチャの JUMP 命令は、パイプラインをフラッシュさせるため、非効率的です。ビジー ループは、事実上無限の一連の JUMP 命令です。

于 2011-05-01T19:37:38.997 に答える
3

複雑なアルゴリズムは、確かに CPU を 100% 使用できます。ただし、複雑なアルゴリズムを実装する多くのループは、定期的に明示的にスレッドを生成するか、スレッドが生成されるか、待機を必要とする何か (co-プロセッサ) が発生します。

于 2011-05-01T19:37:49.193 に答える
2

まず、ビジー ループが 100% を使用している場合は、正しく実行されていません。少し寝ます。

第 2 に、複雑なアルゴリズムでは、単にループするのではなく、値を格納するためのメモリが必要になることがよくあります。スレッドがメモリやディスクなどの外部リソースを使用する必要があるときはいつでも、CPU は少し待たなければなりません。これが、使用率が 100% 未満になる理由です。

于 2011-05-01T19:41:44.843 に答える
1

「ビジー ループ」はメモリと対話する必要がないため、基本的に CPU は外部入力を待たずにすべての作業を行っています。

于 2011-05-01T19:38:56.477 に答える
1

その「複雑なアルゴリズム」が何をしているかに依存します。ハードドライブへのアクセスを行いますか? ネットワーク要求?他のハードウェアとやり取りしますか? その場合、CPU はこれらの処理が完了するのを待たなければならないため、その情報が戻ってくるのを待つ間、何もせずに (または他の作業へのコンテキスト スイッチを実行して) 待機します。

于 2011-05-01T19:39:38.743 に答える