我在寻找内存泄漏的根本原因时遇到了问题。我在heap dump中看不到可疑的东西。
我看到byte[]和char[] + int[]消耗了大部分堆



在Yourkit中,我看到了一些可以通过“线程局部变量”来解决内存泄漏的技巧:


在所有的threadLocals中都有编码器+解码器-为什么?有什么原因吗?
请给出在哪里搜索问题的建议。
在线程转储中可以看到许多等待线程:

发布于 2021-09-09 19:45:46
转储中有23502个线程对象(java.lang.Thread)。这是很不正常的。这些线程要么处于休眠状态(您正在泄漏线程),要么处于死状态(但有些线程是如何从活动图中引用的)。
在前一种情况下,重新考虑线程使用情况,在后一种情况下,选择一个死线程,使用“根路径”操作来确定泄漏的根本原因。
PS:通常情况下,对于内存泄漏的情况,您需要捕获两个堆转储并分析差异。
https://stackoverflow.com/questions/69123114
复制相似问题