py-spy是用于Python程序的性能監(jiān)控、分析器。它使你可以直觀地看到Python程序花費(fèi)的時(shí)間,而無(wú)需重新啟動(dòng)程序或以任何方式修改代碼。
py-spy的開(kāi)銷(xiāo)非常低:為了最大化提高速度,它是用Rust編寫(xiě)的,并且與配置的Python程序不在同一進(jìn)程中運(yùn)行。這意味著 py-spy 可以安全地用于生產(chǎn)環(huán)境的Python程序。
py-spy 可在 Linux,OSX,Windows 和 FreeBSD 上運(yùn)行,并支持所有最新版本的CPython解釋器(2.3-2.7和3.3-3.8版)進(jìn)行性能分析。
1.安裝
可以通過(guò)以下方式從 PyPI 安裝預(yù)構(gòu)建的二進(jìn)制wheel文件:
pip install py-spy
你也可以從 GitHub Release Page 下載預(yù)構(gòu)建的二進(jìn)制文件,如果網(wǎng)絡(luò)無(wú)法連接GitHub,
2.用法
py-spy 在命令行中進(jìn)行工作,獲取你要從監(jiān)控的程序的PID或你要運(yùn)行的python程序的文件。分別有三種分析方法 reco****rd ,top 以及 dump :
record
py-spy支持使用record
命令將配置文件記錄到文件中。例如,您可以通過(guò)執(zhí)行以下操作來(lái)生成python進(jìn)程的熱力圖:
py-spy record -o profile.svg --pid 12345
# OR
py-spy record -o profile.svg -- python myprogram.py
它將生成一個(gè)交互式SVG文件,如下所示:
你可以使用參數(shù) --format 更改文件格式。請(qǐng)參閱參考資料:py-spy record --help
以獲取有關(guān)其他選項(xiàng)的信息,包括更改采樣率,僅包含GIL的線程進(jìn)行過(guò)濾,對(duì)本機(jī)C擴(kuò)展進(jìn)行概要分析,顯示線程ID,概要分析子進(jìn)程等。
Top
Top顯示了在python程序中花費(fèi)最多時(shí)間的函數(shù)的實(shí)時(shí)視圖,類(lèi)似于Unix top命令。使用以下命令運(yùn)行:
py-spy top --pid 12345
# OR
py-spy top -- python myprogram.py
將顯示你的python程序的實(shí)時(shí)函數(shù)消耗:
Dump
py-spy 還可以使用 dump命令顯示每個(gè) python 線程的當(dāng)前調(diào)用堆棧:
py-spy dump --pid 12345
這會(huì)將每個(gè)線程的調(diào)用堆棧以及其他一些基本進(jìn)程信息轉(zhuǎn)發(fā)到控制臺(tái):
對(duì)于需要一個(gè)調(diào)用堆棧來(lái)確定python程序掛在何處的情況,這很有用。該命令還可以通過(guò)設(shè)置 --locals 標(biāo)志來(lái)打印出與每個(gè)堆棧幀關(guān)聯(lián)的局部變量。
-
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82943 -
分析器
+關(guān)注
關(guān)注
0文章
93瀏覽量
12722 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86668 -
Rust
+關(guān)注
關(guān)注
1文章
234瀏覽量
7084
發(fā)布評(píng)論請(qǐng)先 登錄
CCS中性能分析器profile的使用?
網(wǎng)絡(luò)分析器,網(wǎng)絡(luò)分析器原理是什么?
靜態(tài)代碼分析器
7個(gè)好習(xí)慣快速提升Python程序性能

利用矢量硬件如何提高應(yīng)用程序性能
使用Intel圖形性能分析器從游戲開(kāi)發(fā)中獲得最佳性能
英特爾圖形性能分析器(GPA)中的實(shí)時(shí)分析工具介紹
用于Android的英特爾GPA系統(tǒng)分析器工具介紹
了解CPI對(duì)分析程序性能的意義
LabVIEW應(yīng)用程序中性能瓶頸的解決

評(píng)論