timeit使用

def f1(lIn):
l1 = sorted(lIn) # O(nlogn) C语言的
l2 = [i for i in l1 if i<0.5] # O(n)
return [i*i for i in l2] # O(k) def f2(lIn):
l1 = [i for i in lIn if i<0.5] # O(n)
l2 = sorted(l1) # O(klogk) C语言的
return [i*i for i in l2] # O(k) def f3(lIn):
l1 = [i*i for i in lIn] # O(n)
l2 = sorted(l1) # O(nlogn) C语言的
return [i for i in l2 if i<(0.5*0.5)] # O(n) import timeit
import random
l = [random.random() for i in range(100000)] t1 = timeit.Timer("f1(l)","from __main__ import random,l,f1")
t2 = timeit.Timer("f2(l)","from __main__ import random,l,f2")
t3 = timeit.Timer("f3(l)","from __main__ import random,l,f3")
print(t1.timeit(number=50)) # 3.0630057093816947
print(t2.timeit(number=50)) # 1.6970076176407773
print(t3.timeit(number=50)) # 3.30195772223185

或使用Ipython

def f1(lIn):
l1 = sorted(lIn) # O(nlogn) C语言的
l2 = [i for i in l1 if i<0.5] # O(n)
return [i*i for i in l2] # O(k)
def f2(lIn):
l1 = [i for i in lIn if i<0.5] # O(n)
l2 = sorted(l1) # O(klogk) C语言的
return [i*i for i in l2] # O(k)
def f3(lIn):
l1 = [i*i for i in lIn] # O(n)
l2 = sorted(l1) # O(nlogn) C语言的
return [i for i in l2 if i<(0.5*0.5)] # O(n)
import random
lIn = [random.random() for i in range(100000)] %timeit f1(lIn)
75.8 ms ± 917 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit f2(lIn)
39.3 ms ± 560 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit f3(lIn)
80 ms ± 1.09 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

使用cProfile

def f1(lIn):
l1 = sorted(lIn) # O(nlogn) C语言的
l2 = [i for i in l1 if i<0.5] # O(n)
return [i*i for i in l2] # O(k) def f2(lIn):
l1 = [i for i in lIn if i<0.5] # O(n)
l2 = sorted(l1) # O(klogk) C语言的
return [i*i for i in l2] # O(k) def f3(lIn):
l1 = [i*i for i in lIn] # O(n)
l2 = sorted(l1) # O(nlogn) C语言的
return [i for i in l2 if i<(0.5*0.5)] # O(n) import cProfile
import random
lIn = [random.random() for i in range(100000)]
cProfile.run('f1(lIn)')
cProfile.run('f2(lIn)')
cProfile.run('f3(lIn)') """
7 function calls in 0.125 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.120 0.120 11.py:1(f1)
1 0.020 0.020 0.020 0.020 11.py:3(<listcomp>)
1 0.009 0.009 0.009 0.009 11.py:4(<listcomp>)
1 0.005 0.005 0.125 0.125 <string>:1(<module>)
1 0.000 0.000 0.125 0.125 {built-in method builtins.exec}
1 0.091 0.091 0.091 0.091 {built-in method builtins.sorted}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 7 function calls in 0.044 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.041 0.041 11.py:6(f2)
1 0.007 0.007 0.007 0.007 11.py:7(<listcomp>)
1 0.006 0.006 0.006 0.006 11.py:9(<listcomp>)
1 0.003 0.003 0.044 0.044 <string>:1(<module>)
1 0.000 0.000 0.044 0.044 {built-in method builtins.exec}
1 0.028 0.028 0.028 0.028 {built-in method builtins.sorted}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 7 function calls in 0.068 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.065 0.065 11.py:11(f3)
1 0.006 0.006 0.006 0.006 11.py:12(<listcomp>)
1 0.010 0.010 0.010 0.010 11.py:14(<listcomp>)
1 0.002 0.002 0.068 0.068 <string>:1(<module>)
1 0.000 0.000 0.068 0.068 {built-in method builtins.exec}
1 0.049 0.049 0.049 0.049 {built-in method builtins.sorted}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
"""

