使用memory_profiler監(jiān)測(cè)python代碼運(yùn)行時(shí)內(nèi)存消耗方法
前幾天一直在尋找能夠輸出python函數(shù)運(yùn)行時(shí)最大內(nèi)存消耗的方式,看了一堆的博客和知乎,也嘗試了很多方法,最后選擇使用memory_profiler中的mprof功能來(lái)進(jìn)行測(cè)量的,它的原理是在代碼運(yùn)行過(guò)程中每0.1S統(tǒng)計(jì)一次內(nèi)存,并生成統(tǒng)計(jì)圖。
具體的使用方式如下:
首先安裝memory_profiler和psutil(psutil主要用于提高memory_profile的性能,建議安裝)(可使用pip直接安裝)
pip install memory_profiler pip install psutil
具體運(yùn)行方式為如下:(在待檢測(cè)代碼所在目錄中打開(kāi)命令行運(yùn)行如下代碼)
mprof run test.py
結(jié)果會(huì)生成一個(gè).dat文件,如”mprofile_20160716170529.dat”,里面記錄了內(nèi)存隨時(shí)間的變化
mprof plot
使用該命令以圖片的形式展示出來(lái)
如果在運(yùn)行的時(shí)候出現(xiàn)如下的gbk解碼錯(cuò)誤,解決方案是首先進(jìn)入 memory_profiler.py文件中,找到第1131行,
把with open(filename) as f: 更改成 with open(filename, encoding='utf-8') as f:?。?!
UnicodeDecodeError: ‘gbk' codec can't decode byte 0xad in position 337: illegal multibyte sequence


值得注意的是,盡管網(wǎng)上大部分都說(shuō)在待檢測(cè)的函數(shù)之前加上@profile修飾器,但是不知道為何我在anaconda python3.6的環(huán)境里始終加不上這個(gè)修飾器,強(qiáng)行加上就報(bào)錯(cuò),沒(méi)加上也沒(méi)問(wèn)題。
相關(guān)文章
Python pandas 重命名索引和列名稱的實(shí)現(xiàn)
本文主要介紹了Python pandas 重命名索引和列名稱的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Python實(shí)現(xiàn)求兩個(gè)csv文件交集的方法
這篇文章主要介紹了Python實(shí)現(xiàn)求兩個(gè)csv文件交集的方法,涉及Python針對(duì)csv文件的讀取、遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
django xadmin中form_layout添加字段顯示方式
這篇文章主要介紹了django xadmin中form_layout添加字段顯示方式,具有很好的 參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python實(shí)現(xiàn)發(fā)送聲情并茂的郵件內(nèi)容和附件
Python是一種高級(jí)編程語(yǔ)言,它可以用于編寫各種類型的應(yīng)用程序,包括發(fā)送電子郵件。本文就來(lái)演示如何使用Python發(fā)送HTML格式的電子郵件,感興趣的可以了解一下2023-04-04
Python圖片存儲(chǔ)和訪問(wèn)的三種方式詳解
在?Python?中處理圖像數(shù)據(jù)的時(shí)候,例如應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)等算法可以處理大量圖像數(shù)據(jù)集,這里就需要學(xué)習(xí)如何用最簡(jiǎn)單的方式存儲(chǔ)、讀取數(shù)據(jù)。本文介紹了Python中圖片存儲(chǔ)和訪問(wèn)的三種方式,需要的可以參考一下2022-04-04
pyautogui自動(dòng)化控制鼠標(biāo)和鍵盤操作的步驟
這篇文章主要介紹了pyautogui自動(dòng)化控制鼠標(biāo)和鍵盤操作的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python?設(shè)計(jì)模式創(chuàng)建型單例模式
這篇文章主要介紹了Python?設(shè)計(jì)模式創(chuàng)建型單例模式,即Singleton,單例是一種設(shè)計(jì)模式,應(yīng)用該模式的類只會(huì)生成一個(gè)實(shí)例,下文詳細(xì)介紹需要的小伙伴可以參考一下2022-02-02
使用python將時(shí)間轉(zhuǎn)換為指定的格式方法
今天小編就為大家分享一篇使用python將時(shí)間轉(zhuǎn)換為指定的格式方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11

