程式分析可以系統性地分析程式的執行速度、記憶體使用情況等。
cProfile是Python的分析器,用於測量程式的執行時間和程式內各個函式呼叫消耗的時間。
import cProfile
def add():
total = 0
for i in range(1, 10000001):
total += i
cProfile.run('add()')
'''
4 function calls in 0.276 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.276 0.276 <string>:1(<module>)
1 0.276 0.276 0.276 0.276 web_test.py:8(add)
1 0.000 0.000 0.276 0.276 {built-in method builtins.exec}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
'''
ncalls:對函式的呼叫次數
tottime:該函式花費的總時間,注意不包括在子函式中花費的時間
percall:tottime除以呼叫次數
cumtime:在該函式及其子函式內花費的累計時間
percall:cumtime除以呼叫次數
filename:lineno(function):該函式所在的檔案及行號