使用Cython和Django.是否有意义?

fea*_*rix 34 python django cython

是否有可能优化使用Cython在Django中开发的关键任务应用程序的速度?

最近我在互联网上看到,Cython可以将Python代码转换为C类似速度.Django有可能吗?

S.L*_*ott 31

是否有可能优化使用Cython在Django中开发的关键任务应用程序的速度

这是值得怀疑的.

大多数Web应用程序响应时间是必须单独下载的非HTML元素.通常的经验法则是每个HTML页面有8个静态文件.(.CSS,.JS,图像等)

由于这些静态内容都不是来自Django,因此大多数Web应用程序的时间线都是Apache(或者是Django之外的Nginx或其他一些服务器软件).

在查看生成HTML的时间时,您会发现大部分时间都花在等待数据库上(即使它是内存中的SQLite,您会看到数据库倾向于占据时间轴)

当你通过制作Apache和数据库快速,然后 - 只有这样 - 你可以考虑Python元素.

底线.不要浪费任何时间让Django和Python更快.

  • 这在大多数情况下是正确的,大约95%,其中基于django的应用程序主要是CRUD.但是,如果Web应用程序引擎需要进行大量计算,而不仅仅是获取数据,则应用过滤器并返回.在这种情况下,python成为瓶颈,有人会想到优化这个代码库或转向更好(但更强硬)的替代品. (12认同)
  • 难道它不能用于优化 Django API,因为您不必提供 CSS、JS 等服务吗? (3认同)
  • 这是误导和错误的,特别是如果您不提供资产(Python不应该在生产应用程序中执行).我认为,请求的95%用于Python,其余用于nginx和路由. (2认同)

Ign*_*ams 25

嗯,是的,但是除非你有确凿的证据证明这种变化,否则网络应用所做的大多数事情都不会真正受益于这种变化.配置文件两次,优化一次.


Arc*_*986 11

从概念上讲,你所追求的是可能的,但你正朝着错误的方向前进.

你真的应该对PyPy感兴趣,这是一个非常有前途的Django(和Python)社区技术.与普通Python相比,Django在PyPy上的基准测试已经显示出12.5倍的速度增长.现在,即使前端静态资源可能有助于最终用户的大部分页面响应(根据S.Lott的回答),但这并未解决服务器端速度增益极为重要的现实.由于这个原因,Facebook不得不发明HipHop PHP ...... PHP的滞后无法削减它.言归正传,只需考虑Meebo(一个蟒蛇驱动的网站)每月在服务器基础设施上花费数万美元.现在您可以通过PyPy品尝服务器成本节省吗?性感!

查看基准:http://speed.pypy.org/


ars*_*ars 5

与其他答案相呼应,这不太可能获得任何特定的收益,除非您已经描述了可以获得某些好处的特定案例.

添加到答案中,我想指出雅虎网络团队的网络优化列表.这些是适用于许多网站的领域的衡量和证明的收益,值得研究:

Exceptional Performance团队已经确定了许多快速制作网页的最佳实践.该清单包括35个最佳实践,分为7类.