Java 空闲时的JVM锯齿模式?JVM在此期间做什么?
我在想。我有一个带有servlet的简单JavaWeb项目。当没有用户使用它时(我在GlassFish上本地托管),我仍然可以在进程的内存使用中看到锯齿模式。我似乎不明白JVM在做什么?我理解JVM使用的内存的正常流动。堆中充满了应用程序正在创建的对象。在某一点上,堆到达垃圾收集器进入的点,垃圾收集器将删除所有不再使用的“缓存”对象,以便可以创建新对象并填充堆大小 我想知道的是,JVM空闲时一直在做什么 编辑:Java 空闲时的JVM锯齿模式?JVM在此期间做什么?,java,swing,memory,jvm,Java,Swing,Memory,Jvm,我在想。我有一个带有servlet的简单JavaWeb项目。当没有用户使用它时(我在GlassFish上本地托管),我仍然可以在进程的内存使用中看到锯齿模式。我似乎不明白JVM在做什么?我理解JVM使用的内存的正常流动。堆中充满了应用程序正在创建的对象。在某一点上,堆到达垃圾收集器进入的点,垃圾收集器将删除所有不再使用的“缓存”对象,以便可以创建新对象并填充堆大小 我想知道的是,JVM空闲时一直在做什么 编辑: 就像我在评论中说的。我在Eclipse中创建了一个非常简单的Java应用程序,其中显
就像我在评论中说的。我在Eclipse中创建了一个非常简单的Java应用程序,其中显示了一个Swing窗口,显示“HelloWorld”。当我在JavaVisualVM中观察JVM的内存使用情况时,我看到了相同的锯齿模式 我的猜测是,应用服务器正在进行某种幕后簿记。请记住,即使没有人在使用它,仍然有线程在后台运行。此外,你的应用程序是否使用任何类型的按时间顺序排列的触发器框架,如Quartz?或者,关于日志记录呢。尽管它可能没有主动向文件发送日志消息,但日志记录者仍然会被调用,这导致了各种各样的东西被创建/销毁。事实证明VisualVM是罪魁祸首。这是因为VisualVM不断地询问JVM它的统计数据是什么,所以JVM创建对象将信息提供给VisualVM 多亏了
你好,谢谢你的回复!你说的很有道理,但我找不到实例正在处理的任何内容。(毕竟有一个单独的玻璃鱼宿主过程)。我创建了一个非常简单的java应用程序,其中有一个swing窗口,上面写着“HelloWorld”。当我观看JVM时,它显示了相同的锯齿模式。。。JVM正在做一些事情,我真的很好奇,但是到目前为止,在互联网上的任何地方都找不到。。。