python記憶體管理總結

2022-07-19 02:27:13 字數 542 閱讀 9316

之前在學習與工作中或多或少都遇到關於python記憶體管理的問題,現在將其梳理一下。

python記憶體管理機制

小塊空間的記憶體池

python記憶體管理及釋放

引用計數

引用計數增加

引用計數減少

記憶體池機制

垃圾**時,python不能進行其它的任務。頻繁的垃圾**將大大降低python的工作效率。如果記憶體中的物件不多,就沒有必要總啟動垃圾**。所以,python只會在特定條件下,自動啟動垃圾**。當python執行時,會記錄其中分配物件(object allocation)和取消分配物件(object deallocation)的次數。當兩者的差值高於某個閾值時,垃圾**才會啟動。

分代**策略:

python將所有的物件分為0,1,2三代。所有的新建物件都是0代物件。當某一代物件經歷過垃圾**,依然存活,那麼它就被歸入下一代物件。垃圾**啟動時,一定會掃瞄所有的0代物件。如果0代經過一定次數垃圾**,那麼就啟動對0代和1代的掃瞄清理。當1代也經歷了一定次數的垃圾**後,那麼會啟動對0,1,2,即對所有物件進行掃瞄。

總結 記憶體管理

上下限暫存器 在cpu中設定上下限暫存器,用於分別存放作業在主存中的上限和下限位址 界位址暫存器 界位址暫存器存有程序的最大邏輯位址,若不越界,加上重定位暫存器 存有程序的起始實體地址 的值即為實體地址 編譯鏈結 裝入固定式分割槽 程式適應分割槽 可變式分割槽 分割槽適應程式 單一佇列分配方式 多佇...

記憶體管理總結

一 計數器的基本操作 1 retain 1 2 release 1 3 retaincount 獲得計數器 二 set方法的記憶體管理 1 set方法的實現 2 dealloc方法的實現 不要直接呼叫dealloc 三 property引數 1 oc物件型別 property nonatomic,r...

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

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