在GAE中使用Warmup Requests(预热请求)

标签:Google App Engine

随着SDK 1.4.0的正式发布,Warmup Requests的文档终于出来了。

在一个新instance上载入你的代码时,会导致Loading Request
也就是说,instance必须载入这个请求里所有import的库,这会导致明显慢于其他的请求。
Google给出的建议是:
  • 启动时只载入必需的代码。
  • 少访问硬盘。
  • 在某些情况下,从zip或jar文件中载入代码会比从很多独立的文件中载入更快。(注意是在某些情况下,别一股脑全zip了。)

在GAE上用Google日历API发短信

标签:Google App Engine, Google Calendar, Python

2年前就发现Google日历可以免费发提醒短信,最近在做Doodle时也想拿GAE来调用GData API发短信,于是就去研究了一下文档:
《在 App Engine 上使用 Google 数据 API》
《Authentication in the Google Data Protocol》
《AuthSub in the Google Data Protocol Client Libraries》

简单来说,要用Google Data API分为2步:验证和访问资源。

db.Property机制解析

标签:Google App Engine, Python

最开始接触GAE的API时,就对它的Property很感兴趣。因为我明明只是在Model定义时设置了类属性,但是它的实例的属性却必须和类属性的类型一致,还要接受各种检查之类的。只不过当时Python了解不深,看不懂其中的奥秘,而如今总算可以把它弄懂了。

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秒。

« 看看还有什么好玩意