python程式效能分析

2022-08-11 06:54:12 字數 1012 閱讀 5145

目錄

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 .gitpip 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...