Python绑定;调用 C 代码和性能

Posted

技术标签:

【中文标题】Python绑定;调用 C 代码和性能【英文标题】:Python bindings; calling C code & performance 【发布时间】:2014-04-25 09:04:11 【问题描述】:

我的问题会简单明了。

假设我有一个 python 程序,它从用 C/C++ 编译的 DLL 调用 C++ 代码。

-会保留执行代码的速度/性能吗?

假设我有一个 python 程序...绑定到一个 C++ 库(例如 - GTK 或 Wx)。

-速度是否会与库的速度相匹配,就好像它是用 C++ 程序编译的一样?

谢谢。

【问题讨论】:

【参考方案1】:

当 Python 调用 C++ 代码时,它执行的代码是 C++ 编译器生成的机器码。您将在接口级别付出一些代价,因为您必须将 Python 类型编组为 C++ 类型,反之亦然,但 C++ 代码本身的运行速度与从 C++ 调用它的速度几乎相同;任何差异都是由于不同的内存使用模式导致的动态分配内存的不同位置(这会导致您的 C++ 代码以不同的速度运行,具体取决于哪个 C++ 应用程序调用它)。

【讨论】:

以上是关于Python绑定;调用 C 代码和性能的主要内容,如果未能解决你的问题,请参考以下文章

如何调用另一个python文件中的代码

cython与python的不同都有哪些

python绑定,它是如何工作的?

cython和python的区别

如何让python调用C和C++代码

Python 绑定:从 Python 调用 C 或 C++