新聞中心
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
這篇文章主要介紹python看執(zhí)行過(guò)程的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
對(duì)于一些剛?cè)腴T Python 的朋友來(lái)說(shuō),代碼稍微復(fù)雜些就難以搞懂代碼內(nèi)部到底是怎么運(yùn)行的了,而且有時(shí)一運(yùn)行就報(bào)錯(cuò),難以一下發(fā)現(xiàn)錯(cuò)誤,只會(huì)用 Print 去慢慢找異常的地方,效率很低下。
所以對(duì)程序進(jìn)行監(jiān)控和調(diào)試很重要。今天就給大家分享一個(gè)由國(guó)外大神制作的 Python 神工具,可以實(shí)時(shí)動(dòng)態(tài)地監(jiān)控 Python 程序的運(yùn)行情況,逐行追蹤代碼的運(yùn)行時(shí)間,整個(gè)過(guò)程是可視化的,這就很贊了啊,能一清二楚地了解程序運(yùn)行情況,有異常時(shí)也能快速找到,節(jié)省大量時(shí)間。
項(xiàng)目地址:https://github.com/alexmojaki/heartrate
Heartate——如監(jiān)測(cè)心率般追蹤程序運(yùn)行
這個(gè)工具庫(kù)叫 Heartrate,可以實(shí)時(shí)可視化 Python 程序的執(zhí)行過(guò)程。監(jiān)控運(yùn)行中的 Python 程序如圖:
如圖所示,左側(cè)數(shù)字表示每行代碼被觸發(fā)的次數(shù)。長(zhǎng)方框表示最近被觸發(fā)的代碼行——方框越長(zhǎng)表示觸發(fā)次數(shù)越多,顏色越淺表示最近被觸發(fā)次數(shù)越多。
雖然追蹤每行代碼的觸發(fā)次數(shù)是一個(gè)方法,但是要是能計(jì)算每次觸發(fā)代碼的執(zhí)行時(shí)間就好了。這樣能夠更好地說(shuō)明哪行代碼是效率瓶頸。
得益于 executing (https://github.com/alexmojaki/executing) 庫(kù),當(dāng)前被執(zhí)行的調(diào)用以高亮顯示。
實(shí)時(shí)堆棧追蹤(stacktrace)如下所示:
功能
該工具可以:
·啟動(dòng)程序追蹤
·在線程中啟動(dòng)服務(wù)器
·打開(kāi)顯示 trace 被調(diào)用的文件可視化圖的瀏覽器窗口
在文件視圖中,堆棧追蹤位于底部。而在堆棧追蹤中,用戶可以點(diǎn)擊正在追蹤文件的堆棧條目,從而在該代碼行打開(kāi)文件的可視化圖。
trace 只追蹤調(diào)用它的線程。若要追蹤多線程,用戶必須在每個(gè)線程都予以調(diào)用,并且每次的端口也不同。
如何設(shè)置需要監(jiān)測(cè)的程序
files 確定了除調(diào)用的 trace 之外其他需要追蹤的文件。files 必須是可調(diào)用的,并接受一個(gè)參數(shù):文件路徑,同時(shí)如果應(yīng)該追蹤該文件,則需要返回 True。為方便起見(jiàn),這位開(kāi)發(fā)者提供了以下函數(shù):
·files.all:追蹤所有文件;
·files.path_contains(substrings):追蹤路徑中包含任何給定子字符串的所有文件;
·files.contains_regex(pattern):追蹤自身包含給定正則表達(dá)式(regex)的所有文件,所以用戶可以在源代碼中標(biāo)記所追蹤的文件,如添加注釋。
默認(rèn)情況下追蹤包含注釋 # heartrate 的文件(空格可選)。
如果用戶要追蹤多個(gè)文件,則可通過(guò)以下兩種方式得到它們的可視化頁(yè)面:
·在堆棧追蹤中,用戶點(diǎn)擊正在追蹤的堆棧條目,則可以打開(kāi)頁(yè)面并跳轉(zhuǎn)至堆棧條目;
·跳轉(zhuǎn)至 http://localhost:9999/ 網(wǎng)站的索引頁(yè),從而查看追蹤文件列表。
host:服務(wù)器的 HTTP host。若要運(yùn)行可從任何地方訪問(wèn)的遠(yuǎn)程服務(wù)器,使用'0.0.0.0'。默認(rèn)為'127.0.0.1'。
port:服務(wù)器的 HTTP 端口。默認(rèn)為 9999。
browser:若為 True,則自動(dòng)打開(kāi)顯示文件(trace 被調(diào)用)可視化圖的瀏覽器標(biāo)簽。默認(rèn)為 False。
安裝
pip install--user heartrate
支持 Python 3.5 以上版本。
其他代碼可視化工具
除了上面這個(gè)外,還有一個(gè)可以可視化代碼執(zhí)行過(guò)程的網(wǎng)站,名為Pythontutor。和本文的 Heartrate 不同,該網(wǎng)站更多的是可視化數(shù)據(jù)在程序中的變化過(guò)程。
可視化的過(guò)程如下:
用戶還可以在網(wǎng)站上編輯修改代碼,觀察運(yùn)行過(guò)程中數(shù)據(jù)的變化。
以上是python看執(zhí)行過(guò)程的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
分享名稱:python看執(zhí)行過(guò)程的方法-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://www.ef60e0e.cn/article/phcgd.html