использование памяти не соответствует переменным размерам (Python)

#python #memory #memory-management

#python #память #управление памятью

Вопрос:

Доброе утро. У меня возник вопрос об использовании памяти и размере переменной. Это может быть основной проблемой, но любые рекомендации будут приняты во внимание.

Я загрузил файл pickle размером 112,4 МБ со следующим кодом Python

 import pickle

def open_dict(path_filename):
    a_file = open(path_filename, "rb")
    output = pickle.load(a_file)
    return output

features_dicts = open_dict("./files/others/features_dicts.pkl")
 

Однако переменный инспектор Jupyter Notebook сообщает, что размер features_dicts равен 384B, и я обнаружил, что в этом процессе используется около 124 МБ машинной памяти.

Чего я ожидал, так это того, что размеры features_dicts и используемой машинной памяти совпадают — 112,4 МБ. Может ли кто-нибудь объяснить мне или поделиться ссылкой, которая решит мой вопрос?

Я также хотел бы знать, как максимально уменьшить использование памяти в этой ситуации.

Спасибо за чтение.

Комментарии:

1. Что это за маринованный предмет? Не могли бы вы сказать мне название библиотеки или название класса?

2. Спасибо за ваш ответ. Файл содержит объект defaultdict из коллекций (библиотека python).

3. Этот объект не зависит от размера памяти. Вы можете подтвердить размер объекта в памяти с sys.getsizeof помощью . Я не знаю, как Jupyter анализирует объем использования памяти, но этот метод должен иметь возможность подтверждать напрямую.