2009년 8월 12일 수요일

python sizeof

http://stackoverflow.com/questions/449560/how-do-i-determine-the-size-of-an-object-in-python

2.6 부터 생긴거라 구글링시 첫번째로 검색이 잘 안되길래 적어둔다.



돌려봤더니 이리 나오네. 빈스트링이 24 바이트(의 오버헤드)를 먹는다고 보면 되려나?
>>> import sys
>>> map(sys.getsizeof, ["", ".", "."*100])
[24, 25, 124]
>>> map(sys.getsizeof, [0,1,1000**100000])
[12, 12, 132892]
>>>


추가.
getsizeof 를 리스트(컨테이너타입) 에 적용해봤더니 엘리먼트의 사이즈는 재주지 않는것으로 보인다.
>>> sys.getsizeof([])
36
>>> sys.getsizeof([1,2,3])
48
>>> sys.getsizeof([1,2,3,4,5,6])
60
>>> sys.getsizeof([1,2,3,4,5,6,""])
64
>>> sys.getsizeof([1,2,3,4,5,6,"1"*1000000000])
64
>>>

추가.
http://www.reddit.com/r/programming/comments/9gf2b/sizes_of_common_python_objects/
읽어보자.

댓글 없음: