java - 为什么 JVM 堆不断增长?

标签 java heap-memory

我写了一个简单的程序并使用 jconsole.exe 来监控它的堆大小。

public class HeapTest {
    public static void main(String[] args) {
        while(true) {
        }
    }
}

这是结果 enter image description here

我不明白为什么堆大小不断增长。我的程序中没有 new() 任何对象。

堆在我的程序中有什么用?

我没有向 jconsole.exe 添加任何额外的参数;双击它,然后根据PID加载java进程。

环境:windows 7下Java 1.8.0_25

最佳答案

这里没有内存泄漏。也在 OSX 中复制了它。这将是 VM 正常运行时生成的簿记数据,包括 GC 的数据。 eden 上升,一旦 GC 发生,堆(eden)使用的内存减少,重新开始循环。

令人困惑的方面是程序没有显式创建对象,但解释 JVM 将这样做是有意义的,因此伊甸园空间逐渐增加直到下一次 GC。

关于java - 为什么 JVM 堆不断增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689203/

相关文章:

java - 跟踪运行时拖动事件的进度。 JavaFX

java - 登录网站以在java中抓取数据

Java — 可以丢弃 Future 的返回值吗?

java - Android 在发出多个 http 请求时增加堆 fragment 情况

c# - 堆栈真的应该在 C# 程序中分配吗?

c++ - 在堆中创建和使用数组

java - String.split 一开始不会处理空格

c - 这4K有什么区别?

java - Java中替换字符串的内存高效方法

java - Spring DispatcherServlet : No mapping found for HTTP request