java - JVM锯齿空闲进程

标签 java garbage-collection jvm

我目前正在进行一项研究,涉及一些 JVM 及其内存使用情况。我不明白的是,JVM 在空闲时用什么填充它的内存,只是在堆快用完时释放它?为什么不只有一条已用内存的扁平线?顺便说一句,这个 Java 应用程序托管在 glassfish 上,但是当我只有一个简单的“hello world”swing 应用程序时,我有相同的图表。因此 GlassFish 无需对其执行任何操作。

enter image description here

提前致谢!

最佳答案

what does the JVM fill it's memory with when idle, just to release it all when the heap is almost reached?

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

Why isn't there just one flat line of used memory?

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

关于java - JVM锯齿空闲进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123457/

相关文章:

java - JAXB 解码错误

java - 音频分析 : frequency vs pitch

java - 如何在 javadoc 中显示构造函数注释?

Java 垃圾回收 5

java - 如何使用objdump反汇编OpenJDK(bin/java)?

java - 在 Docker 容器中运行时,高 I/O Java 进程始终在 JavaThread 中获取信号 11 SIGSEGV

java - 有没有办法启动 "empty"JVM 实例而不给它一个 Main 类来运行?

java - 如何找到最大值和最小值

java - G1 GC 是否支持 UseGCOverheadLimit?

java - 如何修复 java.lang.UnsupportedClassVersionError : Unsupported major. 次要版本