首頁/ 遊戲/ 正文

一行程式碼搞定 Python 逐行記憶體消耗分析

作者 |

費弗裡

我們即將學習的是:

一行程式碼分析Python程式碼行級別記憶體消耗

很多情況下,我們需要對已經寫好的

Python

程式的記憶體消耗進行最佳化,但是一段程式碼在執行過程中的記憶體消耗是動態變化的,這種時候就可以用到

memory_profiler

這個第三方庫,它可以幫助我們分析記錄

Python

指令碼中,執行到每一行時,記憶體的消耗及波動變化情況。

memory_profiler

的使用方法超級簡單,使用

pip install memory_profiler

完成安裝後,只需要從

memory_profiler

匯入

profile

並作為要分析的目標函式的裝飾器即可,譬如下面這個例子:

demo。py

import numpy as npfrom memory_profiler import profile

@profile

defdemo():

a = np。random。rand(10000000)    b = np。random。rand(10000000)

a_ = a[a

b_ = b[a

del a, breturn a_, b_if __name__ == ‘__main__’:

demo()

接著在終端執行

python demo。py

,稍事等待後,就會看到打印出的分析結果報告(這裡我是在

jupyter lab

裡執行的終端命令):

一行程式碼搞定 Python 逐行記憶體消耗分析

其中

Line #

列記錄了分析的各行程式碼具體行位置,

Mem usage

列記錄了當程式執行到該行時,當前程序佔用記憶體的量,

Increment

記錄了當前行相比上一行記憶體消耗的變化量,

Occurrences

記錄了當前行的執行次數(迴圈、列表推導等程式碼行會記作多次),

Line Contents

列則記錄了具體對應的行程式碼。

透過這樣細緻的記憶體分析結果,我們就能有的放矢地最佳化我們的程式碼啦~

本期分享結束,咱們下回見~

相關文章

頂部