參考鏈接:
https://blog.csdn.net/weixin_35324294/article/details/93038210
https://www.cnblogs.com/geaozhang/p/7111961.html#neicunchijizhi
內存池機制
內存池(memory pool)的概念:
當創建大量消耗小內存的對象時,頻繁調用new/malloc會導致大量的內存碎片,致使效率降低。內存池的概念就是預先在內存中申請一定數量的,大小相等的內存塊留作備用,當有新的內存需求時,就先從內存池中分配內存給這個需求,不夠了之后再申請新的內存。這樣做最顯著的優勢就是能夠減少內存碎片,提升效率。
Python中有分為大內存和小內存:(256K為界限分大小內存)
1、大內存使用malloc進行分配
2、小內存使用內存池進行分配
3、Python的內存池(金字塔)
第3層:最上層,用戶對Python對象的直接操作
第1層和第2層:內存池,有Python的接口函數PyMem_Malloc實現-----若請求分配的內存在1~256字節之間就使用內存池管理系統進行分配,調用malloc函數分配內存,但是每次只會分配一塊大小為256K的大塊內存,不會調用free函數釋放內存,將該內存塊留在內存池中以便下次使用。
第0層:大內存-----若請求分配的內存大于256K,malloc函數分配內存,free函數釋放內存。
第-1,-2層:操作系統進行操作
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
