c++ - C++与Python切换控件的代价

标签 c++ python performance

我正在开发一个可使用 Python 扩展/编写脚本的 C++ 应用程序。当然,C++ 通常比 Python 快得多,但这是否一定意味着您应该尽可能频繁地执行 C++ 代码而不是 Python 代码?

我问这个是因为我不确定,在用 C++ 编写的代码和用 Python 编写的代码之间切换控制是否有任何性能成本?我应该在任何场合都使用用 C++ 编写的代码,还是应该避免为简单的任务回调到 C++,因为执行 C++ 代码可能带来的任何速度提升都比不上在语言之间切换的成本?

编辑:我应该说清楚,我并不是要真正解决问题。我纯粹是出于好奇而问,这是 future 值得牢记的事情。所以我对替代解决方案不感兴趣,我只想从技术角度知道答案。 :)

最佳答案

我不知道对此有具体的规则,但许多人遵循的一般规则是:

  • Python 原型(prototype)。这样写起来更快,而且可能更容易阅读/推理。
  • 有了原型(prototype)后,您现在可以确定应该用 C++ 编写的缓慢部分(通过分析)。
  • 根据您的代码领域,慢位通常与“内部循环”类型的代码隔离,因此 python 和此代码之间的切换次数应该相对较少。
  • 如果您的程序足够快,您就成功地避免了通过在 C++ 中编写过多代码而过早地优化您的代码。

关于c++ - C++与Python切换控件的代价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675062/

相关文章:

c++ - 在 Linux 上使用控制台编译 C++ 时出现问题

c++ - c 中令人困惑的空值

c++ - winsock 错误 10049 尝试绑定(bind)

c++ - vector push_back 非常慢

C++ : Interix signals

python - 在 openpyxl 中比较两个电子表格中的一列

python - 将数据写入单个机器的最快方法?

python - 为什么 TensorBoard Events 显示奇怪的波形图?

mysql - 是否可以优化使用 '<>' 运算符的查询?

ios - NSUserDefaults setObject :forKey: very time expensive