2

我正在使用 eclipse MAT 来分析我的应用程序的堆转储。这将一个类显示为泄漏嫌疑人。一个实例变量被声明为静态哈希映射,它负责每小时数千个条目。在可疑类的支配树视图中,有时会找到条目值,例如

hashmap$entry->classname->value 

但大多数时候就像

hashmap$entry->hashmap$entry->....->classname->value

在这种情况下,最上面的hash$mapp条目显示 20% 的消耗。较低的条目以此类推。hashmap$entry与类名相关联的消耗较少,不能hashmap$entry上中扩展。

我很困惑这是什么意思?任何人都可以解释一下或建议任何可以解释这些事情的文件吗?在此先感谢

4

1 回答 1

0

Java HashMap 类有一个内部数据结构Entry。如果您向地图添加一个条目(通过 put()),它将创建一个包含您的键/值对的条目。

如果添加具有相同散列的第二个键,则条目结构被链接。我想一遍又一遍地添加相同的条目,但是为密钥创建了新对象,从而导致大量链接。

您是否看到地图键和值中的对象类型是什么?

于 2012-12-19T10:46:58.910 回答