3

私は現在、JVMの一部と、そのメモリ使用量がどのように機能するかを調査しています。私が理解していないのは、JVMがアイドル状態のときにメモリを何で満たすのか、ヒープにほぼ到達したときにすべてを解放するのかということです。使用済みメモリのフラットラインが1つだけではないのはなぜですか?ところで、このJavaアプリケーションはGlassfishでホストされていますが、簡単な「helloworld」swingアプリケーションを使用している場合も同じグラフが表示されます。したがって、GlassFishはそれを使って何もする必要はありません。

ここに画像の説明を入力してください

前もって感謝します!

4

1 に答える 1

7

ヒープにほぼ到達したときにすべてを解放するために、JVMはアイドル時にメモリを何で満たしますか?

アプリケーションが本当にアイドル状態の場合、最も可能性の高いケースはVisualVMです。サンプルレートを下げてみて、メモリが消費されるレートも低下するかどうかを確認してください。

使用済みメモリのフラットラインが1つだけではないのはなぜですか?

JMXはJavaで記述されているため、統計を収集してデータをシリアル化すると、かなりの量のガベージが生成されます。メモリプロファイリングをオンにして、すべてのメモリ消費がJMXおよびVisualVMに関連していることを確認できます。ネイティブエージェントを使用してJVMを監視する商用プロファイラーを使用する場合、この動作は表示されません。たとえば、YourKitはこれを行いません。

于 2012-10-29T14:34:51.080 に答える