比如:
list1 = [ 'aaa', 'bbb', 'ccc, 'ddd', 'eee' ] if x in list1: pass
想要监测系统在执行过程中,上面这条 if 语句执行消耗了多少时间,用 timeit 怎么查看?
![]() | 1 zhusimaji 2017-07-13 18:57:24 +08:00 via iPhone 使用 time 模块就好了 |
![]() | 2 ranleng 2017-07-13 20:25:00 +08:00 开头一时间 结束一时间 然后相减(?) |
![]() | 3 ech0x 2017-07-13 21:43:43 +08:00 via iPad 第一反应也是连个 time 相减 |
![]() | 5 4ever911 2017-07-13 21:57:47 +08:00 ![]() ipython %timeit 最简单了 |
![]() | 6 csuzhangxc 2017-07-13 22:46:59 +08:00 timeit.timeit("if x in list1: pass", "x='aaa'; list1=['aaa', 'bbb', 'ccc', 'ddd', 'eee']") |
![]() | 7 csuzhangxc 2017-07-13 22:50:23 +08:00 ![]() 官方文档:timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000) |
![]() | 8 csuzhangxc 2017-07-13 22:51:34 +08:00 你如果要看一次 timeit.timeit("if x in list1: pass", "x='aaa'; list1=['aaa', 'bbb', 'ccc', 'ddd', 'eee']", number=1) 不过一般不这样干吧。。。 |
9 yucongo 2017-07-14 00:42:49 +08:00 In [6]: %paste import timeit setup = "list1 = [ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ]" stmt = "if 'x' in list1: pass" t = timeit.Timer(stmt=stmt, setup=setup) n = 1 print("{0:.3f}".format(t.timeit(number=n)/n)) n = 10 print(t.timeit(number=n)/n) n = 10000 print(t.timeit(number=n)/n) n = 1000000 print(t.timeit(number=n)/n) ## -- End pasted text -- 0.000 1.3518072108809065e-06 8.570457728040992e-07 1.0187274455574879e-06 |
10 ridaliu 2017-07-15 23:15:35 +08:00 如果用 ipython 的话,可以开启自动监测运行时间的功能 |