There is a function mx_sizeof() in the mx.Tools module from eGenix which may be helpful. More at
<http://www.egenix.com/files/python/eGenix-mx-Extensions.html#mxTools> /Jean Brouwers PS) This is an approximation for memory usage which is useful in certain, simple cases. Each built-in type has an attribute __basicsize__ which is the size in bytes needed to represent the basic type. For example str.__basicsize__ returns 24 and int.__basictype__ returns 12. However, __basicsize__ does not include the space needed to store the object value. For a string, the length of the string has to be added (times the character width). For example, the size of string "abcd" would at least approximately str.__basicsize__ + len("abcd") bytes, assuming single byte characters. In addition, memory alignment should be taken into account by rounding the size up to the next multiple of 8 (or maybe 16, depending on platform, etc.). An approximation for the amount of memory used by a string S (of single byte characters) aligned to A bytes would be (str.__basicsize__ + len(S) + A - 1) & A Things are more complicated for types like list, tuple and dict and instances of a class. -- http://mail.python.org/mailman/listinfo/python-list