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

最近跟着导师参加了天池的厦门航空算法大赛,比赛的整体思路就是通过建立整数规划模型来求解可行解,得到航班调度的安排。参加比赛遇到的一大问题是模型中的决策变量太多,难以快速的求解出答案,所以尝试了如何提升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环境的性能。

想了解更多? 那就赶紧来关注我们

本文分享自微信公众号 - 小小挖掘机(wAIsjwj)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vamei实验室

树莓派:漂洋过海来看你

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

15810
来自专栏嵌入式程序猿

树莓派 PI3之Raspbian系统安装

Raspbian是树莓派官方推荐安装的系统,是基于linux的操作系统,预装有很多实用的工具,关于树莓派的很多介绍大家可以问度娘或者上官网,今天我们主要来看下系...

49170
来自专栏Vamei实验室

树莓派:漂洋过海来看你

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

15920
来自专栏腾讯移动品质中心TMQ的专栏

GT3.1简化您的App性能测试(2)——原理讲解,溯本求源

GT3.1的版本更新,带来了全面的维度分析。那么这些功能是如何实现的呢?本章GT君将详细的从CUP维度、内存维度、流量维度、流畅度维度为大家讲解这些功能的作用和...

60660
来自专栏FreeBuf

一则邮件攻击样本分析分享

通过邮件投递病毒文件是网络攻击常用的一种方式,因此防御邮件攻击是每个安全团队都需要重点考虑的内容。中兴通讯每天都会收到数万封外部邮件,为了及时检测每封邮件是否含...

14720
来自专栏匠心独运的博客

分布式定时任务Elastic-Job框架在SpringBoot工程中的应用实践(一)

摘要:如何构建具备作业分片和弹性扩缩容的定时任务系统是每个大型业务系统在设计时需要考虑的重要问题? 对于构建一般的业务系统来说,使用Quartz或者Sprin...

68520
来自专栏Python入门

多年经验的大牛总结出来的Python案例超详细

This batch renames a group of files in a given directory, once you pass the curr...

20040
来自专栏Vamei实验室

树莓派:漂洋过海来看你

给树莓派连上显示器和键盘鼠标,就可以像使用一台电脑一样使用它了。但很多时候,我们是把体积小巧的树莓派当做一个便携设备来使用的。这种时候,用户可不希望随身带着体积...

28990
来自专栏重庆的技术分享区

TensorFlow版本-如何更新?(踩坑版)

4.1K40
来自专栏企鹅号快讯

可编程逻辑控制器PLC

PLC代表可编程逻辑控制器。它们基本上用于控制工业中的自动化系统。它们是最先进和最简单的控制系统之一,现在正在大规模地取代硬连线逻辑继电器。 ? 在详细介绍PL...

27070

扫码关注云+社区

领取腾讯云代金券