Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 空闲时的JVM锯齿模式?JVM在此期间做什么?_Java_Swing_Memory_Jvm - Fatal编程技术网

Java 空闲时的JVM锯齿模式?JVM在此期间做什么?

Java 空闲时的JVM锯齿模式?JVM在此期间做什么?,java,swing,memory,jvm,Java,Swing,Memory,Jvm,我在想。我有一个带有servlet的简单JavaWeb项目。当没有用户使用它时(我在GlassFish上本地托管),我仍然可以在进程的内存使用中看到锯齿模式。我似乎不明白JVM在做什么?我理解JVM使用的内存的正常流动。堆中充满了应用程序正在创建的对象。在某一点上,堆到达垃圾收集器进入的点,垃圾收集器将删除所有不再使用的“缓存”对象,以便可以创建新对象并填充堆大小 我想知道的是,JVM空闲时一直在做什么 编辑: 就像我在评论中说的。我在Eclipse中创建了一个非常简单的Java应用程序,其中显

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

我想知道的是,JVM空闲时一直在做什么

编辑:


就像我在评论中说的。我在Eclipse中创建了一个非常简单的Java应用程序,其中显示了一个Swing窗口,显示“HelloWorld”。当我在JavaVisualVM中观察JVM的内存使用情况时,我看到了相同的锯齿模式

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

事实证明VisualVM是罪魁祸首。这是因为VisualVM不断地询问JVM它的统计数据是什么,所以JVM创建对象将信息提供给VisualVM

多亏了

你好,谢谢你的回复!你说的很有道理,但我找不到实例正在处理的任何内容。(毕竟有一个单独的玻璃鱼宿主过程)。我创建了一个非常简单的java应用程序,其中有一个swing窗口,上面写着“HelloWorld”。当我观看JVM时,它显示了相同的锯齿模式。。。JVM正在做一些事情,我真的很好奇,但是到目前为止,在互联网上的任何地方都找不到。。。