打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
​比Python快得吓人,PyPy极简入门,Python进阶必备!

众所周知,Python非常强大,简单易学,又有很多轮子可以直接拿来用。

凡事有利必有弊,Python运行速度慢。如果你要做一些很耗时间的事情,就会头疼。

这时候也许会有人建议你用C,C++等编程语言。

天啊,他们是开玩笑吗?换C语言有那么容易吗!

不过现在福音来了,不用换编程语言,也可以把速度提高很多倍。

这就是我今天要介绍的PyPy!

1 做个实验

这是一段普通的Python代码,计算从0到1亿之间的整数之和:

import time
from termcolor import colored

start = time.time()
number = 0
for i in range(100000000):
    number += i
    
print(colored('FINISHED', 'green'))
print(f'Ellapsed time: {time.time() - start} s')

用默认的Python解释器(CPython)运行,然后再用PyPy运行。

它们的运行时间对比大概是这样的:

当然,不同的机器运行可能会有少许差异,但是你可以看到非常明显的差异。

好吧,我就把这篇文章的目的明说了吧:

其实不需要马上用PyPy,但是你有必要知道它的存在,在必要的时候使用它。

下面这句话是Python的发明者说的:

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

翻译成中文的意思是:

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

2 PyPy是什么?

到底什么是PyPy?

难道我要再学习一门编程语言吗?

不不不!

PyPy只是另外一种Python代码执行引擎。你的Python代码可以在不做任何改动的情况下,直接运行在PyPy上。

就好像你原本开一辆夏利汽车,现在给你来了一辆法拉利!

同样是,同样的驾照和驾驶技术,你忽然就变得快乐(快了)起来。因为引擎变了,你的吸引力都变大了很多。

3 又快又好!

PyPy为什么可以这么快呢?

我们默认使用的CPython解释器,它的执行过程是这样的:

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

而PyPy使用Just In Time(JIT)技术把Python代码直接编译成机器语言,大概过程是这样的:

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

就光看上面加粗的字的长度,你也看出PyPy肯定很快。

这是PyPy官网给出的比较综合的速度对比:

平均来说,PyPy比CPython快4.2倍。

它的好处除了速度快,还有省内存。这是官方说明:

更要命的是,PyPy使用它非常简单!

4 极简入门

1. 下载

去官网下载页面:

https://www.pypy.org/download.html

下载适合你的版本:

2. 配置环境变量

下载后随便解压到一个位置,并将这个目录添加到系统环境变量:

3. 使用pypy替换python命令

剩下的就是在运行python命令的地方,改成pypy3就行了。

比如打开交互式Python,直接运行pypy3就可以了:

再比如安装第三方库,先安装pip,然后运行和以前几乎一样的命令就行了:

pypy3 -m pip install XXX

注:由于我很少使用 Windows电脑,本部分截图来源于机器学习算法与Python实战 ,作者海洋。

5 适用型和局限性

如果它那么快,又省内存,为什么不把默认的CPython直接改成pypy,让地球人都用pypy好了!

本文开头说过一句话,凡事有利必有弊,没有什么事情是完美的。

Pypy的好处:

  • 速度快,比CPython的平均快4.2倍。
  • 对于占用内存比较大程序(比如几百M),可以节约内存。
  • 适合长时间运行的代码。

但是它也有不小的局限性:

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

7 最后的建议

总的建议在文章开头已经给了:

  1. 你不需要马上用PyPy,除非你碰到了性能问题。
  2. 但是你有必要知道它的存在,在必要的时候使用它。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python代码运行慢怎么办?这五种方法要谨记!
好用的python解释器
Python在Windows上安装配置测试
编译器与解释器的区别和工作原理
速度百倍提升,高性能 Python 编译器 Codon 火了!
软件开发|六大Python解释器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服