Python代碼性能分析之cProfile

Python編程時,除了要保證代碼功能的正確性,還要考慮代碼的執行效率。

什麼是cProfile

cProfile(語言編寫的測試模塊)是一個標準庫內建的性能分析工具,可以在標準輸出中看到每一個函數被調用的次數和運行的時間,從而找到程序的性能瓶頸,從而有針對性的進行性能優化。

可以使用cProfile的run方法來計算代碼的執行效率,也可以在cmd執行

python -m cProfile filename.py命令來實現,其中filename.py 是要運行程序的文件名。

在pycharm中執行如下代碼

運行後結果如下:

第一行是總共調用function次數,和總運行時間

「下面是cProfile輸出的各個參數說明」

ncalls:函數調用次數;

tottime:函數的總的運行時間,除掉函數中調用子函數的運行時間;

percall:函數運行一次的平均時間等於 tottime/ncalls;

cumtime:表示該函數及其所有子函數的調用運行的時間,包含了子函數的運行時間;

percall:函數運行一次的平均時間,等於 cumtime/ncalls;

filename:lineno(function):每個函數調用的具體信息,函數所在的文件名稱、代碼行數、函數名稱等;

怎麼優化代碼的性能呢

「下面這幾點建議大家可以參考下:」

  • 減少函數調用的數量

  • 減少函數的調用層次

  • 使用內置函數和庫

  • 避免使用全局變量

有用點個在看 ????

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章