文档章节

PyPy 与 Python 的一个小 timeit (二)

水果糖
 水果糖
发布于 2016/05/09 23:30
字数 262
阅读 23
收藏 1


前面做了PyPy 与C Python 对比;


这次了解到有个叫nuitka 的玩意存在,号称“将Python 无缝 转换成C++(100%)”;


既然如此叼? 好的,Candy特意编译了一个 Python2.7.11 安装好nuitka 后进行编译。

代码与

[root@server ~]# time ./demo.exe

real    0m22.646s
user    0m22.632s
sys     0m0.007s
[root@server ~]#


 经过此役后,发现user对比 C Python 性能提升2倍,但是还是比不上PyPy的优化程度。



让我们再来看一段代码,abc.py 的代码如下:

def test(n,m):
    m=m
    vals = []
    keys = []
    for i in xrange(m):
        vals.append(i)
        keys.append('a%s'%i)
    d = None
    for i in xrange(n):
        d = dict(zip(keys, vals))
    return d
if __name__ == '__main__':
    test(1000000,100)



Python 2.7:

[root@server ~]# time python2.7 abc.py

real    0m11.284s
user    0m11.270s
sys     0m0.012s


PyPy:

[root@server ~]# time pypy abc.py

real    0m9.997s
user    0m6.752s
sys     0m1.549s



nuitka :

[root@server abc.dist]# time ./abc.exe

real    0m10.717s
user    0m10.707s
sys     0m0.006s



具体使用化解,请大家自行斟酌! 


这里只给出了一个针对性、专业性不是非常强的测试,很多情况也没考虑到;细节方面,还请各位自己测试。



© 著作权归作者所有

共有 人打赏支持
水果糖
粉丝 17
博文 158
码字总数 52482
作品 0
深圳
程序员
私信 提问
python 计算函数运行时间

使用timeit模块 测试一段代码的运行时间,在python里面有个很简单的方法,就是使用timeit模块,使用起来超级方便 下面简单介绍一个timeit模块中的函数 主要就是这两个函数: 1, timeit(stmt...

阿豪boy
2017/11/02
0
0
python 装饰器@ 面向切面的编程

装饰器@ 面向切面的编程 参考 import timedef foo():print 'this is foo' def timeit(func):start = time.clock()func()end = time.clock()print 'used time : ', (end-start) timeit(foo) ......

okker
2014/03/04
0
0
Python丨Python 性能分析大全

虽然运行速度慢是 Python 与生俱来的特点,大多数时候我们用 Python 就意味着放弃对性能的追求。但是,就算是用纯 Python 完成同一个任务,老手写出来的代码可能会比菜鸟写的代码块几倍,甚至...

太阳代理
2017/11/07
0
0
设计模式之:理解 Python 中的装饰器

1、问题 文章先由stackoverflow上面的一个问题引起吧,如果使用如下的代码: @makebold @makeitalic def say(): return "Hello" 打印出如下的输出: <b><i>Hello<i></b> 你会怎么做?最后给出......

大数据之路
2013/07/22
0
0
Python装饰器与面向切面编程

今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以...

张旭0512
2014/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Js中DOM事件绑定分析

在这篇文章中小编给大家整理了关于JS中DOM事件绑定的相关知识点,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 #Js事件绑定 Ja...

前端攻城小牛
1分钟前
0
0
指令、伪操作、伪指令和宏指令区别

汇编语言程序中的语句可以由指令、伪指令和宏指令组成。 指令:每一条指令都对应一种CPU操作。 伪指令又称为伪操作,它是在对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择...

二营长意大利炮
2分钟前
0
0
SQL Server SQL语句删除索引

当删除索引提示超时时候,可以使用SQL语句删除索引,可以避免删除索引超时问题。 use [数据库名]drop index [索引名称] on [表名]

产吅经理
2分钟前
0
0
深入解析Axios 常用的请求方法别名

下面小编就为大家分享一篇Axios 常用的请求方法别名,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 #Axios 是一个基于 promise ...

前端攻城老湿
8分钟前
0
0
深入解析Vue开发动态刷新Echarts组件的教程

需求背景:dashboard作为目前企业中后台产品的“门面”,如何更加实时、高效、炫酷的对统计数据进行展示,是值得前端开发工程师和UI设计师共同思考的一个问题。今天就从0开始,封装一个动态渲...

peakedness丶
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部