编译后的Python代码和C++代码一样快吗?

2 投票
3 回答
1548 浏览
提问于 2025-04-17 07:39

如果我用Python写一个程序,然后用以下这些工具来编译它:

Gordon McMillan的安装程序(跨平台)

Thomas Heller的py2exe

(Windows)Anthony Tuininga的cx_Freeze(跨平台)

那么它的运行速度会和用编译语言写的代码一样快吗?

3 个回答

1

谷歌最近发布了一个叫做 Grumpy 的工具,它可以把Python代码转换成Go代码,然后再进行编译。这样做的目的是希望软件运行得更快,并且可以绕过Python中著名的全局解释器锁(GIL),实现真正的多线程。

Grumpy是一个将Python代码转换为Go代码的工具,它的运行方式接近于CPython 2.7。最大的不同在于,Grumpy会把Python源代码编译成Go源代码,然后再编译成本地代码,而不是编译成字节码。这意味着Grumpy没有虚拟机。编译后的Go源代码实际上是一系列对Grumpy运行时的调用,这个运行时是一个Go库,功能类似于Python的C API(不过C API并不直接支持)。

2

为了提高速度,你可能还想了解一下 Cython。它可以让你用一种类似Python的语言来编写C语言的扩展。

14

这些工具不是编译器,它们只是把Python代码打包成更容易启动的应用程序。如果你想要更像编译的东西,可以试试 http://pypy.org(这是一个为Python设计的即时编译器)或者 http://code.google.com/p/shedskin(这个工具可以把Python代码转换成C++代码)。

撰写回答