令我惊讶的sys.getsizeof( 10000*[x] ) 是,无论x:0,“ a”,1000 *“ a”,{} ,都是40036。 是否有一个deep_getsizeof 可以适当考虑共享内存的元素? (问题来自查看内存数据库表,例如range(1000000)->省名:list或dict?) (在Mac ppc上,Python是2.6.4。)
sys.getsizeof( 10000*[x] )
deep_getsizeof
补充:10000 * [“” Mississippi“]是指向一个” Mississippi“的10000指针,正如一些人指出的那样。尝试这个:
nstates = [AlabamatoWyoming() for j in xrange(N)]
其中AlabamatoWyoming()->字符串“ Alabama” ..“ Wyoming”。什么是deep_getsizeof(nstates)? (我们怎么知道?
新增25jan:另请参阅何时将Python分配新内存用于相同的字符串
看孔雀鱼/堆; 我自己并没有玩太多,但是我的一些同事已经将它用于内存分析,并取得了良好的效果。
文档可能会更好,但是此方法在解释基本概念方面做得不错。