闲置时JVM锯齿模式?JVM在此期间做了什么?

Ren*_*eld 3 java memory swing jvm

我在想.我有一个带有servlet的简单Java Web项目.当没有用户使用它时(我在GlassFish上本地托管它)我仍然在进程的内存使用中看到锯齿模式.我似乎无法理解JVM正在做什么?我理解JVM使用的内存的正常流程.堆正在填充应用程序正在创建的对象.在某个时刻,堆到达垃圾收集器进入的点,这将删除所有不再使用的"缓存"对象,以便可以创建新对象并填充堆大小.

我想知道的是,JVM在空闲时一直在做什么? 在此输入图像描述

编辑:

就像我在评论中说的那样.我在Eclipse中创建了一个非常简单的Java应用程序,它显示了一个Swing窗口,上面写着'hello world'.当我在Java VisualVM中观察JVM的内存使用情况时,我看到了相同的锯齿模式.

Ren*_*eld 8

事实证明,VisualVM是有罪的.这是因为VisualVM不断向JVM询问它的统计信息是什么,因此JVM创建了向VisualVM提供信息的对象.

感谢 Peter Lawrey