使用JVisualVM检查"保留"的来源对象(又称内存泄漏)

时间:2017-08-30 03:53:38

标签: java memory-leaks jvisualvm

我有一个网络服务器应用程序,它接收内存队列中首先在tcp套接字上收到的消息。然后处理这些消息并将 假设 丢弃。

队列(只有java.util.concurrent.ArrayBlockingQueue)始终为1到2的邮件大小:没有备份或引用。

否则 - 消息中没有内存中的地图,列表,缓冲区等:它们会被处理然后丢弃。所以我不清楚在哪里看。

这里是jvisualvm保留内存的一瞥:我们可以看到堆内存的 96%在这些内容{{1}数组。所以..修复 ,应用程序应该再次飞行。

enter image description here

鉴于我已经仔细研究了代码 - jvisualvm有办法向下钻取#34;在那些字节数组上查看谁持有对它们的引用?

**更新:来自@VinceEmigh的建议这里是"记录分配堆栈跟踪"位置:

enter image description here

0 个答案:

没有答案