如何在Google AppEngine上获取python对象的大小(以字节为单位)?

发布于 2021-01-29 16:21:41

我需要计算一些python对象的大小,因此我可以将它们分解并存储在内存缓存中,而不会达到大小限制。

GAE环境中的python对象上似乎没有’ sizeof ()’,并且sys.getsizeof()也不可用。

GAE本身显然在后台检查大小以强制执行限制。关于如何实现此目标的任何想法?谢谢。

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    memcache在内部且始终使用pickle和存储结果字符串,因此可以使用进行检查len(pickle.dumps(yourobject, -1))。请注意,sys.getsizeof(需要2.6或更高版本,这就是为什么GAE上缺少它的原因)根本无法真正帮助您:

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

    如您所见,由于对象的序列化泡菜的大小可能与内存中对象的大小完全不同(所以我想您应该感谢GAE 提供sizeof,这会让您误入歧途;- )。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看