1、memory_profiler可以監控代碼的內存消耗及增長量,以下面的代碼為例。

發現在for循環里增加了0.3MB,這個工具可以幫助我們定位內存泄露的問題。

2、profile與cProfile可以監控代碼的CPU占用,看下下面的代碼。

結果如下,ncalls是調用次數,cumtime可以看到累計時間,包含子函數,tottime不包含子函數,可以看到總共占用cpu0.049秒,test用了0.038,test_1用例0.01秒,在上面的代碼里,我們使用了sleep,但是看結果,可以確定sleep並沒有占用cpu。

下面是去掉sleep的情況,test_1執行稍快了一點點,說明雖然不使用CPU,但是cpu的占用與釋放還是有損耗的,只是不明顯。

3、cProfile和profile類似,下面是一種常用的用法。

可以根據時間排序。

