时间:2019-08-02 20:03:11 作者:johnnyl 浏览量:27
大家好,小编今天给大家说说PYPY,什么是PYPY?它是用Python自身实现的解
释器。针对CPython的缺点进行了各方面的改良,性能得到很大的提升。最重要的一点就是Pypy集成了JIT。但是,Pypy无法支持官方的C/Python API,导致无法使用例如Numpy,Scipy等重要的第三方库。这也是现在Pypy没有被广泛使用的原因吧。而PyPy与CPython的不同在于,别的一些python实现如CPython是使用解释执行的方式,这样的实现方式在性能上是很凄惨的。而PyPy使用了JIT(即时编译)技术,在性能上得到了提升。
PyPy 官方宣布支撑 AArch64 架构,它将 PyPy 的高功用 JIT 带入 AArch64 平台,也便是 64 位 ARM。现在 PyPy 一共支撑 6 种架构,分别是 x86(32 和 64 位)、ARM(32 和 64 位)、PPC64 与s390x。
PyPy 解释器开始支持 AArch64 架构图1
PyPy 是一个兼容性强壮的Python 解释器,几乎是 CPython 2.7 与 3.6 的直接替代品。由于其集成的JIT 编译器,速度很快,为了展示新 PyPy 的功用,此次官方布告中也进行了一次速度测验,如上图所示,在一组基准测验中比较了 PyPy 与 CPython 的功用,同时对比x86_64 架构上 PyPy 的成果。
图中显现了 AArch64(hg id 2417f925ce94)上与 CPython(2.7.15)比较 PyPy 的速度进步,以及 x86_64 Linux 笔记本电脑上最新版本 PyPy 7.1.1 和 CPython 2.7.16 比较的速度。成果显现在大多数基准测验中,AArch64 上完成的加快与 x86_64 笔记本电脑上完成的加快效果适当。AArch64 上的 PyPy 比较CPython 有0.6x 到 44.9x 的加快,x86_64 上是 0.6x 到 58.9x。
需要注意的是,这儿显现的成果是在 AWS 的 Graviton A1 机器上测量的,Graviton A1 是虚拟机,因而不适合进行基准测验。此外,此基准套件并不能够反映平均水平。
下面的图片比较了在 AArch64 与 x86_64 上完成的加快差距,也便是调查 PyPy 在 AArch64 上功用比较 x86_64 进步多少,它能够粗略地了解新移植版本 PyPy 的能力。
PyPy 解释器开始支持 AArch64 架构图2
有三种成果:运转速度差不多、运转速度进步 2 倍,以及速度为 x86_64 的 0.5 倍。
官方表明该版本还有许多改善的空间,AArch64 带有很多的 CPU 寄存器,PyPy 后端是用 x86(32 位变体)编写的,它的寄存器数量十分少。官方以为能够在机器码方面进行改善,这可能对 AArch64 的影响大于对 x86_64 的影响。此外 AArch64 后端还有许多缺少的功用,这些功用现在使用昂贵的函数调用完成,而不是内联原生指令,能够进行改善。