2

Java プログラムのメモリ使用量をプロファイリングするために実行しています。512 の RAM ボックスがあり、上部には 500 MB ほどの RAM が使用されており、空き容量はほとんどありません。ただし、RES 列を見ると、jvm が 100MB 程度しか使用していないことがわかります。そして、他のすべてのプロセスは重要ではありません (1k 未満)。それでは、正確にすべてのメモリを消費しているのは何ですか、それとも上部を間違って読んでいるのでしょうか?

4

3 に答える 3

2

その500MBには、ページキャッシュ(ディスクファイルのキャッシュされた部分)によって使用されるメモリが含まれます。このメモリはプロセスで使用できるように再利用可能です。したがって、「空き」としてリストされているメモリを「キャッシュ」としてリストされているメモリに追加すると、タスクで引き続き使用できるメモリが得られます。

freeまたは、この図を行の「free」列にリストするコマンドを使用することもできます-/+ buffers/cache:

于 2010-08-11T02:14:53.693 に答える
0

また、複数のアプリケーション (動的ライブラリーと考えてください) によって使用されるメモリーは、1 つのコピーを占有する場合でも、参照されるたびにカウントされます。も使ってみてくださいhtop

于 2010-08-10T17:41:12.537 に答える
-1

それが予約済みメモリです。プロセスはそれを使用しません。それは予約されています。別のプロセスがより多くのメモリを割り当てたい場合は、許可を取得します。

于 2010-08-10T17:37:16.603 に答える