91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Python Profiling性能分析

發布時間:2021-12-01 15:57:12 來源:億速云 閱讀:190 作者:柒染 欄目:云計算

這期內容當中小編將會給大家帶來有關 如何進行Python Profiling性能分析 ,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

性能分析(Profiling)可用于分析程序的運行時間主要消耗在何處,以便有效優化程序的運行效率。

Profiling可分為兩步,一是運行程序收集程序不同部分運行時間的數據,二是數據的可視化和分析。

如何進行Python Profiling性能分析  

提示:   
下面介紹的方法主要針對類Linux系統,部分工具在Windows等系統  可能也能使用。

cProfilePython Profiling數據采集

Python的cProfile模塊可用于數據采集,適用于Python 2和Python 3。其調用方法很簡單:

import cProfile# 以下調用將運行函數somefunc(),并將相關數據記錄到log_file.pyprofcProfile.run('somefunc()', 'log_file.pyprof')

更多信息請參考Python Profiler文檔。

有些小程序也可以直接從命令行調用cProfile模塊執行[1]

python -m cProfile -o profile_data.pyprof script_to_profile.py

hotshot

hotshot是高性能的Profiling數據采集工具,其運行時對程序效率的影響很小,但會產生巨大的運行記錄,分析也比較慢。[2] Python 3中沒有hotshot。故如無特殊需求,請使用cProfile。

import hotshotprofiler = hotshot.Profile("hotshot.log")profiler.run('trackStereo.solveStereoNew()')

數據可視化

Gprof2Dot

如何進行Python Profiling性能分析  

如何進行Python Profiling性能分析

Gprof2Dot的輸出,經dot命令渲染后的圖片。

Gprof2Dot可將多種Profiler的數據轉成Graphviz可處理的圖像表述。配合dot命令,即可得到不同函數所消耗的時間分析圖。以處理cProfile的記錄為例[3]

# 運行程序記錄數據:# python -m cProfile -o profile_data.pyprof path/to/your/script arg1 arg2 # profile_data.pyprof是獲取的數據;dot命令需要安裝Graphviz才能用gprof2dot.py -f pstats profile_data.pyprof | dot -Tpng -o output.png

Run Snake Run

如何進行Python Profiling性能分析  

如何進行Python Profiling性能分析

Run Snake Run截圖

RunSnakeRun是個Python腳本,使用wxPython將Profiler數據可視化,效果如圖。

RunSnakeRun還可分析內存占用,但仍處于實驗階段。[4]

KCacheGrind

如何進行Python Profiling性能分析  

如何進行Python Profiling性能分析

KCacheGrind可視化Python運行時數據

KCacheGrind是Linux中常用的profiling visualization軟件,其默認可處理valgrind的輸出。通過一些腳本也可以讓其分析cProfile或hotshot記錄下的數據。

處理cProfile的數據可使用pyprof2calltree:

# 運行程序記錄數據:# python -m cProfile -o profile_data.pyprof path/to/your/script arg1 arg2 # 使用pyprof2calltree處理數據并自動調用KCacheGrindpyprof2calltree -i profile_data.pyprof -k

處理hotshot的數據可使用KCacheGrind中的hotshot2calltree命令:

# 使用hotshot2calltree處理數據,完成后需手動在KCacheGrind中打開輸出文件hotshot2calltree hotshot.log -o hs_calltree.log

如何進行Python Profiling性能分析  

注意:   
KCacheGrind雖然功能強大,但其輸出的分析樹似乎并不完整,如果您了解原因,請補充。

上述就是小編為大家分享的 如何進行Python Profiling性能分析 了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安西县| 辽宁省| 北川| 清镇市| 东方市| 罗甸县| 自贡市| 武宁县| 凉山| 抚顺县| 安乡县| 苗栗市| 色达县| 祁门县| 中西区| 丹阳市| 东乡县| 黔江区| 麟游县| 馆陶县| 依兰县| 淮安市| 滨州市| 兖州市| 揭西县| 琼海市| 霍山县| 内丘县| 西乌珠穆沁旗| 茌平县| 浮梁县| 凤阳县| 海晏县| 郧西县| 青岛市| 财经| 罗江县| 扎赉特旗| 达孜县| 闽侯县| 武胜县|