中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Heartrate:如追綜心跳般實(shí)時動態(tài)可視化監(jiān)測Python程序運(yùn)行

2019-08-21    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

Python 是一門非常受歡迎的編程語言,其靈活易用的特性使其在 web 應(yīng)用、數(shù)據(jù)分析等方面有廣泛的應(yīng)用。但是 Python 有一個受到詬病的特點(diǎn)——運(yùn)行速度低下。因此,Python 開發(fā)者需要經(jīng)常對程序進(jìn)行監(jiān)控和調(diào)試,使代碼運(yùn)行變得高效。近日,一位開發(fā)者開源了一個 Python 工具,用戶可以實(shí)時動態(tài)地監(jiān)控 Python 程序的運(yùn)行情況,逐行追蹤代碼的運(yùn)行時間,而且整個過程是可視化的。

項(xiàng)目地址:https://github.com/alexmojaki/heartrate

Heartate——如監(jiān)測心率般追蹤程序運(yùn)行

Heartrate 是一個 Python 的工具庫,可以實(shí)時可視化 Python 程序的執(zhí)行過程。監(jiān)控運(yùn)行中的 Python 程序如圖:

 

 

如圖所示,左側(cè)數(shù)字表示每行代碼被觸發(fā)的次數(shù)。長方框表示最近被觸發(fā)的代碼行——方框越長表示觸發(fā)次數(shù)越多,顏色越淺表示最近被觸發(fā)次數(shù)越多。

雖然追蹤每行代碼的觸發(fā)次數(shù)是一個方法,但是要是能計(jì)算每次觸發(fā)代碼的執(zhí)行時間就好了。這樣能夠更好地說明哪行代碼是效率瓶頸。by 思

得益于 executing (https://github.com/alexmojaki/executing) 庫,當(dāng)前被執(zhí)行的調(diào)用以高亮顯示。

實(shí)時堆棧追蹤(stacktrace)如下所示:

 

 

功能

該工具可以:

啟動程序追蹤

在線程中啟動服務(wù)器

打開顯示 trace() 被調(diào)用的文件可視化圖的瀏覽器窗口

在文件視圖中,堆棧追蹤位于底部。而在堆棧追蹤中,用戶可以點(diǎn)擊正在追蹤文件的堆棧條目,從而在該代碼行打開文件的可視化圖。

trace 只追蹤調(diào)用它的線程。若要追蹤多線程,用戶必須在每個線程都予以調(diào)用,并且每次的端口也不同。

如何設(shè)置需要監(jiān)測的程序

files 確定了除調(diào)用的 trace 之外其他需要追蹤的文件。files 必須是可調(diào)用的,并接受一個參數(shù):文件路徑,同時如果應(yīng)該追蹤該文件,則需要返回 True。為方便起見,這位開發(fā)者提供了以下函數(shù):

files.all:追蹤所有文件;

files.path_contains(substrings):追蹤路徑中包含任何給定子字符串的所有文件;

files.contains_regex(pattern):追蹤自身包含給定正則表達(dá)式(regex)的所有文件,所以用戶可以在源代碼中標(biāo)記所追蹤的文件,如添加注釋。

默認(rèn)情況下追蹤包含注釋 # heartrate 的文件(空格可選)。

如果用戶要追蹤多個文件,則可通過以下兩種方式得到它們的可視化頁面:

在堆棧追蹤中,用戶點(diǎn)擊正在追蹤的堆棧條目,則可以打開頁面并跳轉(zhuǎn)至堆棧條目;

跳轉(zhuǎn)至 http://localhost:9999/ 網(wǎng)站的索引頁,從而查看追蹤文件列表。

host:服務(wù)器的 HTTP host。若要運(yùn)行可從任何地方訪問的遠(yuǎn)程服務(wù)器,使用'0.0.0.0'。默認(rèn)為'127.0.0.1'。

port:服務(wù)器的 HTTP 端口。默認(rèn)為 9999。

browser:若為 True,則自動打開顯示文件(trace 被調(diào)用)可視化圖的瀏覽器標(biāo)簽。默認(rèn)為 False。

安裝

pip install --user heartrate

支持 Python 3.5 以上版本。

其他代碼可視化工具

機(jī)器之心還發(fā)現(xiàn)了一個可以可視化代碼執(zhí)行過程的網(wǎng)站,名為 Pythontutor。和本文的 Heartrate 不同,該網(wǎng)站更多的是可視化數(shù)據(jù)在程序中的變化過程。

可視化的過程如下:

 

 

用戶還可以在網(wǎng)站上編輯修改代碼,觀察運(yùn)行過程中數(shù)據(jù)的變化。同時該網(wǎng)站還有 Java 等其他語言的版本。

網(wǎng)站地址:http://www.pythontutor.com (http://www.pythontutor.com/)

參考鏈接:https://github.com/alexmojaki/heartrate

標(biāo)簽: Python 數(shù)據(jù)處理

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:從數(shù)據(jù)結(jié)構(gòu)到算法:圖網(wǎng)絡(luò)方法初探

下一篇:2020年及未來編程趨勢預(yù)測:Rust將成主流,JavaScript依然強(qiáng)勢