最近在学数据结构与算法,复杂度分析后有一道题:*两次调用time.time()的结果之间的差,由于操作系统可能只是在这段时间的一部分中使用了cpu,经过的时间可能并不能反映出python代码使用cpu的实际时间,请寻找一种解决方案,精确的记录代码使用cpu时间 *
我的思路是 摒弃使用time.time()或者time.clock()相减的方法 如下
def fun1(num):
number = 0
for i in range(num):
number +=1
print(number)
start = time.time()
fun1(1000000)
end = time.time()
print(start-end)
nice的是python还有一个timeit库
直接将所需评估的代码块扔进去即可 代码如下
1-import timeit
2-timeit.timeit('[float(num)for num in range(100000)]',number = 10)
3-0.14644280699940282
第二行第一个参数是目标代码(以字符串形式输入),第二个number是执行此代码的次数,默认是10000
第三行输出为执行总时间
-----------------------------------------------------------------------------------5.13
没想到timeit还挺蠢,但你要计算的函数是自己创建的时候,要“from main import …”另外导入不然会报错如下图,而且函数里面变量要么有默认参数要么直接在里面计算,不能对函数输入新的变量。。。。有点菜
参考:https://blog.youkuaiyun.com/S_o_l_o_n/article/details/82421505