编译python代码的速度与C++;密码?

编译python代码的速度与C++;密码?,python,performance,compiler-construction,Python,Performance,Compiler Construction,如果我用Python编写一个程序,然后使用以下任何编译器进行编译: Gordon McMillan的安装程序(跨平台) 托马斯·海勒的py2exe (Windows)Anthony Tuininga的cx_冻结(跨平台) 它和用编译语言编写的代码一样快吗?这些工具不是编译器,它们只是将python代码打包到一个更容易启动的应用程序中。如果您想要更像编译的东西,请尝试(针对python的JIT)或(将python翻译为C++)。为了提高速度,您可能还需要研究允许用类似python的语言为pytho

如果我用Python编写一个程序,然后使用以下任何编译器进行编译:

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

托马斯·海勒的py2exe

(Windows)Anthony Tuininga的cx_冻结(跨平台)


它和用编译语言编写的代码一样快吗?

这些工具不是编译器,它们只是将python代码打包到一个更容易启动的应用程序中。如果您想要更像编译的东西,请尝试(针对python的JIT)或(将python翻译为C++)。

为了提高速度,您可能还需要研究允许用类似python的语言为python编写C扩展的方法。

谷歌最近发布的一个文件,它可以在编译python之前将python转换为C扩展。我们的期望是,软件将以这种方式运行得更快,并绕过臭名昭著的Python GIL,允许真正的多线程

Grumpy是一个Python to Go源代码的编译程序和运行时 旨在成为CPython 2.7的替代品。钥匙 不同之处在于,它编译Python源代码以获取源代码 然后将其编译为本机代码,而不是字节码。这 这意味着脾气暴躁没有虚拟机。编译的Go源代码是一个系列 对Grumpy运行时的调用,一个用于类似目的的Go库 到Python C API(尽管C API不受直接支持)


请注意,前者仍然是一个解释器(一个智能的解释器,它为大多数代码提供了相当大的加速,但仍然不比AOT编译的C快,除了精心构造的与实际程序几乎没有关系的基准测试),而后者只接受Python的一个小的“足够静态”子集。就这一点而言,RPython(PyPy背后的人,事实上用于PyPy)做了类似的事情,但可能更好(他们想出了一个非常聪明的方法,并且有很多时间来改进它-OTOH我有偏见)。