Правильно ли я рассчитываю потребление памяти HashMap? - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь рассчитать потребление памяти с помощью 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

Что вы думаете об этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...