Python的AoT编译器

5

我希望能让我的Python脚本在没有解释器的裸机设备上工作,比如微控制器。已知有一些针对Python的JIT编译器(如PyPy)和解释器(如CPython)。

不过,我发现现有的解释器(例如CPython)占用的内存较大(在MB范围内)。

是否存在一种AOT编译器,可以将Python直接编译为本地硬件指令,通过像LLVM这样的中间层?

如果有这样的编译器,Python相对于现有实现将能够运行得更快,并且具有更低的内存占用。如果确实存在这样的编译器,那么我想知道为什么这种解决方案还没有被普及。

3个回答

7

如你所提到的,Cython是一种选择(然而,由于C运行时需要与您的程序一起实现Python功能,因此结果很大)。

关于LLVM, Google 有一个名为unladen swallow的项目,但该项目大多已被放弃。关于它的一些信息可以在这里找到。

基本上,它是将LLVM优化引入Cython运行时的尝试。例如,JITTING Python代码。

另一个旧的选择是shed skin,它将Python编译为C ++。有关它的一些信息可以在这里找到。

另一个类似于shed skin的选项是限制自己使用Python语言的子集,并使用micropython


2
实际上,它被称为Shed Skin,而不是Shred Skin - xilpex

2

2

最近了解到 codon

Codon 是一种高性能的 Python 编译器,它可以将 Python 代码编译成本地机器代码,而不会有任何运行时开销。在单线程上,相对于 Python 的速度提升通常在 10-100 倍或更多。Codon 的性能通常与 C/C++ 相当甚至更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接