事务中的单个和多个db.put_async()之间是否存在内存差异?

时间:2011-12-20 13:43:29

标签: python google-app-engine

class A(db.Model):
  d = db.DateTimeProperty(auto_now=True)

class B(db.Model):
  c = db.TextProperty()

def store(): #1
  db.put_async(A(key_name=x,parent=key) for x in x_list) #x_list: 5000
  db.put_async(B(c=y,parent=key) for y in y_list) #y_list: 2500*1KB

def store(): #2
  db.put_async([A(key_name=x,parent=key) for x in x_list]+
               [B(c=y,parent=key) for y in y_list])

db.run_in_transaction(store)

哪个store()使用更少的内存?

生成器或单独的RPC会有所作为吗?如果我没有弄错的话run_in_transaction()基本上会收集看跌期权,然后立即传送它们。

1 个答案:

答案 0 :(得分:0)

由于您正在进行异步调用,而不是产生结果,因此它们都不会执行任何操作。如果你使用同步调用,理论上选项1将使用更少的内存,但如果它很重要,你应该测试它。