我是JVM领域的初学者,但我注意到当使用Swing组件时,就像JFrame一样,Eden空间使用量不断增加(我认为速度恒定,因为VisualVM中绘制的图表是直线上升的()),直到GC将其发送回最低点。由于Eden空间用于新创建的对象,我想知道什么是不断创建这些对象,如果没有Swing组件仍然会发生相同的效果。
[编辑]
查看堆转储后,我发现创建的对象是char []和int []类型。那些对象是什么?
答案 0 :(得分:4)
JVM在Eden空间中创建新对象,如果它直线上升直到GC清除它,则可以。 Java内存以“代代”进行管理,对象从最年轻的一代(Eden)移动到Perm,具体取决于它们的年龄。
Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine是一篇关于Java内存管理的好文章。
答案 1 :(得分:1)
问题实际上可能是由使用VisualVM进行性能分析引起的,请参阅this。