tua*_*uan 3 profiling visualvm memory-profiling sampling
我正在使用 Java Visual VM 的内存采样功能,但我无法回答以下问题:
为什么会创建这么多实例?
为什么这些实例数和字节数不断增加?
例如,我创建了一个非常简单的 Java 程序,如下所示:
public class TestMemory{
public static void main(String[] args) throws InterruptedException {
System.out.println("Hello");
Thread.sleep(60 * 60 * 1000);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在 Java Visual VM 中看到有 611 个类。实例数量不断从 25,000 增加到接近 50,000,然后又回落到 25,000 左右。实例减少的原因可能是由 GC 引起的,但我不知道为什么这些数字如此动态,即使我没有对我的程序做任何事情。
您正在查看的实例数和字节数是从 VisualVM 监控应用程序的成本。VisualVM 正在轮询各种 JVM MBean,不断分析应用程序的值变化。
要确认这一点,您可以转到Sampler选项卡。单击每线程分配子选项卡。查看繁忙线程是否为 RMI TCP Connection(n)。这个线程每秒应该有一个高字节分配。
我也很好奇如何优化它,因此发布了一个更具体的问题。
| 归档时间: |
|
| 查看次数: |
2606 次 |
| 最近记录: |