gpt4 book ai didi

java - JConsole 中的内存泄漏是什么样的?

转载 作者:行者123 更新时间:2023-11-30 08:46:51 24 4
gpt4 key购买 nike

我是trying to use JConsole to see if I have a memory leak但不知道要寻找什么。如果非要我猜的话,内存使用率应该总是上升,尽管有垃圾回收,如下所示:

enter image description here

正如您在我的另一个 SO 问题中看到的那样,我看到了一个锯齿状的边缘,内存使用量在此处上升——即使浏览器已关闭并且没有请求到达我的本地 Tomcat 服务器——然后下降。

enter image description here

Java 中的内存泄漏在 JConsole 中“看起来像”什么?

最佳答案

我认为了解内存泄漏的最佳方式是进行实验。尝试这样的事情来创建内存泄漏:

    Collection<Object> data = new LinkedList<>();
while(true) {
long[] canBeGarbageCollected = new long[10000];
long[] canNotBeGarbageCollected = new long[100];
data.add(Arrays.asList(canNotBeGarbageCollected));
}

除了 JConsole,您还有 VisualVM,它有一个名为“Visual GC”的好插件。带有飞行记录的 Java Mission Control 可以为您提供很多详细信息。命令行上也有一个非常强大的工具:

jstat -gcutil -h20 $PID 1000

这将表明内存泄漏最终将导致 100% 的旧空间利用率 (O),并且 CPU 将花费越来越多的时间进行完全垃圾回收 (FGCT)

关于java - JConsole 中的内存泄漏是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com