import cProfile
import time
def run_time(func):
def run(*args):
t1 = time.time()
func(*args)
t2 = time.time()
print('run time:{}'.format(t2 - t1))
return run # 这里返回需要函数名即可,会自动调用
def is_prime(num):
if num < 2:
return False
elif num == 2:
return True
else:
for i in range(2, num):
if num % i == 0:
return False
else:
return True
@run_time
def prime_num(max_num):
for i in range(2, max_num):
is_prime(i)
cProfile.run('prime_num(30000)')
ncalls :调用总次数
tottime:函数内部运行总时间
percall:是tottime除以ncalls,一个函数每次调用平均消耗时间
cumtime:之前所有子函数消费时间的累计和
filename:lineno(function):被分析函数所在文件名、行号、函数名