Python 社区发布了有用的参考资料,展示了如何分析 Python 代码,以及 C 或Cython中 Python 扩展的技术细节。我仍在寻找教程,但是,对于非平凡的 Python 程序,以下内容:
- 如何通过转换为 C 扩展来识别将从优化中受益的热点
- 同样重要的是,如何识别不会从转换为 C 扩展中受益的热点
- 最后,如何从 Python 到 C 进行适当的转换,无论是使用 Python C-API 还是(甚至可能更好)使用 Cython。
一个好的教程将为读者提供一种方法论,说明如何通过一个完整的示例来推理优化问题。我没有成功找到这样的资源。
你知道(或者你写过)这样的教程吗?
为了澄清起见,我对仅涵盖以下内容的教程不感兴趣:
- 使用 (c)Profile 分析 Python 代码以测量运行时间
- 使用工具检查配置文件(我推荐RunSnakeRun)
- 通过选择更合适的算法或 Python 结构进行优化(例如,用于成员资格测试的集合而不是列表);本教程应该假设算法和 Python 代码已经是最优的,并且我们正处于 C 扩展是下一个逻辑步骤的地步
- 重述有关编写 C 扩展的 Python 文档,该文档已经非常适合作为参考,但不能用作说明何时以及如何从 Python 迁移到 C 的资源。