Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 锯齿形空转过程_Java_Garbage Collection_Jvm - Fatal编程技术网

Java 锯齿形空转过程

Java 锯齿形空转过程,java,garbage-collection,jvm,Java,Garbage Collection,Jvm,我目前正在做一项研究,涉及JVM及其内存使用情况。我不明白的是,JVM在空闲时用什么填充它的内存,而在堆即将到达时释放它?为什么用过的内存不是只有一行?顺便说一句,这个java应用程序托管在glassfish上,但是当我有一个简单的“hello world”swing应用程序时,我有相同的图表。所以玻璃鱼不必和它有任何关系 提前谢谢 JVM在空闲时用什么填充内存,而在堆几乎到达时释放所有内存 如果您的应用程序确实处于空闲状态,最有可能的情况是VisualVM。尝试降低采样率,看看内存消耗的速率

我目前正在做一项研究,涉及JVM及其内存使用情况。我不明白的是,JVM在空闲时用什么填充它的内存,而在堆即将到达时释放它?为什么用过的内存不是只有一行?顺便说一句,这个java应用程序托管在glassfish上,但是当我有一个简单的“hello world”swing应用程序时,我有相同的图表。所以玻璃鱼不必和它有任何关系

提前谢谢

JVM在空闲时用什么填充内存,而在堆几乎到达时释放所有内存

如果您的应用程序确实处于空闲状态,最有可能的情况是VisualVM。尝试降低采样率,看看内存消耗的速率是否也会下降

为什么用过的内存不是只有一行


JMX是用Java编写的,因此当它收集统计数据并序列化数据时,会产生相当多的垃圾。您可以打开内存分析来确认所有内存消耗都与JMX&VisualVM相关。如果使用使用本机代理监视JVM的商业探查器,则不会看到这种行为。e、 g.YourKit不会这样做。

请注意,您正在监视的JVM正在运行Glassfish。服务器(特别是JEE服务器)很少真正空闲,它们几乎总是做一些后台簿记、检查缓存、低优先级的事情。可以检查背景内容是什么,但是如果您真的想检查JVM的行为,我宁愿在单个(非守护进程)线程中检查运行长时间运行的
Thread.sleep()
。谢谢。我意识到它确实是在玻璃鱼上运行的,所以我编辑了这篇文章。我将尝试sleep()方法,看看会发生什么:)嘿,对不起,约阿希姆,我该怎么办?在那个话题上我再也没有得到任何回复,因为没人看到。但仍然没有人回答。@Rens:。提供赏金或在问题中加入一些你自己的发现可能是一个好的开始。还有,就是这个!事实证明,当我将间隔改为每15秒而不是每1秒时,VisualVM确实显示出更少的内存使用!非常感谢你!你让我很开心!