神奇!這個(gè)模塊能像觀察心率一樣觀察 Python 代碼性能表現(xiàn)
“
閱讀本文大概需要 4 分鐘。

這個(gè)神奇的模塊能讓你實(shí)時(shí)可視化地觀察 Python 程序執(zhí)行時(shí)每一行代碼的性能表現(xiàn)。
左邊的數(shù)字是每行被擊中的次數(shù)。條形顯示最近被擊中的次數(shù),較長(zhǎng)的條意味著其被擊中的次數(shù)更多。
顏色的深淺代表著命中的時(shí)間與當(dāng)前時(shí)間的距離,顏色越淺代表離當(dāng)前時(shí)間越近。
下面就來(lái)教大家怎么用這個(gè)模塊來(lái)觀察你的代碼性能表現(xiàn)。
1.準(zhǔn)備
開(kāi)始之前,你要確保 Python 和 pip 已經(jīng)成功安裝在電腦上 。
請(qǐng)選擇以下任一種方式輸入命令安裝依賴
:
1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。
2. MacOS 環(huán)境 打開(kāi) Terminal (command+ 空格輸入 Terminal)。
3. 如果你用的是 VSCode 編輯器或 Pycharm,可以直接使用界面下方的 Terminal.
pip install --user heartrate
支持 Python3.5 及以上版本。
2.基本使用
這個(gè)模塊用起來(lái)超級(jí)簡(jiǎn)單,你只需要在代碼里添加下面這兩行語(yǔ)句即可:
import?heartrate
heartrate.trace(browser=True)
然后打開(kāi)瀏覽器窗口,訪問(wèn):127.0.0.1:9999
就能看到相關(guān)的代碼性能表現(xiàn):

通過(guò)Heartrate,我可以很清楚地知道我的代碼的瓶頸在哪:

左邊柱子越長(zhǎng),說(shuō)明命中次數(shù)越多。
白色柱子越頻繁出現(xiàn),說(shuō)明該行語(yǔ)句存在非常影響性能的問(wèn)題。
3.高級(jí)用法
除了追蹤啟動(dòng) Heartrate 程序的文件代碼之外,Heartrate 還能追蹤其他文件的運(yùn)行情況,如果你的文件
引入了其他文件下的函數(shù),它也能一起追蹤:
from?heartrate import?trace, files
trace(files=files.path_contains('my_app', 'my_library'))
你只需要這么調(diào)用即可追蹤其他路徑下的文件的代碼執(zhí)行情況。
如果你想追蹤全部文件:
from?heartrate import?trace, files
trace(files=files.all)
這么寫(xiě)即可一勞永逸,不過(guò)不建議在生產(chǎn)環(huán)境這么用,最好是只用于性能測(cè)試。
如果你的代碼有性能瓶頸,而你又找不到問(wèn)題出在哪。那么就快去試一下 heartrate,檢測(cè)到底是哪一行代碼出了問(wèn)題并優(yōu)化你的代碼吧!
我們的文章到此就結(jié)束啦,我們下期再見(jiàn),Respect!

End
崔慶才的新書(shū)《Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)(第二版)》已經(jīng)正式上市了!書(shū)中詳細(xì)介紹了零基礎(chǔ)用 Python 開(kāi)發(fā)爬蟲(chóng)的各方面知識(shí),同時(shí)相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲(chóng)、深度學(xué)習(xí)、Kubernetes 相關(guān)內(nèi)容,?同時(shí)本書(shū)已經(jīng)獲得 Python 之父 Guido 的推薦,目前本書(shū)正在七折促銷中!
內(nèi)容介紹:《Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)(第二版)》內(nèi)容介紹

掃碼購(gòu)買
