python - Python C/C++ 包装器与纯 C/C++ 性能
问题描述
我一直在做一些计算机图形学项目,这些项目围绕使用编写的开源库和 C/C++,然后将其变成 python 的包装器。
我想知道将其转换为纯 C/C++ 所带来的性能提升是否值得花费大量时间来重写代码库。
我也知道 C/C++ 几乎总是比 python 快,但考虑到这些库已经是 C/C++ 包装器,我不确定我应该期待多少性能提升。我不是在寻找确切的答案,因为它在很大程度上取决于具体情况,但如果有人有一般的经验法则,那就太好了!
解决方案
没有看到代码,一般它取决于
- API 的粒度,即 Python 相对于本机代码完成了多少工作(或控制返回给 Python 的频率),
- Python 代码是否在关键路径上(一些计算机图形库在单独的、完全原生的线程中运行热路径),
- 是否为了与 Python 交互而在数据结构方面做出任何妥协。
一般来说,使用设计良好的 Python 原生库,在性能方面几乎没有任何提升。
因此,我将从分析Python 代码开始,看看是否有任何收获。
另请注意,根据定义,C++ 代码并不快。只有当它被设计成快速时它才会快速。
推荐阅读
- reactjs - React 列表组件(如文件管理器)
- javascript - OverPassLayer 标记的传单性能不佳
- python - 拆分数据集而不使用 Scikit-Learn train_test_split
- python - 尝试从循环中的字典中弹出 KV 对时出错
- r - Cholmod 错误“内存不足”:合并 Seurat 对象
- python - 如何去除列表中每个项目的前 2 个字符以外的所有内容?
- laravel - 检索条件唯一的行
- .net - 在 .NET 中调用应用程序 wsdl
- python - 如何编写包装 R 文件以执行 .sh 文件
- opengl-es - opengl-es 2.0 normal 对我来说看起来不太正常