web-dev-qa-db-ja.com

CPU使用率とRAMの関係は何ですか?

CPU使用率が100%であり、RAMの50%しか使用されていないことを何度も目にしました。これら2つの関係はどのようなものですか?パフォーマンスが他にどのように影響しますか?

23
Gopi

CPUはメモリ内のものを処理します(追加などの処理を実行します)。 RAMはメモリピラミッドの一部にすぎません(以下を参照)。したがって、データのlotsを処理しているとき、そのデータ(またはおそらくその大部分)はRAMに読み込まれるので、cpuの準備ができています。これは、RAMがストレージデバイスよりもアクセスが速いためです。 RAMは、多くの場合、相互に関連付けることができますが、関連付ける必要はありません。

基本的な例は、画像編集プログラムです。私は20MBのjpegをロードし、プログラムはイメージ全体を読み取り、OSはそれをRAM for youに保持します(すべてのworkingメモリはプログラムと同じように見えます)。 OSがディスクまたはRAM上のページ/スワップファイルに移動するかどうかを決定します。したがって、画像はRAMが処理されるのを待っています)ですが、プログラムに適用するように指示する前に、コーヒーを飲みます。愚かなフィルターなので、CPUは何もしていません:高RAM低CPU。

戻って、フィルターを適用して画像にいくつかのバブルを追加します。CPUは100%になり、前処理された画像をメモリに保持するため、さらに多くのメモリが使用され、行った変更を元に戻すことができます。高RAM、高CPU。

バブルが追加されてプログラムが完了すると、CPUは低下しますが、メモリは低下しない可能性があります。

もちろん、これはそれほど単純ではありません:-)

Picture of Memory Pyramid

45
Kyle Brandt

それはあなたの脳が本と持っているのと同じ関係です。脳が高速であるほど、読み取りが高速であるほど、本は大きくなります。つまり、より多くのページを含めることができます。

24
pauska

RAMはデータの保存に使用されます。 CPU時間はデータの処理に使用されます。

CPUとメモリ使用量の間に関係はありません。プロセスはシステムのすべてのCPUを占有できますが、使用するメモリは最小限です。また、プロセスはシステムで利用可能なすべてのメモリを割り当てることができますが、最小限のCPU時間しか使用しません。したがって、両者の間に関係はありません。

10
joschi

2つの間に一貫した関係はありません。 CPU使用率は、アプリで実行する必要がある処理または作業の量によって異なります。 RAMは、アプリの実行中にアプリを保持するために必要な容量/メモリです。

さらにRAM =より多くのアプリを同時に実行できます

より多くのCPU =より複雑な計算/演算を実行できます

お役に立てば幸いです。

5
Glen Y.

それらは関連していません。これらのリソースの1つだけを多く使用するタスクもあれば、両方を使用するタスクもあります。

2
Amok

関係はありません。いくつかの頑丈な数の処理を行うという観点から考えてください。 RAMは、より高速に取得するために保存できる数値の数ですが、CPUは、それらの数値に対して実行される数学的演算を実行できる速度です。

一方が他方にどのように影響するかについて、CPUは遅いがRAMはたくさんあると仮定しましょう。つまり、これらの数値のかなりの数をメモリに格納できます。一般的な32ビットマシンでは、約5億個です。ただし、これらの数値の処理/計算などは遅くなります。

一方、CPUが高速でRAMが少量の場合、数値の処理は高速になりますが、場合によっては、マシンがディスクから数値をドラッグする必要があります(そして、より多くのスペースを確保するために、それらを再度戻す必要があります)。 )、RAMから取得するよりも何倍も遅いです。

ですから、実際には、それぞれがお互いに影響を及ぼし、最高のパフォーマンスを得るには、両方が良好である必要があります。ただし、これは完全に各アプリケーションが実際に何であるかに依存します実行中、および今のところあまり詳細に説明する必要のない他の要因(ディスク速度、プロセッサキャッシュなど)があります。しかし、あなたが注意すべきことは事態を複雑にします。

1
Maximus Minimus