0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Py-spy:用于Python 程序性能監(jiān)控、分析器

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-16 11:50 ? 次閱讀

py-spy是用于Python程序的性能監(jiān)控、分析器。它使你可以直觀地看到Python程序花費的時間,而無需重新啟動程序或以任何方式修改代碼。

py-spy的開銷非常低:為了最大化提高速度,它是用Rust編寫的,并且與配置的Python程序不在同一進(jìn)程中運行。這意味著 py-spy 可以安全地用于生產(chǎn)環(huán)境的Python程序。

py-spy 可在 Linux,OSX,Windows 和 FreeBSD 上運行,并支持所有最新版本的CPython解釋器(2.3-2.7和3.3-3.8版)進(jìn)行性能分析。

1.安裝

可以通過以下方式從 PyPI 安裝預(yù)構(gòu)建的二進(jìn)制wheel文件:

pip install py-spy

你也可以從 GitHub Release Page 下載預(yù)構(gòu)建的二進(jìn)制文件,如果網(wǎng)絡(luò)無法連接GitHub,

2.用法

py-spy 在命令行中進(jìn)行工作,獲取你要從監(jiān)控的程序的PID或你要運行的python程序的文件。分別有三種分析方法 reco****rdtop 以及 dump

record

py-spy支持使用record命令將配置文件記錄到文件中。例如,您可以通過執(zhí)行以下操作來生成python進(jìn)程的熱力圖:

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的線程進(jìn)行過濾,對本機(jī)C擴(kuò)展進(jìn)行概要分析,顯示線程ID,概要分析子進(jìn)程等。

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)用堆棧以及其他一些基本進(jìn)程信息轉(zhuǎn)發(fā)到控制臺:

對于需要一個調(diào)用堆棧來確定python程序掛在何處的情況,這很有用。該命令還可以通過設(shè)置 --locals 標(biāo)志來打印出與每個堆棧幀關(guān)聯(lián)的局部變量。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3719

    瀏覽量

    80356
  • 分析器
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    12455
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84073
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    226

    瀏覽量

    6497
收藏 人收藏

    評論

    相關(guān)推薦

    CCS中性能分析器profile的使用?

    專家好, CCS調(diào)試程序過程中,需要分析下各函數(shù)的執(zhí)行時間,CCS中提供了性能分析器profile Q1:性能
    發(fā)表于 06-21 19:20

    OmniBER OTN 2.5 Gb/s通信性能分析器

    OmniBER OTN 2.5 Gb/s通信性能分析器
    發(fā)表于 07-10 16:45

    網(wǎng)絡(luò)分析器,網(wǎng)絡(luò)分析器原理是什么?

    網(wǎng)絡(luò)分析器,網(wǎng)絡(luò)分析器原理是什么? 網(wǎng)絡(luò)分析器   具有發(fā)現(xiàn)并解決各種故障特性的硬件或軟件設(shè)備
    發(fā)表于 03-22 11:25 ?1033次閱讀

    靜態(tài)代碼分析器

    Fortify的靜態(tài)代碼分析器(Static Code Analyzer,SCA)是組成Fortify 360的三個分析器之一。SCA工作在開發(fā)階段,以用于分析應(yīng)用
    發(fā)表于 04-07 20:32 ?22次下載

    7個好習(xí)慣快速提升Python程序性能

    使用局部變量替換模塊名字空間中的變量,例如 ls = os.linesep。一方面可以提高程序性能,局部變量查找速度更快;另一方面可用簡短標(biāo)識符替代冗長的模塊變量,提高可讀性。
    發(fā)表于 07-07 10:05 ?917次閱讀
    7個好習(xí)慣快速提升<b class='flag-5'>Python</b><b class='flag-5'>程序性能</b>

    利用矢量硬件如何提高應(yīng)用程序性能

    本次會議演示了識別和修改代碼以利用矢量硬件的過程如何提高應(yīng)用程序性能。
    的頭像 發(fā)表于 05-31 11:46 ?1222次閱讀

    使用Intel圖形性能分析器從游戲開發(fā)中獲得最佳性能

    使用英特爾?圖形性能分析器,從游戲開發(fā)中獲得最佳性能。
    的頭像 發(fā)表于 11-08 06:49 ?2532次閱讀

    英特爾圖形性能分析器(GPA)中的實時分析工具介紹

    Seth提供圖形監(jiān)視,系統(tǒng)分析器和HUD。 這些組件構(gòu)成了英特爾圖形性能分析器中的實時分析工具。
    的頭像 發(fā)表于 11-07 06:53 ?5042次閱讀

    用于Android的英特爾GPA系統(tǒng)分析器工具介紹

    描述:本演示重點深入介紹用于Android的英特爾?GPA系統(tǒng)分析器和幀分析器工具
    的頭像 發(fā)表于 11-06 06:57 ?3364次閱讀

    了解CPI對分析程序性能的意義

    本小節(jié)講述為什么使用 CPI 分析程序性能的意義。如果已經(jīng)非常了解 CPI 對分析程序性能的意義,可以跳過本小節(jié)的閱讀。
    的頭像 發(fā)表于 12-15 10:30 ?9779次閱讀

    LabVIEW應(yīng)用程序性能瓶頸的解決

    了解如何識別和解決LabVIEW應(yīng)用程序中的性能瓶頸。使用內(nèi)置工具和VI分析器,您可以監(jiān)視VIs的內(nèi)存使用情況和執(zhí)行時間,以確定導(dǎo)致應(yīng)用程序性能下降的代碼部分。
    發(fā)表于 03-29 14:03 ?8次下載
    LabVIEW應(yīng)用<b class='flag-5'>程序</b>中<b class='flag-5'>性能</b>瓶頸的解決

    LogAnalyzer(日志分析器)輔助應(yīng)用程序簡析

    LogAnalyzer(日志分析器)是HostMonitor的一個輔助應(yīng)用程序,它包含在高級主機(jī)監(jiān)視軟件包中。
    的頭像 發(fā)表于 09-14 09:56 ?1965次閱讀

    Python-寫個可轉(zhuǎn)債分析器

    Python寫個可轉(zhuǎn)債分析器
    的頭像 發(fā)表于 02-16 15:13 ?1180次閱讀
    <b class='flag-5'>Python</b>-寫個可轉(zhuǎn)債<b class='flag-5'>分析器</b>

    python程序組成

    python模塊對應(yīng)python程序文件,每個python文件都是一個模塊。 模塊a.py導(dǎo)入模塊b.
    的頭像 發(fā)表于 02-21 14:45 ?932次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>程序</b>組成

    py-spy用于Python程序性能監(jiān)控、分析器

    py-spy用于Python程序性能監(jiān)控分析器
    的頭像 發(fā)表于 11-01 10:13 ?790次閱讀
    <b class='flag-5'>py-spy</b>:<b class='flag-5'>用于</b><b class='flag-5'>Python</b><b class='flag-5'>程序</b>的<b class='flag-5'>性能</b><b class='flag-5'>監(jiān)控</b>、<b class='flag-5'>分析器</b>