一、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解释器,Python代码可以在不做任何改动的情况下,直接运行在PyPy上。
2.1 PyPy执行流程
PyPy使用Just In Time(JIT)技术把Python代码直接编译成机器语言,执行过程为:
Python源代码 -> 机器语言 -> 执行
2.2 PyPy特性优势
- PyPy比CPython快4.5倍;
- 省内存,对于占用内存比较大程序(比如几百M),可以节约内存;
- 适合长时间运行的代码;
- 使用简单;
2.3 PyPy局限性
- 适合纯Python的代码;
- 对于不是纯Python的代码(通常是调用C库的Python包,比如Numpy),可能有兼容性问题。现在它已经兼容Numpy了,但是可能有其他问题。
2.4 建议
- 你不需要马上用PyPy,除非你碰到了性能问题;
- 你有必要知道它的存在,在必要的时候使用它;
三、关键步骤
3.1 下载并解压
3.2 配置环境变量
将解压后的路径,添加到系统环境变量中。
# 添加环境变量
D:\360Downloads\pypy3.7-v7.3.9-win64
# PyPy自带的pip添加到环境变量
D:\360Downloads\pypy3.7-v7.3.9-win64\Scripts
3.3 给pypy3安装pip
由于 PyPy自带有pip,为了与系统自带的pip相区分,给PyPy的 pip.exe
重命名为 pypy3-pip3.exe
。
pip安装Python包:
# pip安装python包
pypy3-pip install XXX
# 执行脚本
pypy3 pypy3-demo.py
3.4 运行python程序
在运行python命令的地方,使用pypy3替换python命令。比如打开交互式Python,直接运行pypy3:
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倍 |