line_profiler 是一個用于對函數(shù)進行逐行分析的模塊。
Python 當前的分析工具僅僅支持一個函數(shù)的時間消耗分析。
這當然是在一個程序中定位性能瓶頸的良好第一步,并且通常是優(yōu)化程序所需要做的所有事情。
但是,有時性能瓶頸的原因實際上是函數(shù)中的一行代碼,僅僅閱讀源代碼可能并不明顯。
下面舉個例子:訪問一個提供歷史上的每一天發(fā)生了什么事情的接口,獲取數(shù)據(jù)之后,格式化輸出打印結果即可。
下圖代碼中黃色的部分,占用了 99.9%的時間,總計 1.63 秒,如果每次都從接口讀取數(shù)據(jù),花費時間很多,而且接口本身也會有限制。
這個時候考慮到我們自己本身的需求,這個接口是獲取歷史上的每一天,其實一天獲取一次就夠了,本地做一個緩存,如果這一天有第二次來訪問的,就從本地文件讀取,看下圖中青色的部分,時間花費就變成了 128 微秒,足足降低了 99.9%左右的時間。
line_profiler 在 pycharm 中使用需要安裝插件
然后安裝兩個第三方庫
pip install line_profiler line_profiler_pycharm
使用
在你自己的腳本中導入模塊
from line_profiler_pycharm import profile
在函數(shù)上添加@profile
裝飾器即可
最后點一下工具欄上的Profile Lines
就能看到上面酷炫的性能分析數(shù)據(jù)了
-
分析
+關注
關注
2文章
134瀏覽量
33272 -
函數(shù)
+關注
關注
3文章
4256瀏覽量
62223 -
python
+關注
關注
54文章
4756瀏覽量
84283
發(fā)布評論請先 登錄
相關推薦
評論