Nic*_*ich 7 java memory-leaks heap-dump
我有一个有趣的困境,我似乎有内存泄漏(或不断增长的数据结构).当我分析我的内存使用情况时,我得到了典型的"随时间线性提升"图表.试图找出问题的原因是什么,我做了一个堆转储.我发现超过50%的内存被分配给a ConcurrentLinkedQueue node.内存的高端消费者,com.singularity.ee.agent.util.ch并java.util.concurrent.ConcurrentLinkedQueue$Node为看到下面的图片.

我不知道util.ch它是什么,但它似乎与节点绑定,因为每个ch都有一个节点的立即引用,所以不用担心关注它.
现在尝试查找对$ Node最近的GC的引用,我得到以下内容:

奇怪的是,它没有ConcurrentLinkedQueue $ Node,甚至没有ConcurrentLinkedQueue作为父级.所有引用都是我不理解的奇怪类型,kh, uc, z, g, etc.有谁知道这些类型是什么?
我试图找出导致问题的确切原因,但我无法找到这些节点甚至是如何创建/保存的.
这是踢球者:我不在代码中的任何地方使用ConcurrentLinkedQueue.我确实使用了ConcurrentHashMap,但是没有很多HashMap $ Node,所以不应该是问题.
有没有人知道如何创建这些节点或为什么我有这么多的实例?
回答依赖问题:我正在运行tomcat 6,java 6,Java Spring.