我有一个非常大的异构Python代码库,它使用Django作为前端。这个代码库部署在几个服务器上,这些服务器开始显示出压力,我们正在寻找方法,在重新构建代码库的同时加快速度,并保持新代码的快速运行。
我们目前正在看Pypy,但它似乎有点不确定。它有很多限制,需要重构大量代码(不能用“+”串联字符串?)。
在考虑web站点性能时(在架构、数据库、缓存、分布式队列等之后),从CPython到PyPy的迁移是您最不应该考虑的事情。如果您绝对需要代码级优化(如彻底的分析所示),那么考虑直接使用C/C++来获得最高的速度。
PyPy在语言和标准库级别上基本上与CPython兼容,但它与许多CPython C扩展不兼容(而且兼容的扩展实际上工作速度可能更慢)。如果您的站点是纯Python并且具有适当的测试覆盖率,那么您就可以轻松地检查它是否可以使用PyPy以及它是否快得多。如果你不做测试,事情就会变得危险。如果您使用C扩展,您将面临一些问题,而且它可能比它的价值更麻烦。
另见:
PyPy与包的兼容性