2012-03-19 7 views
1

私はJVMドメインの初心者ですが、JFrameのようにスイングコンポーネントを使用すると、エデンスペース使用量が常に増加していることに気付きました。 VisualVMでプロットされたグラフは、上昇する直線です)、GCが最下点に戻すまで新しく作成されたオブジェクトにEdenスペースが使用されているので、これらのオブジェクトを常に何が作成しているのか、そしてSwingコンポーネントなしで同じ効果が続くのだろうかと思います。スイング使用時にエデンスペース使用量が常に増加する

[編集]

ヒープダンプを見た後、私は[]作成されたオブジェクトは、char型であることを発見し、[] int型。それらの目的は何ですか?

答えて

4

JVMはEden空間に新しいオブジェクトを作成するので、GCが消去するまで直線的に上昇するとOKです。 Javaメモリは「世代」で管理され、オブジェクトは若い世代に応じて最新世代(Eden)からPermに移動します。

Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machineは、Javaでのメモリ管理についての良い記事です。

+0

返信いただきありがとうございます。私は新しい物体がエデンの空間に作られていることを理解していますが、この場合は何ですか?入力イベントや他のデーモンスレッドを待っているときにイベントディスパッチスレッドによって作成されますか? – stackoverflower

+0

実際に何が作成されているかを調べるには、プロファイラを使用する必要があります。 http://netbeans.dzone.com/vvm-displaying-java-memory-pool-statsを試してください – sikander

1

実際には、VisualVMを使用したプロファイリングによって問題が発生する可能性があります。thisを参照してください。

関連する問題