Я просто экспериментировал с размером структур данных python в памяти. Я написал следующий фрагмент:
import sys
lst1=[]
lst1.append(1)
lst2=[1]
print(sys.getsizeof(lst1), sys.getsizeof(lst2))
Я проверил код в следующих конфигурациях:
- Windows 7 64bit, Python3.1: выход:
52 40
, поэтому lst1 имеет 52 байта, а lst2 - 40 байт. - Ubuntu 11.4 32bit с Python3.2: вывод
48 32
- Ubuntu 11.4 32bit Python2.7:
48 36
Может кто-нибудь объяснить мне, почему два размера отличаются, хотя оба являются списками, содержащими 1?
В документации python для функции getizeof я нашел следующее: ...adds an additional garbage collector overhead if the object is managed by the garbage collector.
Может ли это быть в моем маленьком примере?