17

使用 Django 和 PyPy 有什么原因吗?我读过 PyPy 提高了性能。

4

3 回答 3

23

不太可能。Django 应用程序几乎总是 I/O-bound,通常是因为数据库连接。PyPy 根本无济于事,即使它是纯粹兼容的(我不确定它是否兼容)。

于 2010-12-20T14:17:04.753 回答
10

依靠。

PyPy 确实提高了 PyPy 基准套件中所有基准的性能。目前这只是模板渲染,但没有人提交任何其他内容。然而,可以安全地假设性能关键代码会更快(尤其是在一些调整之后)。

兼容性方面的数据库有点问题,因为只有 sqlite 可以工作而且速度很慢(不过有一个分支可以修复它)。例如,人们还报告 pg8000 与 sqlalchemy 一起工作,但我没有第一手经验。

干杯,菲亚尔

于 2010-12-20T14:19:28.380 回答
6

我用 PyPy + Django 做了一些实验。主要有两个问题:

  • 大多数数据库适配器和其他第三方模块不能用 PyPy 编译(即使 wiki 说可以)。

  • 我认为一台服务器可能会从 JIT 编译中受益,因为它在某些请求中进行了花哨的计算,内存占用量增加了,也许是因为 JIT 存储的跟踪结果对每个请求都是唯一的,因此从未重用?

从理论上讲,如果您的服务器正在进行有趣的计算、使用纯 Python 模块并且在内存中有大量对象(因为在某些情况下 PyPy 可以减少每个对象使用的内存),PyPy 可能是一个胜利。否则,JIT 更高的内存需求将成为障碍,因为它减少了内存缓存的机会,并且可能需要额外的服务器来运行足够的服务器进程。

于 2013-02-14T09:20:47.647 回答