首页 > 解决方案 > Python C/C++ 包装器与纯 C/C++ 性能

问题描述

我一直在做一些计算机图形学项​​目,这些项目围绕使用编写的开源库和 C/C++,然后将其变成 python 的包装器。

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

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

标签: pythonc++performancecython

解决方案


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

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

一般来说,使用设计良好的 Python 原生库,在性能方面几乎没有任何提升。

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

另请注意,根据定义,C++ 代码并不快。只有当它被设计成快速时它才会快速。


推荐阅读