gpt4 book ai didi

python - 如何在调用 db.put() 之前在 GAE Python 中查找 db.Model 实例的大小?

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:00 25 4
gpt4 key购买 nike

我正在为我的应用程序编写一个优化器,因此尽可能少地调用 db.put()。我遇到了以下问题:

我有许多从 db.Model 派生的类。这些类的实例存储在列表中:

class DBPutter:
data = [] # list of instances
def add(self, model):
# HERE I WANT TO CHECK THAT self.data IS NOT EXEEDING 1MB
self.data.append(model)
if len(self.data) == 1000:
self.flush() # actual call to db.put() using deferred

通过这种方法,我收到了很多 RequestTooLargeError 异常。如何检查我的数据是否超过 1MB?

最佳答案

Pympler 有一个 asizeof 方法,应该在 python 2.5 中运行:http://code.google.com/p/pympler/

不过我认为您过度优化了。如果在您的推杆中有 1000 个对象之前关闭一个实例,您可能会丢失数据。此外,我认为使用具有大量数据的延迟库将导致至少两个 db.puts。一种是提交任务时(因为负载超过 10k),另一种是在任务中,实际编写模型。

关于python - 如何在调用 db.put() 之前在 GAE Python 中查找 db.Model 实例的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com