是否可以编译Python代码以实现高效率?

时间:2017-07-24 21:38:13

标签: python performance compilation

我正在尝试编写一些必须尽可能高效的代码,因为如果不是在尽可能短的时间内完成数千次操作,我将会做数千次。

现在我已经有了一些用C语言编写的代码,但是在对包装器进行一些研究之后,我的技术水平似乎超出了这一点(特别是因为我几乎不知道C)。因此,我正在考虑在python中重写代码/算法的可能性。

我已经读过大多数高效率任务在C中完成的原因是因为编译语言的效率很高,并且想知道是否有可能使用纯python编译python代码以达到相同的效率。 / p>

代码将包括特定的位操作,表查找,按位逻辑和二进制搜索,或者可能使用完美的散列。

回顾:我正在尝试编写一些必须高效的内容,并且想知道是否可以使python以C效率或接近C效率运行。如果是这样的话:怎么样?

1 个答案:

答案 0 :(得分:0)

最终,Python是一种解释性语言。为目标机器编译的Python二进制文件不仅执行Python代码,还执行获取代码并在运行时解释每个命令的解释器。解释的额外开销是影响绩效的因素。

编译为本机机器代码并跳过目标CPU的解释(Python)和虚拟机(JVM,.Net CLR)的语言提供了最佳性能。这些是C和C ++ 11/14/17。

您可以使用可以使用特定类型虚拟机的最佳性能的语言,例如LLVM,这对SSA很有用。可以为LLVM(前端)编译Clang(C / C ++)和Rust,使用LLVM特定工具进行分析和优化,最后使用LLVM后端为目标机器进行汇编和链接。无论哪种方式,(直接或间接机器代码生成),本机编译都能提供最佳性能。