シングルスレッドコンソールアプリケーションがあります。
CPU使用率の概念と混同しています。優れたシングルスレッドアプリケーションは、CPU使用率の最大100%を使用する必要がありますか(使用可能であるため)、またはCPU使用率を多く使用しないようにする必要があります(コンピューターの速度が低下する可能性があるため)。
私はいくつかの調査を行いましたが、私の混乱に対する答えは見つかりませんでした。私は学生であり、まだ学んでいるので、フィードバックをいただければ幸いです。ありがとう。
これは、プログラムがCPUを必要とする目的によって異なります。多くの作業を行う必要がある場合は、1つのコアすべてを一定期間使用するのが一般的です。ほとんどの時間を入力の待機に費やすと、当然、CPUの使用頻度が低くなる傾向があります。私は「少ない」ではなく「少ない頻度」と言います。理由は次のとおりです。
シングルスレッドプログラムは、常に実行されているか実行されていないかのいずれかであるため、常に1つのCPUコアの100%または0%を使用しています。50%または30%のみを使用しているように見えるプログラム、または実際には計算作業の期間と入力を待機している期間のバランスを取っているだけのプログラム。ハードドライブなどのデバイスはCPUに比べて非常に遅いため、ディスクから大量のデータを読み取るプログラムは、大量の数値を処理するプログラムよりも少ないCPUリソースを使用します。
プログラムがCPUを100%使用することは通常のことであり、多くの場合、長時間使用することもありますが、必要がない場合(つまり、busylooping)に使用するのは礼儀正しくありません。このような動作は、CPUを使用している可能性のある他のプログラムを混雑させます。
同じことがハードドライブにも当てはまります。人々は、ハードドライブも有限のリソースであることを忘れています。これは主に、タスクマネージャーがハードドライブの使用率をパーセンテージで把握していないためです。プロセッサとは異なり、ディスクアクセスの速度は固定されていないため、ハードドライブの使用状況を全体のパーセンテージとして測定することは困難です。ただし、CPUを使用してメモリ内の1GBのデータを移動する場合よりも、ディスク上で1GBのデータを移動する場合の方がはるかに時間がかかり、HDDホギングのパフォーマンスへの影響はCPUホギングの場合と同じかそれよりも悪くなります(速度が低下する傾向があります)。 CPU使用率が発生しているように見えずに、システムをクロールします。おそらく以前に見たことがあるでしょう)
最初に作成する小さなアカデミックプログラムは、1つのコアすべてを短期間使用してから、待機する可能性があります。コマンドプロンプトで番号を入力するなどの単純な作業は待機部分であり、その後、アカデミアであらゆる操作を実行することがアクティブな部分です。
それはそれが何をしているかに依存します。さまざまな種類の操作にはさまざまなニーズがあります。
全面的にリンゴというこの質問に答える非主観的な方法はありません。
正しい唯一の答えは、「ジョブを実行するために必要な量のCPUのみを使用し、それ以上は使用しない」ということです。
言い換えれば、可能な限り、そして合理的に最適化してください。一般に、CPUが低いほど、パフォーマンスが速くなり、クラッシュが少なくなり、ユーザーの煩わしさが少なくなります。
通常、天気の予測などのアルゴリズム的に重いタスクは、実行が許可されるのと同じ時間(実行されるまで)すべてのCPUを必要とするため、OSによって管理される必要があります。
一方、記録保持のために少しのデータを格納するためのWindowsフォームアプリケーションのような静的なユーザーインターフェイスを備えたグラフィカルアプリケーションは、主にユーザーが何かをするのを待っているため、CPU使用率を非常に低くする必要があります。