python性能调谐器
ppt的Python项目详细描述
PPT-Python性能调谐器
ppt
是调整Python程序性能的工具
安装
pip install ppt
示例
计时
importpptimporttimeif__name__=='__main__':for_inrange(10):ppt.time('big')time.sleep(0.5)# Big computationppt.time('medium')time.sleep(0.3)# Medium computationppt.time('fast')time.sleep(0.01)# Fast computation# Stop current timingppt.stop()# Print current timingsppt.summary()# Detailed statistics from pstatsppt.stats()
输出
big: 40 function calls in 5.006 seconds
medium: 40 function calls in 3.003 seconds
fast: 40 function calls in 0.101 seconds
********** big **********
40 function calls in 5.006 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
10 5.005 0.501 5.005 0.501 {built-in method time.sleep}
10 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:42(time)
10 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:17(stop)
10 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
********** medium **********
40 function calls in 3.003 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
10 3.003 0.300 3.003 0.300 {built-in method time.sleep}
10 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:42(time)
10 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:17(stop)
10 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
********** fast **********
40 function calls in 0.101 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
10 0.101 0.010 0.101 0.010 {built-in method time.sleep}
9 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:42(time)
10 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:17(stop)
1 0.000 0.000 0.000 0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:53(stop)
10 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
绘制
下面启动visdom服务器并绘制4行随机样本。
importpptimportrandom,timeif__name__=='__main__':ppt.plot(1)ppt.plot(1)ppt.plot(1)ppt.plot(1)foriinrange(10):forsessionin['a','b','c','d']:time.sleep(0.2)ppt.plot(random.random(),session)ppt.close()