日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:Python如何進(jìn)行內(nèi)存管理?

python是如何進(jìn)行內(nèi)存管理的?

答:從三個(gè)方面來(lái)說(shuō),一對(duì)象的引用計(jì)數(shù)機(jī)制,二垃圾回收機(jī)制,三內(nèi)存池機(jī)制。

一、對(duì)象的引用計(jì)數(shù)機(jī)制

Python內(nèi)部使用引用計(jì)數(shù),來(lái)保持追蹤內(nèi)存中的對(duì)象,所有對(duì)象都有引用計(jì)數(shù)。

引用計(jì)數(shù)增加的情況:

1,一個(gè)對(duì)象分配一個(gè)新名稱

2,將其放入一個(gè)容器中(如列表、元組或字典)

引用計(jì)數(shù)減少的情況:

1,使用del語(yǔ)句對(duì)對(duì)象別名顯示的銷毀

2,引用超出作用域或被重新賦值

Sys.getrefcount( )函數(shù)可以獲得對(duì)象的當(dāng)前引用計(jì)數(shù)

多數(shù)情況下,引用計(jì)數(shù)比你猜測(cè)得要大得多。對(duì)于不可變數(shù)據(jù)(如數(shù)字和字符串),解釋器會(huì)在程序的不同部分共享內(nèi)存,以便節(jié)約內(nèi)存。

相關(guān)推薦:《Python視頻教程》

二、垃圾回收

1,當(dāng)一個(gè)對(duì)象的引用計(jì)數(shù)歸零時(shí),它將被垃圾收集機(jī)制處理掉。

2,當(dāng)兩個(gè)對(duì)象a和b相互引用時(shí),del語(yǔ)句可以減少a和b的引用計(jì)數(shù),并銷毀用于引用底層對(duì)象的名稱。然而由于每個(gè)對(duì)象都包含一個(gè)對(duì)其他對(duì)象的應(yīng)用,因此引用計(jì)數(shù)不會(huì)歸零,對(duì)象也不會(huì)銷毀。(從而導(dǎo)致內(nèi)存泄露)。為解決這一問(wèn)題,解釋器會(huì)定期執(zhí)行一個(gè)循環(huán)檢測(cè)器,搜索不可訪問(wèn)對(duì)象的循環(huán)并刪除它們。

三、內(nèi)存池機(jī)制

Python提供了對(duì)內(nèi)存的垃圾收集機(jī)制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。

1,Pymalloc機(jī)制。為了加速Python的執(zhí)行效率,Python引入了一個(gè)內(nèi)存池機(jī)制,用于管理對(duì)小塊內(nèi)存的申請(qǐng)和釋放。

2,Python中所有小于256個(gè)字節(jié)的對(duì)象都使用pymalloc實(shí)現(xiàn)的分配器,而大的對(duì)象則使用系統(tǒng)的malloc。

3,對(duì)于Python對(duì)象,如整數(shù),浮點(diǎn)數(shù)和List,都有其獨(dú)立的私有內(nèi)存池,對(duì)象間不共享他們的內(nèi)存池。也就是說(shuō)如果你分配又釋放了大量的整數(shù),用于緩存這些整數(shù)的內(nèi)存就不能再分配給浮點(diǎn)數(shù)。


網(wǎng)站名稱:創(chuàng)新互聯(lián)Python教程:Python如何進(jìn)行內(nèi)存管理?
本文來(lái)源:http://www.dlmjj.cn/article/dpdpcjg.html