Pymalloc
Python實現(xiàn)了一個內(nèi)存池(memorypool)機制,使用Pymalloc對小塊內(nèi)存(小于等于256kb)進行申請和釋放管理。
當Python頻繁地創(chuàng)建和銷毀一些小的對象時,底層會多次重復調(diào)用malloc和free等函數(shù)進行內(nèi)存分配。這不僅會引入較大的系統(tǒng)開銷,而且還可能產(chǎn)生大量的內(nèi)存碎片。
內(nèi)存池的概念就是預先在內(nèi)存中申請一定數(shù)量的內(nèi)存空間,當有有滿足條件的內(nèi)存請求時,就先從內(nèi)存池中分配內(nèi)存給這個需求,如果預先申請的內(nèi)存已經(jīng)耗盡,Pymallocallocator會再申請新的內(nèi)存(不能超過預先設置的內(nèi)存池最大容量)。垃圾回收時,回收的內(nèi)存歸還給內(nèi)存池。這樣做最顯著的優(yōu)勢就是能夠減少內(nèi)存碎片,提升效率。
如果應用的內(nèi)存需求大于pymalloc設置的閾值,那么解釋器再將這個請求交給底層的C函數(shù)(malloc/realloc/free等)來實現(xiàn)。
以上內(nèi)容為大家介紹了Python內(nèi)存管理機制之Pymalloc,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://gzshyw.cn/