當前位置:成語大全網 - 書法字典 - python的內存管理機制是什麽?

python的內存管理機制是什麽?

語言的記憶管理是語言設計的壹個重要方面。它是決定語言表現的壹個重要因素。C語言的手動管理和Java的垃圾收集已經成為該語言最重要的特性。本文以Python語言為例,說明了動態類型和面向對象語言的內存管理模式。

總結壹句話:引用計數為主,標記去除為輔,分代回收為輔(推薦學習:Python視頻教程)

Python垃圾收集(3種)

引用計數

當對象引用的計數器變為0時,該對象可能在內存中,但不再可訪問。Python在收集垃圾的時候不能做其他操作。如果python在壹個對象的引用計數變成0的時候收集這個對象,很明顯python的效率會很差。Python什麽時候收?這是壹個好問題。

Python將監視它已經創建了多少新對象,以及有多少對象的引用計數器已經變成0。如果兩個值之差大於閾值,內存將啟動垃圾收集並銷毀引用計數器為0的對象。

優點:簡單實時,缺點:維護引用計數循環消耗資源和引用。

發電回收

為了提高效率,有很多物體經過多次清洗後仍然存在。可以考慮這樣的對象不需要經常回收,可以分成不同的集合,每個集合回收的時間間隔不壹樣。簡單來說,這就是python的代際回收。

具體來說,python中的垃圾分為1、2、3代。1代中的對象每次回收時都會被清理。當被引用對象清理後仍然存在時,將進入第二代集合。同樣,當清理第二代集合時,現有對象將進入第二代集合。

如何分配每次收集的清理時間,先清理1代的垃圾,清理10代後清理壹次2代的垃圾,清理10代後清理2代的垃圾。

標記移除

按需分配,在內存不夠用的時候,從寄存器和程序棧上的引用開始,遍歷對象,標記被遍歷的對象,然後清除內存中未標記的對象。

更多Python相關技術文章,請訪問Python教程部分學習!