【问题标题】:is compiled python code as fast as C++ code?编译 python 代码和 C++ 代码一样快吗?
【发布时间】:2011-12-04 10:09:24
【问题描述】:

如果我用 Python 编写一个程序,然后使用这些编译器中的任何一个进行编译:

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

Thomas Heller 的 py2exe

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

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

【问题讨论】:

    标签: python performance compiler-construction


    【解决方案1】:

    这些工具不是编译器,它们只是将 python 代码打包成一个更易于启动的应用程序。如果您想要更多类似编译的东西,请尝试http://pypy.org(python 的 JIT)或http://code.google.com/p/shedskin(将 Python 转换为 C++)。

    【讨论】:

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

    为了速度,您可能还想查看Cython,它允许使用类似 Python 的语言为 Python 编写 C 扩展。

    【讨论】:

      【解决方案3】:

      Google 最近发布了Grumpy,它在编译 Python 之前将其转换为 Go。期望软件以这种方式运行得更快,并绕过臭名昭著的 Python GIL,实现真正的多线程。

      Grumpy 是一个 Python to Go 源代码转编译器和运行时,它是 旨在成为 CPython 2.7 的近乎直接的替代品。钥匙 不同之处在于它将 Python 源代码编译为 Go 源代码 然后将其编译为本机代码,而不是字节码。这 意味着 Grumpy 没有虚拟机。编译出来的 Go 源码是一个系列 调用 Grumpy 运行时的次数,这是一个服务于类似目的的 Go 库 到 Python C API(尽管不直接支持 C API)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        相关资源
        最近更新 更多