Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 ctypes、boost.python 等在 python 中嵌入 c++ 代码是否会使你的 python 应用程序更快?
假设我正在 pygtk 中创建应用程序,并且我需要一些需要快速的功能。因此,如果我在我的应用程序中使用 c++ 来完成某些任务,它会有用吗?
还有哪些其他选项可以让 python 代码更快?
用 C++ 重写代码的性能关键部分可能是一种选择。要有效地做到这一点,您首先需要了解瓶颈在哪里。最好的方法可能是先用纯 Python 编写所有内容,然后再进行分析。
另一种选择可能是使用PyPy.
PyPy
最后,如果您发现瓶颈是数值计算,那么NumPy值得一看。
NumPy
值得注意的是,例如,如果您的代码是 I/O 绑定的,那么上述选项都不会有太大帮助。
看情况,没有确定的答案。如果你用 C++ 编写糟糕的代码,它可能比编写好的 Python 代码还要慢。
假设您可以编写高质量的 C++ 代码,您可以预期性能关键部分的加速最高可达 20 倍。
正如另一个答案所说,NumPy 是解决数值瓶颈的好选择(如果您考虑矩阵运算而不是循环!);SciPy 带有 weaver,它允许您嵌入内联 C++ 和其他好东西。