测试效率 timeit cProfile的更多相关文章

  1. 测试效率加倍提升!shell 高阶命令快来 get 下!

    背景 目前大部分的项目都是部署在Linux系统上,作为测试,掌握常用Linux命令是必须的技能.很多的工作了好几年的测试人员可能还只会简单的ls.cd.cat等等这些命令,这些命令是可以应付工作的大部 ...

  2. Charles中使用Rewrite提高测试效率

    上次给大家演示了Charles中通过Map Local功能来提高测试效率,Charles还有另外一个强大的功能,Rewrite,这次也给大家演示一下. Charles中的Rewrite功能非常强大,可 ...

  3. 数据摘要算法的测试效率(SHA、MD5和CRC32)

    1.算法概述 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名.数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密.数据摘要算法也被称为哈希(H ...

  4. 专注于提高“人肉测试”效率,Bugtags已完成600万元天使轮融资

    导语:近日,专注于移动测试的缺陷发现及管理工具“Bugtags”创始人张磊独家透露,Bugtags已完成600万元天使轮投资,投资方为高捷资本. 近日,专注于移动测试的缺陷发现及管理工具“Bugtag ...

  5. Charles中使用Map Local提高测试效率

    书接上回,上次说到Charles中可以使用修改返回值来模拟接口返回,这次我们来说一下Charles中另外一个强大的功能. 我们用手机连接Charles,具体可以参考上一篇<借助Charles来测 ...

  6. java 20 -10 字节流四种方式复制mp3文件,测试效率

    电脑太渣,好慢..反正速率是: 高效字节流一次读写一个字节数组 > 基本字节流一次读写一个字节数组 > 高效字节流一次读写一个字节 > 基本字节流一次读写一个字节 前两个远远快过后面 ...

  7. Java基础知识强化之IO流笔记30:字节流4种方式复制mp4并测试效率

    1. 需求:把e:\\哥有老婆.mp4 复制到当前项目目录下的copy.mp4中 字节流四种方式复制文件: • 基本字节流一次读写一个字节 • 基本字节流一次读写一个字节数组 • 高效字节流一次读写一 ...

  8. SQLSERVER语句 in和exists哪个效率高本人测试证明

    SQLSERVR语句 in和exists哪个效率高本人测试证明 最近很多人讨论in和exists哪个效率高,今天就自己测试一下 我使用的是客户的数据库GPOSDB(已经有数据) 环境:SQLSERVE ...

  9. in和exists哪个效率高本人测试证明

    in和exists哪个效率高本人测试证明 SQLSERVR语句 in和exists哪个效率高自己测试本人测试证明 最近很多人讨论in和exists哪个效率高,今天就自己测试一下 我使用的是客户的数据库 ...

随机推荐

  1. java中的对象和类

    1.类:类是一个模板,它描述一类对象的行为和状态. 一个类可以包含以下类型变量: 局部变量:在方法.构造方法或者语句块中定义的变量被称为局部变量.变量声明和初始化都是在方法中,方法结束后,变量就会自动 ...

  2. zabbix 主动模式和被动模式配置文件对比

    1.主动模式: 在web上看zabbix available 是红色 [root@python ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agentd.conf ...

  3. 使用Android的OpenGL编写视频播放器

    Android自身有MediaPlayer播放器,为什么还要使用OpenGL?因为使用OpenGL可以实现更多的效果,比如对视频翻转一定角度,加任意特效,多视频合并播放等,类似“激萌”的APP应该就是 ...

  4. Oracle 创建函数

    Oracle创建函数的方法如下: CREATE OR REPLACE FUNCTION FunctionName ( --传入参数 para NCHAR ) RETURN NUMBER IS --函数 ...

  5. redis缓存穿透和缓存失效的预防和解决

    缓存穿透: 认识 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透. 解决办法: 对所 ...

  6. Linux—rm命令

    rm作用:用于删除一个文件或者目录,文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令.并且时刻清醒注意自己在哪个目录下面!! 命令格式:rm [选项] name 参数: -i 删除前 ...

  7. VB6 加载水晶报表例子

    VB6 加载水晶报表例子 先按照水晶报表组件 Crystal Reports,Business Objects,现已被SAP收购. 再添加引用 'Library: CRAXDRT 'C:\Progra ...

  8. 20155238 2016-2017-2 《Java程序设计》第三周学习总结

    教材学习内容总结 类定义使用class关键词,名称使用Cloths,建立实例运用New关键词 Clothes c1 = new Clothes(); = :制定参考名称参考某个对象 == :比较参考名 ...

  9. [2016北京集训试题6]mushroom-[bitset]

    Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的 ...

  10. 成都Uber优步司机奖励政策(4月22日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...