Как я узнаю емкость памяти структуры данных Python? Я ищу что-то как:
sizeof({1:'hello', 2:'world'})
Замечательно, если это считает каждую вещь рекурсивно. Но даже основной нерекурсивный результат помогает. В основном я хочу добраться, смысл различных опций реализации как кортеж v.s. перечисляют v.s. класс с точки зрения объема потребляемой памяти. Это имеет значение, потому что я планирую инстанцировать миллионов объекта.
Моя текущая dev платформа является CPython 2.6.
Взгляните на функцию sys.getsizeof
. Согласно документации, он возвращает размер объекта в байтах, заданный методом объекта __ sizeof __
.
Как Дэниел указал в комментарии, это не рекурсивно; он считает только байты, занятые самим объектом, но не другими объектами, на которые он ссылается. Этот рецепт рекурсивного вычисления связан с документацией Python 3.