目錄
python -m cprofile [-o output_file] [-s sort_order] (-m module | myscript.py)
-o
將結果輸出到檔案而不是stdout
-s
排序狀態,選擇那些引數排序,常用'tottime'
-m
作為乙個模組而不是指令碼, python3.7的cprofile中有,python3.8的profile有
cprofile的結果很長,可以考慮使用line_profile
逐行的python程式效能分析,
安裝git clone .git
或pip install line_profiler
kernprof -l -v script_to_profile.py
在script_to_profile.py檔案中,對想要分析的函式新增裝飾器
@profile
def slow_function(a, b, c):
...
不加-v
引數會將結果儲存在script_to_profile.py.lprof
檔案中,使用python -m line_profiler script_to_profile.py.lprof
可以檢視。
python程式的記憶體監控
安裝:pip install -u memory_profiler
使用方法類似於line_profiler.
整體監控: htop
i/o操作: iotop
硬碟資源:df展示每個分割槽,du每個檔案,-h引數human-readable
記憶體使用:free
開啟檔案:lsof
網路連線與配置: ss
網路使用: nethogs和iftop
python如何分析程式效能
when use profiler?有時候你覺得程式執行很慢,想對程式進行優化,但是你又不知道哪部分程式入手,這時候你就需要對程式整體效能進行分析,看看速度慢主要是哪部分程式導致的 why use cprofile?cprofile,乙個python程式效能分析模組。其實python有兩個profi...
Python內建型別程式效能分析
timeit模組可以用來測試一小段python 的執行速度。class timeit.timer stmt pass setup pass timer timer是測量小段 執行速度的類。stmt引數是要測試的 語句 statment setup引數是執行 時需要的設定 timer引數是乙個定時器函...
golang程式效能分析
vegeta是乙個用go語言編寫的多功能的http負載測試工具,提供命令列工具和開發包。安裝見vegeta 說明。usage vegeta global flags command flags global flags cpus int 使用cup的數量 預設4 個 profile string e...