Django与PyPy
使用Django和PyPy有什么好处呢?我听说PyPy能提高性能。
3 个回答
6
我对PyPy和Django做了一些实验,发现了两个主要问题:
大多数数据库适配器和其他第三方模块无法与PyPy一起编译(即使维基上说可以)。
我认为某个服务器可能会因为JIT编译而受益,因为它在某些请求中进行了复杂的计算,但它的内存使用量却在不断增加,可能是因为JIT在存储每个请求独特的执行记录,所以这些记录从来没有被重复使用?
理论上,如果你的服务器在进行有趣的计算,使用纯Python模块,并且内存中有大量对象,PyPy可能会带来好处(因为在某些情况下,PyPy可以减少每个对象占用的内存)。但如果不是这样,JIT编译所需的更高内存就会成为一个障碍,因为这会减少内存缓存的机会,并可能需要额外的服务器来运行足够的服务器进程。
10
这要看情况。
PyPy确实能提高它自己测试的一些性能,这些测试主要是针对模板渲染的。不过目前还没有人提交其他类型的测试。一般来说,可以认为那些对性能要求高的代码在PyPy上会更快,尤其是在经过一些调整之后。
至于兼容性,数据库方面有点问题,因为目前只有sqlite能用,而且速度比较慢(不过有个分支在修复这个问题)。有人说pg8000可以和sqlalchemy一起使用,但我自己没有亲身体验过。
祝好,
fijal
24
不太可能。一个Django应用程序通常是受输入输出限制的,通常是因为数据库连接的问题。即使PyPy完全兼容(我不确定是否完全兼容),它也不会对这个问题有所帮助。