我是JVM领域的初学者,但是我注意到当使用Swing组件时,比如JFrame,伊甸园空间的使用量会不断增加(我想是以恒定的速度增长的,因为用VisualVM绘制的图形是一条上升的直线),直到GC把它送回最低点。由于伊甸园空间用于新创建的对象,我想知道是什么在不断地创建这些对象,如果没有Swing组件,同样的效果是否仍然会发生。
编辑
在查看堆转储之后,我发现创建的对象是char[]和int[]类型。这些对象是用来做什么的?
发布于 2012-03-19 16:41:12
JVM在Eden空间中创建新的对象,所以如果它直线上升,直到GC将其清除,也没问题。Java内存是按“世代”管理的,对象会根据年龄从最年轻的世代(伊甸园)移到Perm。
Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine是一篇关于Java中内存管理的好文章。
发布于 2012-03-19 18:22:20
这个问题实际上可能是由使用VisualVM进行性能分析引起的,请参阅this。
https://stackoverflow.com/questions/9767005
复制相似问题