¿Cómo obtener el tamaño de un objeto python en bytes en Google AppEngine?

Necesito calcular los tamaños de algunos objetos de Python, para poder dividirlos y almacenarlos en memcache sin llegar a los límites de tamaño.

sizeof ()’ no parece estar presente en objetos python en el entorno GAE y sys.getsizeof () tampoco está disponible.

GAE está comprobando claramente los tamaños entre bastidores para imponer los límites. ¿Alguna idea de cómo lograr esto? Gracias.

memcache utiliza de forma interna e invariablemente pickle y almacena la cadena resultante, por lo que puede consultar con len(pickle.dumps(yourobject, -1)) . Tenga en cuenta que sys.getsizeof (que requiere 2.6 o mejor, razón por la cual falta en GAE) realmente no lo ayudará en absoluto:

 >>> import sys >>> sys.getsizeof(23) 12 >>> import pickle >>> len(pickle.dumps(23, -1)) 5 

ya que el tamaño de un pickle serializado del objeto puede ser muy diferente del tamaño del objeto en la memoria, como puede ver (así que supongo que debería sentirse agradecido a GAE por no ofrecer sizeof, lo que lo habría llevado por mal camino; ).