gpt4 book ai didi

python - 为 PyPy 的 JIT 编写快速代码的指南

转载 作者:太空狗 更新时间:2023-10-29 17:18:43 25 4
gpt4 key购买 nike

PyPy 的 JIT 可以使 Python 代码的执行速度比 CPython 快得多。是否有一套编写代码的准则可以由 JIT 编译器更好地优化?例如,Cython 可以将一些静态代码编译成 C++,它有 guidelines编写高效的代码。 PyPy 有一套好的做法吗?我知道 PyPy 项目有包含 hints 的指南为其他动态语言编写自己的支持 JIT 的解释器,但这与框架的大多数最终用户无关,他们只是使用解释器。我想知道的问题包括:

  1. 将脚本打包成函数
  2. 显式删除变量
  3. 给出或提示变量类型的可能方式
  4. 以某种方式编写循环

最佳答案

PyPy wiki's at BitBucket有一节关于 JIT Friendliness .一些博文提供further advice关于使代码在 PyPy 中快速运行,但 AFAIK 的想法是,不强制解释/实现框架的惯用代码应该很快,如果不是的话就是一个错误。

我知道对于 3,一些“assert x > 0”或类似的语句可能很有用,但我不记得我是在哪里看到的。我也相信我已经看到一些关于 refactoring conditional-paths-in-loops 的建议与 4 相关(编辑:这似乎是 outdated 现在)。

这是一个 thread with some related discussion .您可以使用 jitviewer 检查 JIT 与您的代码一起工作的情况。 ,但它有点先进。加入 Freenode 上的#pypy 将为您提供有关 jitviewer 和您的特定代码的帮助。

2020+

自从 Pypy 移动到 Heptapod 2020 年,JIT 友好性 已移至此处:https://foss.heptapod.net/pypy/pypy/-/wikis/JitFriendliness

此处提供了其他性能信息:https://www.pypy.org/performance.html

关于python - 为 PyPy 的 JIT 编写快速代码的指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5318157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com