❝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):每個函數調用的具體信息,函數所在的文件名稱、代碼行數、函數名稱等;
怎麼優化代碼的性能呢
「下面這幾點建議大家可以參考下:」
減少函數調用的數量
減少函數的調用層次
使用內置函數和庫
避免使用全局變量
有用點個在看 ????