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

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

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

编辑:

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

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

感谢Peter Lawrey

我的猜测是应用服务器正在进行某种幕后的簿记。 请记住,即使没有人使用它,仍然有后台运行的线程。 此外,您的应用程序是否使用任何类型的按时间顺序的触发器框架,如Quartz? 或者,如何记录。 即使它可能没有主动将日志消息发送到文件,Logger仍然会被调用,这会导致创建/销毁各种事物。