申请书范文网,分享全网优秀范文,学习好帮手!
申请书范文网 > python: 测量代码运行时间

python: 测量代码运行时间

时间:2022-03-16 02:59:23

相关推荐

python: 测量代码运行时间

测量代码运行所需时间主要有两种方法,使用time.time(),这是通用的方法,或者使用timeit.timeit()测量小的代码段。

1time()

这是通用方法:

import timedef powers(limit):return [x**2 for x in range(limit)]start = time.time()powers(5000000)end = time.time()print(end-start) # 1.0257349014282227 (秒)

或者将测量时间的相关代码放到一个高阶函数measure_runtime中,接受函数作为参数,可以测量任意函数运行所需时间:

import timedef measure_runtime(func):time_start = time.time()func()time_end = time.time()print(time_end - time_start)def powers(limit):return [x**2 for x in range(limit)]measure_runtime(lambda: powers(5000000)) # 1.006134033203125 秒

2timeit()

此函数用于测量小的代码段运行所需时间:

此函数有5个参数:

timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000, globals=None)

timeit.timeit(stmt='', setup='', timer=time.perf_counter, number=1000000, globals=None)

stmt是待测代码段,setup作用类似于初始化代码段中变量,在stmt之前执行,number如果不设置,那么stmt默认执行1000000即一百万次,如果stmt执行一次需要 1 秒,一百万秒是非常长的时间,所以number参数一般应该设置。

用法:

import timeitprint(timeit.timeit("[x**2 for x in range(5000000)]", number=4))print(timeit.timeit("list(map(lambda x: x**2, range(100)))", setup="", number=10000))print(timeit.timeit(stmt='while x < 1000000: x += 1', setup='x = 0', number = 10000))

运行结果:

4.101922899999408 # number = 4, 测了4 次,共用了4 秒0.236301199998706580.03228399999898102

timeit.timeit()除以number, 将得到stmt执行一次所需的平均时间

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。