編寫記憶體效率高且執行速度快的程式碼是每個開發人員在使用任何程式語言時都希望的。在 Python 中,記憶體分配和釋放不是手動的,因為 Python 有垃圾收集器。
現在,什麼是垃圾收集器。
垃圾收集是指在不使用記憶體時如何釋放記憶體以及如何將其可供其他物件使用。 Python 刪除不再使用的物件。這就是我們所說的垃圾收集。垃圾收集器啟動程式的執行,並在引用計數降至零時啟動。
Python 的垃圾收集器在程式執行期間運行,並在物件的參考計數達到零時觸發。物件的參考計數隨著指向它的別名數量的變化而變化。
現在讓我們看看 Python 中的記憶體是如何分配的 -
在靜態記憶體分配中,記憶體是在編譯時分配的。 Stack資料結構儲存靜態記憶體。
一個在堆疊上分配記憶體的簡單範例 -
static int x=2;
在動態記憶體分配中,記憶體是在運行時分配的。堆儲存動態記憶體。如果不再需要該對象,它會釋放記憶體空間。
一個簡單的例子,其中內存在堆上分配 2 個整數 -
x = [0]*2
正如我們上面所討論的,垃圾收集器隨程式啟動其執行,並在引用計數降至零時被啟動。讓我們看看什麼是引用計數。
Python 垃圾收集器啟動程式的執行,並在引用計數降至零時啟動。讓我們看看引用計數何時增加或減少
引用計數值增加時 -
當分配新名稱或在字典或元組中分配新名稱時,引用計數會增加其值。
如果我們重新分配對物件的引用,引用計數會減少其值。
參考計數值減少時 -
因此,引用計數其實就是其他物件引用一個物件的次數。這樣,當引用計數降至零時就會發生解除分配。
以上是Python中的記憶體管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!