我有一个正在运行的应用程序,最近发现我的容器没有响应,行为方式与未编写的日志不同......等等...
所以我想到了收集堆转储和分析正在发生的事情。
我选择了VisualVM和MAT。分析时我现在感到困惑。
请查看下面的图片,如果我有所了解,会很棒。
MAT显示报告正常,但堆大小更多。我们是否需要考虑浅堆大小的崩溃。找不到关于shallo堆的更多信息。
Visualvm显示完整的记忆。
VisualVM的
MAT with unreachable_objects
MAT HISTOGRAM
答案 0 :(得分:0)
除非存在大量的并发SSL连接,否则我不希望SSL引擎类占用这么多内存。那里有些可疑的东西。
您的选择:
如果您需要更多帮助,请务必添加有关应用程序所看到的加载类型,您正在使用的容器以及JVM版本的信息。
答案 1 :(得分:0)
“泄漏嫌疑人”是否显示任何内容?如果不是,您想要找到创建所有SSLEngineResult
个对象的位置以及为什么它们仍然可以访问 - “GC Roots的路径”应该这样做。实际上很少有选项:只有很多并发连接打开,你可以在单例/静态类字段或ThreadLocal
中引用它们。