在python中嵌入c ++代码会使python应用程序更快吗?

时间:2013-03-21 09:34:59

标签: c++ python c ctypes embedding

使用ctypes,boost.python等在python中嵌入c ++代码会使你的python应用程序更快吗?

假设我在pygtk中创建一个应用程序,我需要一些需要快速的函数。因此,如果我在我的应用程序中使用c ++执行某些任务会有益吗?

还有什么其他选项可以让python代码更快?

2 个答案:

答案 0 :(得分:7)

用C ++重写代码中性能关键部分可能是一种选择。要有效地做到这一点,首先需要了解瓶颈所在。最好的方法是先用纯Python编写所有内容,然后再编写。

另一种选择可能是使用PyPy

最后,如果你发现瓶颈是数值计算,那么NumPy值得一看。

值得注意的是,例如,如果事实证明您的代码是I / O绑定的,那么上述选项都不会对您有任何帮助。

答案 1 :(得分:3)

这取决于,没有确定的答案。如果用C ++编写错误代码,它可能比编写良好的Python代码更慢。

假设您可以编写高质量的C ++代码,那么性能关键部分的速度可以达到20倍。

正如另一个答案所说,NumPy是数字瓶颈的一个很好的选择(如果你认为在矩阵运算而不是循环!);而且SciPy带有weaver,允许你嵌入内联C ++和其他好东西。