2011-10-26 21 views
13

Spring Batchを使用してアプリケーションを作成しました。 VisualVMでは、ヒープサイズが約22 MBであることがわかります。しかし、Process Explorerを使用して(Windows上で)それがどれだけのメモリを使用しているかを見ると、その差は大きくなります(プライベートバイト - 71560Kとワーキングセット - 80388K)。これを説明する方法は? このメモリを使用する他のものは何ですか?Javaプロセスおよびヒープサイズで使用される合計メモリ

おかげ

答えて

2

は、ネイティブスペース(スタック)を忘れないでください!ヒープはオブジェクトのみを表し、スレッド/プリミティブは追加のメモリを占有します。また、AFAIKは、一度プロセスがメモリを占有すると、内容がガベージコレクトされても、時々OSに戻されることはありません。さらに、私はVisualVMについてはわかりませんが、eclipse MATは "現在"のヒープしか表示しません(GCがその時点で実行された場合はガベージコレクションされません)。また、jstatを見たいかもしれません。

5

共有ライブラリ、スレッドのスタック、perm gen、ダイレクトメモリ、メモリマップファイルがあります。

ただし、JVMは起動時に最大ヒープサイズを割り当てます。使用量はそれほど重要ではありません。

関連する問題