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

評論