Я пытаюсь выяснить системную память, которую принимают некоторые переменные Python

В следующем коде:

    >>> a = numpy.int16(1)
    >>> a.nbytes
    2
    >>> sys.getsizeof(a)
    24

Почему numpy int16 занимает 24 байта пространства в соответствии с sys.getsizeof ()?

0
hirschme 13 Ноя 2017 в 19:16

1 ответ

Лучший ответ

Из документов:

getsizeof () вызывает метод __sizeof__ объекта и добавляет дополнительные накладные расходы сборщика мусора , если объект управляется сборщиком мусора.

Так:

sys.sizeof - это размер всего объекта с бородавками и всем остальным;

nbytes возвращает память, используемую только фактическими данными массива, без излишеств.

1
jkm 13 Ноя 2017 в 16:31