我正在开发一个可使用 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/