简介
随着人工智能的风潮,python越来越广泛的被人们所知,上到管理下到大学,甚至中学,都将python选为必修课之一。
python的特点:1.易于学习 2.易于阅读 3.易于维护 4.广泛的标准库 5.互动模式 6.可移植 7.可扩展 8.提供数据库接口 9.GUI编程 10.可嵌入
不妨夸张的说,python无所不能。
但是python的性能一直被诟病,那有没有类似于Java性能的知名技术HotSpot一样的技术呢?
答案是有的,就是pypy。其中最主要的就是集成了一种即时(JIT)编译器。对于此编译器,大家可以查阅更多相关的资料,说的都比我好,我就不重复了。
安装
1.下载官方编译好的包 地址
我选择的是linux64位python3.5.3的版本
wget https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux64.tar.bz2
2.解压
tar jxvf pypy3-v5.10.1-linux64.tar.bz2
解压完成之后目录下有一个bin文件夹,里面有一个pypy3的可执行文件。可以选择将其添加到path,这样子就可以直接使用pypy3来执行啦。
ln -s ***/pypy3-v5.10.1-linux64/bin/pypy3 /usr/local/bin
3.安装pip
由于pypy3的第三方包是与系统的pip是独立开来的,所有需要我们自己独立安装。
***/bin/pypy3 -m ensurepip # 安装pip
***/bin/pip3 install -U pip wheel # 把pip升级最新版本
支持的第三方库已经覆盖主流的库,所以使用上基本没啥问题。
使用
使用方式非常简单,与python执行并无区别,只是把原来的python xxx.py换成pypy3 *xxx.py
对比
此次对比代码,采用比较简单的方式,循环一千万次,获取随机数,看它的执行时长。
import random
import datetime
start = datetime.datetime.now()
for i in range(10000000):
random.random()
end = datetime.datetime.now()
print((end-start).total_seconds())
结果:
可以看出,python3的速度略快python2,但是pypy3的速度已经远超出太多。
结语
pypy是一个提速神器,可以把python的性能往上再提一个层级,享受快速开发的同时,还可以享受速度带来的愉悦,何其乐哉。