编译后的Python代码和C++代码一样快吗?
如果我用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++代码)。