Выбор ответа Senior Память и производительность обновлено

Что показывает sys.getsizeof

Вопрос

Что вернёт sys.getsizeof(lst) для списка из 1000 длинных строк?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Размер самого объекта списка, без строк. getsizeof неглубокий: для контейнера это заголовок и массив указателей, а объекты, на которые он ссылается, не учитываются.

Варианты ответа

  1. Суммарный размер списка и всех строк в байтах
  2. Размер самого объекта списка, без строкправильный ответ
  3. Число элементов списка, как len(lst)
  4. Размер в килобайтах всего, что достижимо из списка

Разбор

getsizeof неглубокий: для контейнера это заголовок и массив указателей, а объекты, на которые он ссылается, не учитываются. Для полного размера нужен обход с учётом общих объектов (например, pympler.asizeof) или профилировщик памяти. Точные числа зависят от версии и платформы.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.