python 記憶體分析 python 記憶體分析

2021-10-21 03:21:54 字數 841 閱讀 7291

1、改原始碼重新編譯列印相關資訊

obmalloc.c 檔案中列印 maxarenas,值為當前環境分配 arena 個數;分配 arena 時並沒有馬上分配對應的pools,故對於每乙個 arena,nfreepools 和 ntotalpools 為分配pool的可用pool數和總pool數。

int arena_len = 0;int _nfreepools =0;int _ntotalpools = 0;inti;for(i =0; i

arena_len++;

_nfreepools+=arenas[i].nfreepools ;

_ntotalpools+=arenas[i].ntotalpools ;

主要是這些資訊:maxarenas 表示已分配arena個數,_ntotalpools 表示已分配pool個數(記憶體池容量為 _ntotalpools *4kb,每個pool為4kb)。

2、guppy

需要安裝,

hp = guppy.hpy()

hp.heap()

可檢視當前python環境變數使用記憶體情況(包括記憶體池和非記憶體池的)。

詳細用法還有很多,可參考:

3、psutil

獲取系統執行的程序和系統利用率(包括cpu、記憶體、磁碟、網路等)資訊。

詳細可參考:

4、pympler

5、pdb+objgaph

python 記憶體分析 python記憶體管理分析

記憶體管理,對於python這樣的動態語言,是至關重要的一部分,它在很大程度上甚至決定了python的執行效率,因為在python的執行中,會建立和銷毀大量的物件,這些都涉及到記憶體的管理。小塊空間的記憶體池 在python中,許多時候申請的記憶體都是小塊的記憶體,這些小塊記憶體在申請後,很快又會被...

python記憶體分析

python記憶體分析 記憶體分析必須了解的兩點 1.python中不可變型別佔固定的位置,其值不可以改變,基本資料型別和元組為不可變資料型別,基本資料型別 數字 int float complex 字串str 布林值bool 元組tuple.2.python中採用引用計數,所有的變數都是引用,指向...

python 記憶體分析

python 在執行是,python直譯器會向作業系統申請執行記憶體,將 載入到記憶體中執行,如圖所示 python 直譯器為了利用好有限的記憶體空間,將記憶體進行了如圖的劃分 不可變型別 資料在記憶體中一旦建立,就不能修改了。python 為了優化程式執行速度,將字串 整數定義成了不可變型別,一旦...