代码之家  ›  专栏  ›  技术社区  ›  ptk

为什么堆利用率会随着时间的推移而增加,即使我的程序没有创建任何新对象?

  •  0
  • ptk  · 技术社区  · 7 年前

    这是一个非常基本的问题。但我在网上没有得到任何明确的答案。 我有以下代码

    public static void main(String[] args) throws InterruptedException {
        Thread.sleep(1000000);
    }
    

    我连接了jvisualvm并开始监视堆的使用情况。我可以看到堆的使用量随着时间的推移逐渐增加。但是,在这里我没有创造任何新的对象。这背后的原因可能是什么?为什么堆利用率在不创建任何新对象的情况下增加?

    提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  7
  •   ewramner    7 年前

    如果您已经连接到jvisualvm,您应该能够看到有许多线程,而不仅仅是主应用程序线程。对象总是被创建的。例如,探查器本身肯定会创建对象。这很正常。

    推荐文章