python在材料方面的应用_python记录材料题带标准答案
1.Python
是如何進行內(nèi)存管理的?
答
:
從三個方面來說
,
一對象的引用計數(shù)機制
,
二垃圾回收機制
,
三內(nèi)存池機制
一、對象的引用計數(shù)機制
Python
內(nèi)部使用引用計數(shù),
來保持追蹤內(nèi)存中的對象,
所有對象都有引用計數(shù)。
引用計數(shù)增加的情況:
1
,一個對象分配一個新名稱
2
,將其放入一個容器中(如列表、元組或字典)
引用計數(shù)減少的情況:
1
,使用
del
語句對對象別名顯示的銷毀
2
,引用超出作用域或被重新賦值
sys.getrefcount(
)
函數(shù)可以獲得對象的當(dāng)前引用計數(shù)
多數(shù)情況下,
引用計數(shù)比你猜測得要大得多。
對于不可變數(shù)據(jù)
(如數(shù)字和字符串)
,
解釋器會在程序的不同部分共享內(nèi)存,以便節(jié)約內(nèi)存。
二、垃圾回收
1
,當(dāng)一個對象的引用計數(shù)歸零時,它將被垃圾收集機制處理掉。
2
,當(dāng)兩個對象
a
和
b
相互引用時,
del
語句可以減少
a
和
b
的引用計數(shù),并銷
毀用于引用底層對象的名稱。然而由于每個對象都包含一個對其他對象的應(yīng)用,
因此引用計數(shù)不會歸零,對象也不會銷毀。
(從而導(dǎo)致內(nèi)存泄露)。為解決這一
問題,
解釋器會定期執(zhí)行一個循環(huán)檢測器,
搜索不可訪問對象的循環(huán)并刪除它們。
三、內(nèi)存池機制
Python
提供了對內(nèi)存的垃圾收集機制,但是它將不用的內(nèi)存放到內(nèi)存池而不是
返回給操作系統(tǒng)。
1
,
Pymalloc
機制。為了加速
Python
的執(zhí)行效率,
Python
引入了一個內(nèi)存池機
制,用于管理對小塊內(nèi)存的申請和釋放。
總結(jié)
以上是生活随笔為你收集整理的python在材料方面的应用_python记录材料题带标准答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下mysql5.7修改密码
- 下一篇: STL2-类模板