我有一个网络服务器应用程序,它接收内存队列中首先在tcp套接字上收到的消息。然后处理这些消息并将 假设 丢弃。
队列(只有java.util.concurrent.ArrayBlockingQueue
)始终为1到2的邮件大小:没有备份或引用。
否则 - 消息中没有内存中的地图,列表,缓冲区等:它们会被处理然后丢弃。所以我不清楚在哪里看。
这里是jvisualvm
的保留内存的一瞥:我们可以看到堆内存的 96%在这些内容{{1}数组。所以..修复 ,应用程序应该再次飞行。
鉴于我已经仔细研究了代码 - jvisualvm有办法向下钻取#34;在那些字节数组上查看谁持有对它们的引用?
**更新:来自@VinceEmigh的建议这里是"记录分配堆栈跟踪"位置: