I need to compute the sizes of some python objects, so I can break them up and store them in memcache without hitting size limits.
\'sizeof()\' does
memcache
internally and invariably uses pickle
and stores the resulting string, so you can check with len(pickle.dumps(yourobject, -1))
. Note that sys.getsizeof (which requires 2.6 or better, which is why it's missing on GAE) would not really help you at all:
>>> import sys
>>> sys.getsizeof(23)
12
>>> import pickle
>>> len(pickle.dumps(23, -1))
5
since the size of a serialized pickle of the object can be quite different from the size of the object in memory, as you can see (so I guess you should feel grateful to GAE for not offering sizeof, which would have led you astray;-).