写代码的时候,我们可能想知道python的执行效率如何,有如下几种方法可以计算python程序执行时间。
1、方法1
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).seconds
2、方法 2
start = time.time()
run_fun()
end = time.time()
print end-start
3、方法3
start = time.clock()
run_fun()
end = time.clock()
print end-start
方法1和方法2都包含了其他程序使用CPU的时间,是程序开始到程序结束的运行时间。
方法3算只计算了程序运行的CPU时间
4、方法4
import cProfile
import pstats
...
def test_func():
...
...
if __name__=='__main__':
cProfile.run("test_func()", filename="runtime_test.out", sort="cumulative") # test_func是指要测试的函数,性能测试结果保存到runtime_test.out文件
p = pstats.Stats("runtime_test.out")
p.strip_dirs().sort_stats("cumulative", "name").print_stats(10) # 在屏幕打印性能测试结果
cProfile和pstats都是python自带的模块,上面这种性能测试方法会将运行过的每个函数的单词执行时间、总执行次数、总耗时都统计出来,可以很方便地分析性能瓶颈在哪里。
作者:duqi