cProfile——Python性能分析工具


Python自帶了幾個性能分析的模塊:profile、cProfile和hotshot,使用方法基本都差不多,無非模塊是純Python還是用C寫的。本文介紹cProfile。

 例子

import time
def func1():
    sum = 0
    for i in range(1000000):
        sum += i
def func2():
    time.sleep(10)

func1()
func2()

運行

python -m cProfile del.py

運行結果

結果分析
    執行了6個函數,總共花費了10.138s,按着運行函數名字排序為結果輸出。

運行腳本

python -m cProfile -o del.out del.py

這里以模塊方式直接保存profile結果,可以進一步分析輸出結果,運行

python -c "import pstats; p=pstats.Stats('del.out'); p.print_stats()"

結果(隨機)

可以設置排序方式,例如以花費時間多少排序

python -c "import pstats; p=pstats.Stats('del.out'); p.sort_stats('time').print_stats()"

sort_stats支持以下參數:

calls, cumulative, file, line, module, name, nfl, pcalls, stdname, time

 

pstats模塊還支持交互式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM