您好,登錄后才能下訂單哦!
如何在python中使用cProfile性能測量工具?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
命令行:
cProfile -s tottime your_program.py
結果如下:
ncalls tottime percall cumtime percall filename:lineno(function) 66 0.001 0.000 11.850 0.180 base.py:228(micro_service) 66 0.003 0.000 11.849 0.180 tools.py:557(micro_service) 1056 0.001 0.000 11.073 0.010 connection.py:463(drain_events) 1056 0.015 0.000 11.072 0.010 connection.py:466(blocking_read) 1056 0.008 0.000 10.920 0.010 transport.py:233(read_frame) 3168 0.014 0.000 10.908 0.003 transport.py:370(_read) 3168 10.892 0.003 10.892 0.003 {method 'recv' of '_socket.socket' objects} 66 0.001 0.000 9.814 0.149 rpc.py:350(__call__) 66 0.001 0.000 8.395 0.127 rpc.py:329(result)
塊分析:
上面屬于文件分析,但是我們可能只對部分代碼感興趣,那么只需要在這部分代碼的前后加上下面這兩段代碼即可:
import cProfile cp = cProfile.Profile() cp.enable() YOUR CODE cp.disable() cp.print_stats()
結果與全代碼分析的類似,但是只包含你感興趣的部分。
行分析:
行分析需要安裝line_profiler:
pip install line_profiler
@profile def class_name() pass
然后在命令行輸入:
kernprof -l -v your_code.py -l 逐行分析 -v 立即查看結果
示例:
from cProfile import Profile as profile from pstats import Stats def (): p = profile() p.snapshot_stats() p.enable() p.disable() p.print_stats(2) # 按照調用累加總耗時累加排序,即將最耗時的函數最優先 p.dump_stats("call.log")
關于如何在python中使用cProfile性能測量工具問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。