емкость памяти структуры данных Python

Как я узнаю емкость памяти структуры данных Python? Я ищу что-то как:

sizeof({1:'hello', 2:'world'})

Замечательно, если это считает каждую вещь рекурсивно. Но даже основной нерекурсивный результат помогает. В основном я хочу добраться, смысл различных опций реализации как кортеж v.s. перечисляют v.s. класс с точки зрения объема потребляемой памяти. Это имеет значение, потому что я планирую инстанцировать миллионов объекта.

Моя текущая dev платформа является CPython 2.6.

17
задан Wai Yip Tung 12 August 2010 в 19:59
поделиться

1 ответ

Взгляните на функцию sys.getsizeof . Согласно документации, он возвращает размер объекта в байтах, заданный методом объекта __ sizeof __ .

Как Дэниел указал в комментарии, это не рекурсивно; он считает только байты, занятые самим объектом, но не другими объектами, на которые он ссылается. Этот рецепт рекурсивного вычисления связан с документацией Python 3.

23
ответ дан 30 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: