一、PyPy解释器

比Python快得吓人,PyPy极简入门,Python进阶必备

1.1 问题引入

Python的发明者说:

“If you want your code to run faster, you should probably just use PyPy.” – Guido van Rossum (creator of Python)

如果你想让代码运行的更快,你或许应该直接用PyPy.

1.2 CPython解释器

CPython是python默认的解释器,它的执行过程为:

Python源代码 -> 字节码 -> 一句一句解释成机器语言 -> 执行

二、相关介绍

PyPy官网

Python使用pywinusb的示例 pypy如何使用_环境变量

PyPy是另外一种Python解释器,Python代码可以在不做任何改动的情况下,直接运行在PyPy上

2.1 PyPy执行流程

PyPy使用Just In Time(JIT)技术把Python代码直接编译成机器语言,执行过程为:

Python源代码 -> 机器语言 -> 执行

Python使用pywinusb的示例 pypy如何使用_python_02

2.2 PyPy特性优势

  • PyPy比CPython快4.5倍;
  • 省内存,对于占用内存比较大程序(比如几百M),可以节约内存;
  • 适合长时间运行的代码;
  • 使用简单;

2.3 PyPy局限性

  • 适合纯Python的代码;
  • 对于不是纯Python的代码(通常是调用C库的Python包,比如Numpy),可能有兼容性问题。现在它已经兼容Numpy了,但是可能有其他问题。

2.4 建议

  • 你不需要马上用PyPy,除非你碰到了性能问题;
  • 你有必要知道它的存在,在必要的时候使用它;

三、关键步骤

pypy安装、使用

3.1 下载并解压

下载地址

Python使用pywinusb的示例 pypy如何使用_Python_03

3.2 配置环境变量

将解压后的路径,添加到系统环境变量中。

# 添加环境变量
D:\360Downloads\pypy3.7-v7.3.9-win64

# PyPy自带的pip添加到环境变量
D:\360Downloads\pypy3.7-v7.3.9-win64\Scripts

Python使用pywinusb的示例 pypy如何使用_环境变量_04

3.3 给pypy3安装pip

Python使用pywinusb的示例 pypy如何使用_python_05

由于 PyPy自带有pip,为了与系统自带的pip相区分,给PyPy的 pip.exe 重命名为 pypy3-pip3.exe

Python使用pywinusb的示例 pypy如何使用_PyPy解释器_06

pip安装Python包:

# pip安装python包
pypy3-pip install XXX

# 执行脚本
pypy3 pypy3-demo.py

3.4 运行python程序

在运行python命令的地方,使用pypy3替换python命令。比如打开交互式Python,直接运行pypy3:

Python使用pywinusb的示例 pypy如何使用_Python_07

3.5 示例代码

import time

t = time.time()

for i in range(10 ** 9):
    continue

print(time.time() - t)

3.6 性能对比

CPython解释器

pypy解释器

加速比

耗时(s)

28.849

0.657

44倍

Python使用pywinusb的示例 pypy如何使用_Python_08