Я пытаюсь рассчитать потребление памяти с помощью HashMap, используя https://algs4.cs.princeton.edu/14analysis/
Не могли бы вы проверить, пожалуйста?Я прав?
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
Что вы думаете об этом?