On Sat, 01 Nov 2008 01:43:44 -0400, Terry Reedy wrote:

> Paulo J. Matos wrote:
>> Hi all,
>> 
>> What's the best way to know the amount of memory allocated by a
>> function
> 
> What do you count?
> 
> def zeros(n): return [0]*n
> 
> how much memory is that?

I assume you don't include the memory required by the function itself.

Integers take 20 bytes, but rounded to the nearest multiple of 8 bytes, 
so 24 bytes. However, we can assume that the 0 int is cached, so we only 
need 24 bytes for all n of them.

Lists have a fixed overhead of 28 bytes, plus 4*n for the items, again 
rounded to the nearest multiple of 8 bytes.

Add them together, and you have the memory usage of the list returned.


-- 
Steven
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to