【问题标题】:Python C/C++ Wrappers versus Pure C/C++ Performance [closed]Python C/C++ 包装器与纯 C/C++ 性能 [关闭]
【发布时间】:2021-01-02 17:56:16
【问题描述】:

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

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

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

【问题讨论】:

    标签: python c++ performance cython


    【解决方案1】:

    不看代码,一般看

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

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

    所以我会从profiling Python 代码开始,看看是否有任何收获。

    另请注意,C++ 代码在定义上并不快;只有当它被设计为快速时才会快速。

    【讨论】:

    • 最后的语句是关键。
    • 谢谢!我知道这不是一个令人惊奇的问题(由于我缺乏知识和专一性),但这给了我一个很好的起点!
    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 2011-08-04
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多