7 Python是如何進行記憶體管理的?
http://developer.51cto.com/art/201007/213585.htm
Python參考了一個記憶體池(memory pool)機制,即Pymalloc機制(malloc:n.分配記憶體),用于管理對小塊記憶體的申請和釋放
記憶體池(memory pool)的概念:
當 創建大量消耗小記憶體的物件時,頻繁呼叫new/malloc會導致大量的記憶體碎片,致使效率降低,記憶體池的概念就是預先在記憶體中申請一定數量的,大小相等 的記憶體塊留作備用,當有新的記憶體需求時,就先從記憶體池中分配記憶體給這個需求,不夠了之后再申請新的記憶體,這樣做最顯著的優勢就是能夠減少記憶體碎片,提升效率,
記憶體池的實作方式有很多,性能和適用范圍也不一樣,
python中的記憶體管理機制——Pymalloc:
python中的記憶體管理機制都有兩套實作,一套是針對小物件,就是大小小于256bits時,pymalloc會在記憶體池中申請記憶體空間;當大于256bits,則會直接執行new/malloc的行為來申請記憶體空間,
關于釋放記憶體方面,當一個物件的參考計數變為0時,python就會呼叫它的解構式,在析構時,也采用了記憶體池機制,從記憶體池來的記憶體會被歸還到記憶體池中,以避免頻繁地釋放動作,
8 解釋一下python的and-or語法
http://www.kuqin.com/diveinto_python_document/apihelper_andor.html
與C運算式 bool ? a : b類似,但是bool and a or b,當 a 為假時,不會象C運算式 bool ? a : b 一樣作業
本文首發于Python黑洞網,博客園同步跟新
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/185750.html
標籤:Python
上一篇:Python的人臉自動戴口罩系統
