Py-spy:優(yōu)秀的 Python 程序性能監(jiān)控、分析器

py-spy是用于Python程序的性能監(jiān)控、分析器。它使你可以直觀地看到Python程序花費的時間,而無需重新啟動程序或以任何方式修改代碼。
py-spy的開銷非常低:為了最大化提高速度,它是用Rust編寫的,并且與配置的Python程序不在同一進程中運行。這意味著 py-spy 可以安全地用于生產(chǎn)環(huán)境的Python程序。
py-spy 可在 Linux,OSX,Windows 和 FreeBSD 上運行,并支持所有最新版本的CPython解釋器(2.3-2.7和3.3-3.8版)進行性能分析。
1.安裝
可以通過以下方式從 PyPI 安裝預(yù)構(gòu)建的二進制wheel文件:
pip install py-spy你也可以從 GitHub Release Page 下載預(yù)構(gòu)建的二進制文件。
GitHub Release Page: https://github.com/benfred/py-spy/releases
2.用法
py-spy 在命令行中進行工作,獲取你要從監(jiān)控的程序的PID或你要運行的python程序的文件。分別有三種分析方法 record,top 以及 dump:
record
py-spy支持使用record命令將配置文件記錄到文件中。例如,您可以通過執(zhí)行以下操作來生成python進程的熱力圖:
py-spy record -o profile.svg --pid 12345
# OR
py-spy record -o profile.svg -- python myprogram.py它將生成一個交互式SVG文件,如下所示:

你可以使用參數(shù) --format 更改文件格式。請參閱參考資料:py-spy record --help 以獲取有關(guān)其他選項的信息,包括更改采樣率,僅包含GIL的線程進行過濾,對本機C擴展進行概要分析,顯示線程ID,概要分析子進程等。
Top
Top顯示了在python程序中花費最多時間的函數(shù)的實時視圖,類似于Unix top命令。使用以下命令運行:
py-spy top --pid 12345
# OR
py-spy top -- python myprogram.py
將顯示你的python程序的實時函數(shù)消耗:

Dump
py-spy 還可以使用 dump命令顯示每個 python 線程的當(dāng)前調(diào)用堆棧:
py-spy dump --pid 12345這會將每個線程的調(diào)用堆棧以及其他一些基本進程信息轉(zhuǎn)發(fā)到控制臺:
對于需要一個調(diào)用堆棧來確定python程序掛在何處的情況,這很有用。該命令還可以通過設(shè)置 --locals 標(biāo)志來打印出與每個堆棧幀關(guān)聯(lián)的局部變量。

近期閱讀學(xué)習(xí)推薦:
如何找到我:
