Python C/C++ 包装器与纯 C/C++ 性能

Are*_*ner 3 c++ python performance cython

我一直在做一些计算机图形学项​​目,这些项目围绕使用编写的开源库和 C/C++ 进行,然后将它们转换为 python 的包装器。

我想知道将其转换为纯 C/C++ 所带来的性能提升是否值得花费大量时间来重写代码库。

我也知道 C/C++ 几乎总是比 python 快,但考虑到这些库已经是 C/C++ 包装器,我不确定我应该期望多少性能提升。我并不是在寻找确切的答案,因为这在很大程度上取决于具体情况,但如果有人有一般的经验法则,那就太好了!

rus*_*tyx 5

没有看到代码,一般来说取决于

  • API 的粒度,即 Python 相对于本机代码完成了多少工作(或者控制权返回 Python 的频率),
  • Python 代码是否位于关键路径上(某些计算机图形库在单独的、完全本机线程中运行热路径),
  • 为了与 Python 交互,是否在数据结构方面做出了任何妥协。

一般来说,使用设计良好的 Python 本机库,在性能方面几乎没有什么提升。

因此,我将从分析Python 代码开始,看看是否有什么收获。

另请注意,C++ 代码从定义上来说并不快;只有当它被设计得很快时,它才算快。