2017-12-27 68 views
-1

在过去的几天中,我在与Nuitka一起工作,Nuitka是一种将Python编译为可执行的C/C++程序的工具。PyPy与Nuitka

我还没有发现Nuitka的速度优势(与PyPy相比)。那么,Nuitka的含义是什么?我错过了什么吗?

回答

3

Nuitka和PyPy有非常不同的目标。

Nuitka使用python C-API将您的python项目提前(AOT)编译为C。通过这种方式,它更像Cython。它仍然是一个年轻的项目,但令人印象深刻的是,它完全兼容了庞大的python语言规范。下一步将是在编译器过程中启用优化,就像gcc -O3一样。请注意,Nuitka用于将您的Python代码转换为可执行文件。然后,您将可执行文件“运送”出来,并对原始python代码进行一定程度的渲染。

PyPy确实正在运行代码汇编到程序集(JIT)。它追踪您的运行代码,识别热点,并生成程序热门部分的更快版本。它也与Python语言规范完全兼容。它不会提前转换你的python代码,所以你把你的python代码作为最终产品“运送”出来。

我预计这两个项目都将继续提高执行速度,但它们针对的是非常不同的需求。