import datetime
import time
time
as the float
format of ‘seconds’
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=31, tm_hour=1, tm_min=37,
tm_sec=36, tm_wday=2, tm_yday=31, tm_isdst=0)
time
返回程序运行的整个时间段中中CPU运行的时间
def cpu_run():
start = time.clock()
for i in range(1000):
j = i * 2
for k in range(j):
t = k
print(t)
end = time.clock()
print('CPU excution takes: ',end - start, 'seconds')
python3.8
就不再支持time.clock()
了
If python > 3.8
用 time.perf_counter()
替换
def cpu_run():
start = time.perf_counter()
for i in range(1000):
j = i * 2
for k in range(j):
t = k
print(t)
end = time.perf_counter()
print('CPU excution takes: ',end - start, 'seconds')
爬虫中常用,让程序暂停执行指定的秒数
time.sleep(2)
用结构化的时间组,表示本地时间
用字符串string表示时间
将本地时间列表转化为浮点数的秒来表示
将时间组时间转化为指定格式的String类
将String类时间转化为时间组格式
更改本地时区
用time来计算一下程序执行所耗时间
def run():
start = time.time()
for i in range(1000):
j = i * 2
for k in range(j):
t = k
print(t)
end = time.time()
print('This program excution takes: ',end - start, 'seconds')
start = time.perf_counter()
for i in range(1000):
j = i * 2
for k in range(j):
t = k
print(t)
end = time.perf_counter()
print('CPU excution takes: ',end - start, 'seconds')
此段代码CPU执行时间大概5秒
那么问题来了:
CPU真的执行了这么长时间么?
会不会有什么东西是我没考虑进去的呢?
仔细看一下,这段程序主要内容就是两个for循环,for循环执行计算的时候CPU肯定是在运行的
那么print()函数打印期间这个时间段的CPU执行时间有没有算进去?
带着疑问,我们进行第三次测试,此次我们去掉print(),直接让CPU完成整个for循环的计算:
因为去掉了print(),所以只剩下了完整的for循环,CPU可以连续执行
不必一遍for循环一边print()来回切换
连续执行的CPU还是很快的~
所以 ,以后写代码时,要精简不必要的开销,譬如经常使用print()