您的位置:首页 > 其它

我自己的应对gae新收费政策的几个程序优化方法

2011-11-10 15:05 204 查看
gae新收费政策于2011年11月7号正式实施.gae官方的说法是 gae脱离了预览版本了.新的计费模型也开始使用.本人在gae上布置了好几个应用.7号的时候突然之间全部都超额了,而且还超的很厉害.尤其是数据库方面的资源 ,用的真是够快,

这2天我也花时间优化了下.现在资源已经够用了.至少节省了90%的额度.现将一些优化的方法记录如下:

尽量多使用Memcache,这也是官方的建议.查询结果等很多都可以放到Memcache这里,还有一个要注意的写入跟读取是耗用Instance的时长的,写入耗用比较多,所以Memcache的时限如没必要尽量设置长一点.
Instance有2种,别忘记了使用Backend Instance来运行一些后台程序.Backend Instance怎么说也有9小时的免费额度.不用白不用.
不要使用数据库的count()方法,这个方法是计算在Datastore Small Operations的额度里的而且你的count返回值多大,你的Datastore Small Operations的额度就用了多大,如果你的数据库有5万条数据,那你的5万额度一下就没了.当,然如果你真要用,请把它的返回值放到某个数据库里或者Memcache里,这样你就不必每次都调用.
不要使用查询时候的offset参数,原因跟上面一样,如果你的offset为1000,即使你返回100个数据.你也一样用了1100个额度,这里你可以改用指针,也就是cursor()方法获取你的上一次最后数据的读取位置.然后下次查询的时候使用with_cursor()来指定起始位置.
使用python2.7的多线程.这是一个节省Instance时长的好方法.如果你的应用是Java的,那么你不用修改程序只需要设置开启多线程就行.27现在虽然在测试阶段但是我使用起来也很稳定.从2.5移植到2.7也很简单.注意使用2.7你的数据库必须是hrd的,以前老的应用可能还是ms的,这样你需要先一直到一个新的hrd应用才行.而移植工具已经正式发布了.本人已经成功研移植多个应用.移植过程简单.
将应用的响应延迟降到最低.复杂的应用,特别是响应里边包含大量数据库查询的尽量缩减.个人还建议你们如果使用了django模板的功能的,尽量考虑少用标签.或者干脆不要用它的模板功能.实在太费响应时间.

以上是个人经验,欢迎大家发表自己的心得.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: