我使用eclipse MAT来分析我的应用程序的堆转储。这表明一个类是泄密嫌疑人。一个实例变量声明为静态哈希映射,每小时负责数千个条目。在疑似类的支配者树视图中,有时会发现输入值为
hashmap$entry->classname->value
但大部分时间都像
hashmap$entry->hashmap$entry->....->classname->value
在这种情况下,最上面的hash$mapp
条目显示20%的消耗。较低的等等。与类名相关联的hashmap$entry
消耗较少,而且上限和中间hashmap$entry
无法展开。
我很困惑这是什么意思?任何人都可以解释一下或建议任何可以解释这些事情的文件吗?在此先感谢
答案 0 :(得分:0)
Java HashMap类有一个内部数据结构Entry。如果您向地图添加一个条目(通过put()),它将创建一个包含您的键/值对的条目。
如果添加了具有相同散列的第二个密钥,则链接Entry结构。我想一遍又一遍地添加相同的条目,但是为密钥创建了新对象,导致大量链接。
您是否在地图键中看到了哪些对象类型&值?