当前位置:  开发笔记 > 编程语言 > 正文

引擎,python27的性能下降

如何解决《引擎,python27的性能下降》经验,为你挑选了2个好方法。

我想在appengine上测试python27,所以我从python25迁移了我的应用程序.每个请求的性能都要慢2倍!然后我又回到了python25,性能再次像以前一样.这是一张图片:

在此输入图像描述 (毫秒/请求)(cgi处理程序python 27,然后是python25)

我的应用程序使用Werkzeug,Jinja2,并且使用了很多memcache.什么原因会导致性能急剧下降?或者仅仅是因为appengine上的python2.7还处于测试阶段?

关于申请的一些细节:

这是一个非常简单的网上商店.有一些延迟的任务与pdf生成,但这些不会影响整体图形,因为首页获得最多的命中.几乎所有内容都是memcached.使用python 2.5加载页面时,空缓存需要约0.8秒.非缓存页面加载时间很长,主要是因为有很多数据库查询.缓存页面加载时间为60~100 ms.平均加载时间约为150毫秒.用python 2.7表现很糟糕.非缓存页面需要2秒以上才能加载.缓存页面加载时间超过200毫秒.

不幸的是我没有任何分析数据,我无法分辨python 2.7中究竟是什么减慢了.

我的页面加载时间数据是从实时页面收集的,该页面提供~10 req/sec和1个常驻python25实例,可以轻松处理此负载.

我还用wsgi测试了python 2.7 threadsafe:yes,但与python 2.7和cgi相比,性能提升了一点点.



1> max..:

在Usenet的某个地方,我从Google那里读到了这样一句话:"在某些情况下,Python 2.7运行时比Python 2.5运行时慢,而在其他情况下则更快.我们现在还没有公开原因." 似乎到目前为止没有人发现2.7比2.5更快的情况因此......

我读到了这个

    谷歌知道一个预先形成的问题.

    他们不确定如何处理它.

我的分析表明python 2.7多线程应用程序花费大约.他们35%的时间都在{method 'acquire' of 'thread.lock' objects}- 而且似乎发生在谷歌的RPC代码中.还有迹象表明导入存在严重的锁定问题.

除了等待AppEngine修复它之外,基本上你无能为力.另请参阅有关减速的综合文档.

几乎肯定不会在这方面发挥重要作用的因素是:

上传pyc文件(GAE基础设施为您做到这一点)

服务器配置(GAE规模如此之大,甚至在封闭式测试版2.7中也很慢)

WSGI与CGI(不会解释如此巨大的性能影响)

丑陋的是,谷歌在两个步骤中进行了大规模的价格上涨,但告诉我们"通过使用多线程python 2.7,你可以运行更有效,新价格看起来不那么糟糕".不幸的是Python 2.7.运行时仍然标记为"实验性",并且不提供生产质量性能.



2> Dave W. Smit..:

Python 2.7支持仍然是实验性的.新的和实验性的一个方面是它没有Python 2.5具有的那种性能烘焙和调整.


但另一方面谷歌建议使用python27来避开2011-12-01的大规模上次价格上涨......
戴夫,当每个请求需要10倍的时间时,每个实例的8个并发请求不会减少我的账单.另外正如你所说python27是"实验性的"所以它根本不应该用于生产(如果你相信传统智慧).所以你得到了大规模的价格上涨,或者你必须使用质量不稳定的实验性功能 - 甚至可能不会减少你的账单:-(
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有