這3個(gè)Python實(shí)時(shí)可視化工具包來幫你了解性能瓶頸
前言
Python中的日志模塊可用于跟蹤代碼的事件,并可用于確定代碼崩潰的原因。有效地使用記錄器還可以跟蹤代碼片段的時(shí)間復(fù)雜度。日志記錄可能很有用,但它技術(shù)性太強(qiáng),需要適當(dāng)?shù)膶?shí)現(xiàn)。在本文中,我們將討論3個(gè)這樣的開源的Python庫,它們可以幫助開發(fā)人員在幾行代碼中可視化程序的執(zhí)行。
一、Pyheat
Pyheat 是一個(gè)開源的 Python 庫,幫助開發(fā)人員獲得代碼執(zhí)行的逐行時(shí)間分布。Pyheat不是以表格格式顯示,而是用熱圖表示運(yùn)行每行代碼所需的時(shí)間。
Pyheat 可以使用從 PyPl 安裝
pip install py-heat
引入包
from pyheat import PyHeat
用法
Pyheat可用于為Python模塊的每行代碼生成時(shí)間編號的熱圖。將Python文件的路徑作為參數(shù)傳遞給PyHeat函數(shù)。
ph = PyHeat('merge_sort.py')
ph.create_heatmap()
ph.show_heatmap()
上面提到的代碼生成了一個(gè)熱圖,表示 在merge_sort.py 模塊中運(yùn)行每一行代碼所需的時(shí)間(秒)。

從上面的熱圖來看,雖然第17行中的循環(huán)需要花費(fèi)大部分時(shí)間(7秒)來執(zhí)行。熱圖有助于開發(fā)人員識別花費(fèi)大量時(shí)間執(zhí)行的代碼片段,這些代碼片段可能會進(jìn)一步優(yōu)化。
更多詳情:
https://github.com/csurfer/pyheat
二、Heartrate
Heartrate 是一個(gè)開源的 Python 庫,提供 Python 程序執(zhí)行的實(shí)時(shí)可視化。它提供了一行一行的執(zhí)行可視化,每個(gè)行的執(zhí)行次數(shù)由數(shù)字決定。它在瀏覽器的單獨(dú)窗口中顯示代碼的執(zhí)行情況。
Heartrate 可以通過以下方式從PyPl安裝:
pip install heartrate
用法
導(dǎo)入包(import heartrate)后,請使用heartrate.trace(browser=True)函數(shù),該函數(shù)將打開一個(gè)瀏覽器窗口,顯示調(diào)用trace()的文件的可視化效果。
在執(zhí)行代碼時(shí),瀏覽器中會彈出一個(gè)窗口,如果現(xiàn)在你可以按照 http://localhost:9999 觀察執(zhí)行的輸出可視化。

每行最左邊的數(shù)字表示執(zhí)行特定行的次數(shù)。條形圖顯示了最近被點(diǎn)擊的線條-較長的條形圖表示點(diǎn)擊次數(shù)較多,較淺的顏色表示點(diǎn)擊次數(shù)較多。它還顯示了一個(gè)活動堆棧跟蹤。
更多詳情:
https://github.com/alexmojaki/heartrate
三、Snoop
Snoop 是另一個(gè)可以用作調(diào)試工具的包。Snoop 幫助你識別局部變量的值并跟蹤程序的執(zhí)行。Snoop 主要用作一種調(diào)試工具,用于找出 Python 代碼為什么沒有執(zhí)行你認(rèn)為應(yīng)該執(zhí)行的操作。
所有這一切都是可能的,只需在你想要跟蹤的函數(shù)之前使用 snoop 裝飾器。
可以使用以下方法從 PyPl 安裝 Snoop 庫:
pip install snoop
用法

更多詳情:
https://github.com/alexmojaki/snoop
結(jié)論
在本文中,我們介紹了3個(gè)庫,它們可以用來可視化Python代碼的執(zhí)行。這些庫幫助開發(fā)人員深入挖掘代碼,發(fā)現(xiàn)并理解性能瓶頸,只需添加幾行代碼即可實(shí)現(xiàn)。
到此這篇關(guān)于這3個(gè)Python實(shí)時(shí)可視化工具包來幫你了解性能瓶頸的文章就介紹到這了,更多相關(guān)Python實(shí)時(shí)可視化工具包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用python實(shí)現(xiàn)冒泡排序算法實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Django一小時(shí)寫出賬號密碼管理系統(tǒng)
這篇文章主要介紹了Django一小時(shí)寫出賬號密碼管理系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
pytorch 中pad函數(shù)toch.nn.functional.pad()的用法
今天小編就為大家分享一篇pytorch 中pad函數(shù)toch.nn.functional.pad()的用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python進(jìn)程池實(shí)現(xiàn)的多進(jìn)程文件夾copy器完整示例
這篇文章主要介紹了python進(jìn)程池實(shí)現(xiàn)的多進(jìn)程文件夾copy器,結(jié)合完整實(shí)例形式分析了Python基于多進(jìn)程與進(jìn)程池的文件操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-11-11
Python實(shí)現(xiàn)隨機(jī)取一個(gè)矩陣數(shù)組的某幾行
今天小編就為大家分享一篇Python實(shí)現(xiàn)隨機(jī)取一個(gè)矩陣數(shù)組的某幾行,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級Cache設(shè)置
這篇文章主要介紹了Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級Cache設(shè)置,Python是最具人氣的Python web框架,需要的朋友可以參考下2015-07-07

