11

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

假设我正在 pygtk 中创建应用程序,并且我需要一些需要快速的功能。因此,如果我在我的应用程序中使用 c++ 来完成某些任务,它会有用吗?

还有哪些其他选项可以让 python 代码更快?

4

2 回答 2

7

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

另一种选择可能是使用PyPy.

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

值得注意的是,例如,如果您的代码是 I/O 绑定的,那么上述选项都不会有太大帮助。

于 2013-03-21T09:52:29.757 回答
3

看情况,没有确定的答案。如果你用 C++ 编写糟糕的代码,它可能比编写好的 Python 代码还要慢。

假设您可以编写高质量的 C++ 代码,您可以预期性能关键部分的加速最高可达 20 倍。

正如另一个答案所说,NumPy 是解决数值瓶颈的好选择(如果您考虑矩阵运算而不是循环!);SciPy 带有 weaver,它允许您嵌入内联 C++ 和其他好东西。

于 2013-03-21T09:58:28.730 回答