使用ctypes,boost.python等在python中嵌入c ++代码会使你的python应用程序更快吗?
假设我在pygtk中创建一个应用程序,我需要一些需要快速的函数。因此,如果我在我的应用程序中使用c ++执行某些任务会有益吗?
还有什么其他选项可以让python代码更快?
答案 0 :(得分:7)
用C ++重写代码中性能关键部分可能是一种选择。要有效地做到这一点,首先需要了解瓶颈所在。最好的方法是先用纯Python编写所有内容,然后再编写。
另一种选择可能是使用PyPy
。
最后,如果你发现瓶颈是数值计算,那么NumPy
值得一看。
值得注意的是,例如,如果事实证明您的代码是I / O绑定的,那么上述选项都不会对您有任何帮助。
答案 1 :(得分:3)
这取决于,没有确定的答案。如果用C ++编写错误代码,它可能比编写良好的Python代码更慢。
假设您可以编写高质量的C ++代码,那么性能关键部分的速度可以达到20倍。
正如另一个答案所说,NumPy是数字瓶颈的一个很好的选择(如果你认为在矩阵运算而不是循环!);而且SciPy带有weaver,允许你嵌入内联C ++和其他好东西。