我尝试使用https://algs4.cs.princeton.edu/14analysis/
计算HashMap的内存消耗量 你能帮我看看吗?我是对的吗? HashMap
是一些Node
个对象。
Each node consists of:
object overhead: 16 bytes
final int hash : 4 bytes
final K key : 8 bytes
V value : 8 bytes
Node<K,V> next : 8 bytes
36 bytes + padding = 40 bytes
HashMap
本身包含以下字段:
object overhead : 16 bytes
Set<Map.Entry<K,V>> entrySet : 8 bytes
final float loadFactor : 4 bytes
int modCount : 4 bytes
int size : 4 bytes
Node<K,V>[] table : 40N bytes (16 bytes of object overhead, 4 bytes for the length, and 4 bytes of padding plus the memory needed to store the values)
int threshold : 4 bytes
Set<K> keySet : 8 bytes
Collection<V> values : 8 bytes
: 56 + 40N bytes
问题是:在此计算中我是否必须考虑Node
的大小?
如果是,则HashMap的大小为56 + 160N
,如果不是56 + 40N
你对此有何看法?