line_profiler 是一個(gè)用于對函數(shù)進(jìn)行逐行分析的模塊。
Python 當(dāng)前的分析工具僅僅支持一個(gè)函數(shù)的時(shí)間消耗分析。
這當(dāng)然是在一個(gè)程序中定位性能瓶頸的良好第一步,并且通常是優(yōu)化程序所需要做的所有事情。
但是,有時(shí)性能瓶頸的原因?qū)嶋H上是函數(shù)中的一行代碼,僅僅閱讀源代碼可能并不明顯。
下面舉個(gè)例子:訪問一個(gè)提供歷史上的每一天發(fā)生了什么事情的接口,獲取數(shù)據(jù)之后,格式化輸出打印結(jié)果即可。
下圖代碼中黃色的部分,占用了 99.9%的時(shí)間,總計(jì) 1.63 秒,如果每次都從接口讀取數(shù)據(jù),花費(fèi)時(shí)間很多,而且接口本身也會有限制。
這個(gè)時(shí)候考慮到我們自己本身的需求,這個(gè)接口是獲取歷史上的每一天,其實(shí)一天獲取一次就夠了,本地做一個(gè)緩存,如果這一天有第二次來訪問的,就從本地文件讀取,看下圖中青色的部分,時(shí)間花費(fèi)就變成了 128 微秒,足足降低了 99.9%左右的時(shí)間。
line_profiler 在 pycharm 中使用需要安裝插件
然后安裝兩個(gè)第三方庫
pip install line_profiler line_profiler_pycharm
使用
在你自己的腳本中導(dǎo)入模塊
from line_profiler_pycharm import profile
在函數(shù)上添加@profile
裝飾器即可
最后點(diǎn)一下工具欄上的Profile Lines
就能看到上面酷炫的性能分析數(shù)據(jù)了
-
分析
+關(guān)注
關(guān)注
2文章
134瀏覽量
33505 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4363瀏覽量
63710 -
python
+關(guān)注
關(guān)注
56文章
4821瀏覽量
85744
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙開發(fā)-DevEco Studio Profiler工具進(jìn)行幀率分析
HarmonyOS NEXT 原生應(yīng)用/元服務(wù)-DevEco Profiler性能優(yōu)化過程
工作中使用Trepn Power Profiler的應(yīng)用總結(jié)
使用Trepn Profiler中的應(yīng)用狀態(tài)功能查找應(yīng)用問題
使用Trepn Profiler工具分析Dragonboard410c的功耗和性能
Trepn Power Profiler工具的簡單操作
Qualcomm Trepn Power Profiler常見問題分析總結(jié)
使用Snapdragon Profiler工具分析Dragonboard410c
三種提高Python代碼性能的簡便方法
使用Motor Profiler測試電機(jī)性能
有沒有基于Windows的MOTOR PROFILER工具?
【技術(shù)視界】鴻蒙開發(fā)套件之DevEco Profiler助您輕松分析應(yīng)用性能問題
功耗分析臻至入微:Trepn Profiler V6.1更新
Unity Profiler分析內(nèi)存使用狀況疑問解答

評論