Python面試真題-Python是如何進行內存管理的?

? ? ? Python引用了一個內存池(memory pool)機制,即Pymalloc機制(malloc:n.分配內存),用于管理對小塊內存的申請和釋放
內存池(memory pool)的概念:
當創建大量消耗小內存的對象時,頻繁調用new/malloc會導致大量的內存碎片,致使效率降低。內存池的概念就是? ?預先在內存中申請一定數量的,大小相等 的內存塊留作備用,當有新的內存需求時,就先從內存池中分配內存給這個需求,不夠了之后再申請新的內存。這樣做最顯著的優勢就是能夠減少內存碎片,提升效率。
內存池的實現方式有很多,性能和適用范圍也不一樣。
python中的內存管理機制——Pymalloc:
python中的內存管理機制都有兩套實現,一套是針對小對象,就是大小小于256bits時,pymalloc會在內存池中申請內存空間;當大于256bits,則會直接執行new/malloc的行為來申請內存空間。
關于釋放內存方面,當一個對象的引用計數變為0時,python就會調用它的析構函數。在析構時,也采用了內存池機制,從內存池來的內存會被歸還到內存池中,以避免頻繁地釋放動作。

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播