PyPy的JIT可以使Python代码的执行速度比CPython快得多。是否有一组编写可以通过JIT编译器更好地优化的代码的指南?例如,Cython可以将一些静态代码编译成C ++,并且它有guidelines来编写有效的代码。 PyPy有一套好的做法吗?我知道PyPy项目在为其他动态语言编写自己的支持JIT的解释器的同时包含hints的指南,但这与框架的大多数最终用户无关,他们只是使用解释器。我想知道的问题包括:
答案 0 :(得分:13)
PyPy wiki's at BitBucket有JIT Friendliness部分。一些博客文章提供further advice使代码在PyPy中快速运行,但AFAIK的想法是,不强制解释/实现框架的惯用代码应该很快,如果不是,则是一个错误。
我知道对于3,一些“断言x> 0”或类似的陈述可能有用,但我不记得我在哪里看到它。我也相信我已经看到一些关于refactoring conditional-paths-in-loops与4相关的建议(编辑:现在好像是outdated)。
这是一个thread with some related discussion。您可以使用jitviewer检查JIT处理代码的效果,但它有点先进。加入Freenode上的#pypy将为您提供jitviewer和您的特定代码的帮助。