【问题标题】:Memory sampling with jvisualvm使用 jvisualvm 进行内存采样
【发布时间】:2013-01-04 03:24:37
【问题描述】:

我正在使用 Java Visual VM 的内存采样功能,我无法回答问题:

  1. 为什么会创建这么多实例?

  2. 为什么这些实例和字节数不断增加?

例如,我创建了一个非常简单的 Java 程序,如下所示:

public class TestMemory{
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Hello");
        Thread.sleep(60 * 60 * 1000);
    }
} 

我可以在 Java Visual VM 中看到有 611 个类。实例数量不断从 25,000 增加到接近 50,000,然后回落到 25,000 左右。实例减少的原因可能是 GC 造成的,但我不知道为什么这些数字如此动态,即使我没有对我的程序做任何事情。

【问题讨论】:

    标签: profiling visualvm sampling memory-profiling


    【解决方案1】:

    您正在查看的实例数和字节数是cost of monitoring an app from VisualVM。 VisualVM 正在轮询各种 JVM MBean,不断分析应用程序的值变化。

    要确认这一点,您可以转到采样器标签。点击每线程分配子标签。查看繁忙线程是否为 RMI TCP Connection(n)。该线程每秒分配的字节数应该很高。

    我也很好奇如何优化它,因此发布了更具体的question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-06
      • 2012-08-21
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-03
      • 2016-08-28
      相关资源
      最近更新 更多