Expando比Model的反序列化更花时间

标签:Google App Engine, Python

写了这样一个测试
from time import time

class Comment(db.Expando):
	email = db.StringProperty(required=True)
	content = db.TextProperty()
	format = db.IntegerProperty(default=0, indexed=False)
	approved = db.BooleanProperty(default=True)
	time = db.DateTimeProperty(auto_now_add=True)
	mod_time = db.DateTimeProperty(auto_now_add=True, indexed=False)

t=time()
Comment.all().fetch(1000)
print time()-t
从后台的执行情况来看,cpu时间是11078~11799ms。改成db.Model后,cpu时间是10319~10959ms,差不多少了0.8秒。

而使用datastore.Query自然更快:
from google.appengine.api import datastore
from time import time

t=time()
datastore.Query('Comment').Get(1000)
print time()-t
cpu时间为10139~10398ms,快了大概半秒,看来大批操作数据库时,用原生的Entity性能更好。

0条评论 你不来一发么↓

    想说点什么呢?