查看原文
其他

Mac上提升python运算速度-PyPy初体验

2017-07-20 文文 Python爱好者社区

作者:文文

公众号:小小挖掘机(专门分享数据挖掘以及学习经验)


最近跟着导师参加了天池的厦门航空算法大赛,比赛的整体思路就是通过建立整数规划模型来求解可行解,得到航班调度的安排。参加比赛遇到的一大问题是模型中的决策变量太多,难以快速的求解出答案,所以尝试了如何提升python的运行速度。本文主要介绍的方法就是通过pypy这一工具来提升python运行速度。

1、什么是PyPy

PyPy是用Python实现的Python解释器。更为具体的概念可以参考百度百科。

2、Mac上安装PyPy

这里我们使用brew来安装PyPy。首先我们可以看一下有哪些可以安装的PyPy版本,使用如下命令:

brew search pypy



可以看到有两个PyPy版本,很容易从名字就看出来一个是针对python2的,一个是针对python3的,我两个都装了,所以显示了两个对勾。
这里建议大家安装python2版本的,因为装了python3版本的之后发现pandas安装总是报错。
使用如下命令安装PyPy

brew install pypy

等待安装完成即可。

3、PyPy使用pip安装第三方库

PyPy是独立于系统自身的python环境的,所以它不能使用系统自身已经安装的python第三方库,所以使用PyPy运行python程序时,如果涉及到第三方库,会报找不到模块的错误,所以需要给PyPy安装相应的第三方库,方法如下:
首先需要下载get-pip.py文件:https://github.com/anpengapple/pypy_get_pip
下载完成后,使用如下命令进行安装:

pypy get-pip.py

执行完之后,我们就可以使用pypy安装我们需要的第三方库了,比如我们想要安装xlwt:

pypy -m pip install xlwt

如果不加pypy -m 则默认安装到你的python环境下。
效果如下图:

4、PyPy性能测试

写一个简单的小程序来测试PyPy的运行性能:

import datetime time1 = datetime.datetime.now() print (time1)for i in range(1000):    for j in range(1000):        for t in range(1000):            pass time2 = datetime.datetime.now() print (time2) print (time2-time1)

测试结果如下:


性能对比

可以发现PyPy的运行性能简直完爆使用默认的python环境的性能。

关注公众号,“Python爱好者社区”,回复“爬虫”即可获取崔老师爬虫免费学习视频。



Python爱好者社区


为大家提供与Python相关的最新技术和资讯。

长按指纹 > 识别图中二维码 > 添加关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存