为PyPy的JIT编写高效代码的指南
1 个回答
13
PyPy的wiki在BitBucket上有一部分讲的是JIT友好性。一些博客文章提供了更多建议,帮助你让代码在PyPy中运行得更快。简单来说,写得规范的代码,如果没有强迫解释或实现框架,应该是快的,如果不快,那就是个bug。
我知道对于3,有些像“assert x > 0”这样的语句可能会有用,但我不记得在哪里看到过。我也相信我见过一些关于在循环中重构条件路径的建议,和4有关(编辑:这似乎现在过时了)。
这里有一个讨论相关话题的线程。你可以用jitviewer来检查你的代码的JIT效果,但这有点复杂。如果你在Freenode的#pypy频道里发问,可以得到关于jitviewer和你特定代码的帮助。
2020年以后
自从2020年PyPy迁移到Heptapod后,JIT友好性的信息已经转移到这里:https://foss.heptapod.net/pypy/pypy/-/wikis/JitFriendliness
更多性能信息可以在这里找到:https://www.pypy.org/performance.html