选择Google App Engine框架:慎用Django

标签:Google App Engine, 性能

GAE开发者或许会注意到这点,查看控制台的访问记录时经常会发现红色或黄色标记,表明该访问使用了较多的CPU时间。
对用户而言,0.5秒以内的响应时间(含网络延迟)比较完美,1秒以内尚可接受,2秒以上就会觉得很慢了。
而我使用的cpedialog,初次访问首页将花费1.9秒的CPU时间和0.7秒的API CPU时间(约1.6秒响应时间,不含网络延迟),紧接着的访问只需0.35秒的CPU时间和0.17秒的API CPU时间(约0.2秒响应时间),隔几分钟后访问则需要1.1秒的CPU时间和0.17秒的API CPU时间(约0.8~1.2秒响应时间)。
由于这个blog我基本不使用,所以只有约5%的概率可以让用户感觉不错,这个性能确实很糟糕。

GAE Python SDK 1.2.7版发布

标签:Google App Engine

因为1.2.6发布后,有人报告任务队列的模块路径写错了(漏了labs),所以GAE团队说会尽快修复该bug,没想到立马就有新版本了。
这次的更新只关乎Python,修正了2处错误:

GAE本地开发服务器已支持游标操作

标签:Google App Engine, Python

刚才在GAE论坛看到Paul Kinlan发帖询问数据库游标操作,他说他在SDK 1.2.6里发现_BaseQuery和Query类都提供了cursor,但没有找到相关文档。
接着Rodrigo Moraes给出了使用的例子,但说只能用于本地开发服务器,GAE上仍不支持。
不过游标已在GAE路线图里提出很久了,用以解决超过1000条记录的查询问题,我想下一个版本应该就会支持了吧。

用GAE来收邮件

标签:Google App Engine, Python

虽然GAE很早就提供了发邮件的功能,但一直不支持收邮件,而只是将其写在了路线图里(原本是2009年上半年的计划,但已经明显延后了)。

由于Nick几次提到了smtp2web,所以便去试了下。

更高效地在memcache中存储实体

标签:Google App Engine, Python

刚才在Nick的博客读了一篇《Efficient model memcaching》,才知道原来memcache会使用pickling来存储实体,而GAE不能使用cPickle,所以速度较慢,而且存在兼容性问题,并且可能保存多余的内容(模型实体通常会有个cache镜像)。

而在SDK 1.2.5的数据库API里提供了2个新的方法来解决这个问题:model_to_protobuf(model_instance)和model_from_protobuf(pb)。
这2个方法的速度较快,且不存在兼容性问题。

« 看看还有什么好玩意