python記憶體管理

2022-08-28 13:21:13 字數 676 閱讀 3157

引用計數:垃圾**機制的依據

# 1.變數的值被引用,該值的引用計數 +1

# 2.變數的值被解綁,該值的引用計數 -1

# 3.引用計數為0時就會被垃圾**機制**

引用計數會出現迴圈引用問題:相互引用無法釋放

# 1.兩個變數引用其值,值之間又相互引用

# 2.變數與值進行解綁,但是值之間還存在相互引用,導致值得引用計數永遠 >0

# 3.引用計數》0的值永遠無法被引用計數機制**,導致記憶體洩露

標記清除:解決迴圈引用問題

# 所有執行緒能訪問到的棧區變數,稱之為 gc roots物件

# 1.所有gc roots物件可以直接或間接訪問到的變數值,都會被 標記機制 標記為存活狀態

# 2.將所有存活狀態的值形成新的拷貝,變數完成重新引用

# 3.清除機制 會將之前所有產生的值都進行**

分代**:採用的還是引用計數來**,是對該機制的乙個優化措施

# 1.剛產生的變數值放在新生代中高頻率檢查,如果引用計數為0,就是採用引用計數機制**,長期存活的變數值經過多次檢查後會提高分代

# 2.分帶又高,檢查頻率越低,且還能繼續提高一直存活的變數值的分帶,從而來提高整體垃圾**的效率

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

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

python 記憶體管理

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

Python記憶體管理

1.引用和物件 python是動態型別的語言 參考動態型別 物件與引用分離。賦值語句 a 1 中,整數1為乙個物件。而a是乙個引用。利用賦值語句,引用a指向物件1。python的內建函式id 它用於返回物件的身份 identity 其實,這裡所謂的身份,就是該物件的記憶體位址。a 1 print i...