我希望为现有应用程序带来速度改进,并且我正在寻找有关我可能的选择的建议。该应用程序是用 Python 编写的,使用 wxPython,并与py2exe
(我只针对 Windows 平台)打包。应用程序的某些部分是计算密集型的,并且在解释型 Python 中运行速度太慢。我不熟悉 C,所以移植部分代码对我来说并不是一个真正的选择。
所以我的问题基本上是我是否清楚地了解了我在下面概述的选项,还是我从错误的方向接近这个?
- 使用 pypy 运行:今天我开始尝试使用 Pypy - 结果令人兴奋,因为我可以从 pypy 解释器运行大部分代码,并且我看到速度提高了 5 倍以上,而无需更改代码。但是,如果我理解正确,(a)支持 wxpython 的 Pypy仍在进行中,并且(b)我无法将其编译为 exe 以进行分发。所以除非我弄错了,这对我来说似乎是不行的?没有办法打包东西,所以它的一部分是用 pypy 执行的?
- 将代码转换为 RPython,使用 pypy 进行翻译所以下一个选项似乎实际上是将部分代码重写为 pypy 受限语言,这似乎是一项相当大的工作。但如果我这样做,部分代码可以编译为可执行文件(?),然后我可以通过 ctypes(?)访问代码。
- 其他受限选项Shedskin 似乎是这里的流行替代品,这是否更符合我的要求?其他选项似乎是 Cpython、Psyco 和 Unladen,但它们都已被取代或不再维护。