第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Python內(nèi)存管理學(xué)習(xí)筆記

標(biāo)簽:
Python

赋值语句内存分析

c==d是比较值  c is  d 比较值也比较地址

小值地址相同,大值地址不同

def extend_list(val,l=[]):

     l.append(val)

    return l

list1=extend_list(10)    [10] XXXXXX812320

list2=extend_list(123, [])   [123]   XXXXXX29313    从外传入一个[]

list3=extend_list('a')    [10,'a'] XXXXXX812320

垃圾回收机制

以引用计数为主,分代收集为辅

如果一个对象的引用数为0,Python虚拟机会回收这个对象的内存

引用计数的缺陷是循环引用的问题

引用计数

每个对象都有存在指向该对象的引用总数

查看某个对象的引用计数 sys.getrefcount()

可以使用del删除某个引用

垃圾回收

满足特定条件,自动启动垃圾回收

当Python运行时,会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数

当两者的差值高于某个阀值时,垃圾回收才会启动

查看阀值gc.get_threshold()    (700,,10,10)

分代回收

Python将所有的对象分为0,1,2三代

所有新建对象都是0代对象

当某一代对象经历过垃圾回收,依然存活,那么它就被归入下一代对象

手动回收

gc.collect()手动回收

objgraph模块中的count()记录当前类产生的实例对象的个数。

内存管理机制

内存池机制              当创建大量消耗小内存的对象时,频繁调用new/malloc会导致大量的内存碎片,致使效率降低。内存池的概念就是预先在内存中申请一定数量的,大小相等的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存,这样做的显著优势就是能够减小内存碎片,提高效率。

Python3中的内存管理机制-Pymalloc 针对小对象(<=512bytes),当>512bytes会PyMem_RawMalloc()和PyMem_RawRealloc()来申请新的内存空间。



點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消