<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Python緩存機制

      1. 什么是緩存機制

        Python對象在創(chuàng)建的時候,會為其開辟一個內(nèi)存,當(dāng)變量引用該對象時,實際上是指向該對象的內(nèi)存地址,當(dāng)該對象不在被引用,會被垃圾回收機制回收,釋放內(nèi)存。但是Python為了解決對象創(chuàng)建—開辟內(nèi)存,對象回收—釋放內(nèi)存這么一個對內(nèi)存反復(fù)操作導(dǎo)致時間的浪費,就有了緩存池這一概念來管理一些常見的對象,當(dāng)對象的引用計數(shù)為0時,他從refchain鏈表中刪除,并不是直接銷毀,而是放到了一個free_list的鏈表中進行緩存,當(dāng)出現(xiàn)一個類型相同的對象時,直接用他的上一個對象的內(nèi)存地址,只需在refchain中對其值進行初始化即可。

       

      2. 緩存池機制

        Python在啟動時,會創(chuàng)建一部分對象并將他們放置緩存池中,當(dāng)引用這些對象時,不會重新創(chuàng)建,而是直接引用緩存,如整型[ -5 —256 ],布爾類型,字符串類型

        1. 整型

          

         2. 布爾類型

         

        3. 字符串

         

       

      3. 駐留機制

        1. python的駐留機制是python系統(tǒng)內(nèi)部維護了一個叫 “interned” 的字典,當(dāng)允許被駐留的數(shù)據(jù)首次創(chuàng)建時,會被記錄到該字典中,如果在 “同一個代碼塊中(代碼塊可以是一個模塊,一個函數(shù),一個類,一個文件)” 該數(shù)據(jù)被刪除或者被其他對象再次引用時,不開辟新的內(nèi)存空間,而是直接指向駐留空間中的內(nèi)存地址,這樣可以大量的節(jié)省內(nèi)存空間。不同版本的駐留機制可能不太相同,以3.7版本為例:整型、浮點型、布爾型,字符型都滿足駐留機制。

        舉個例子:

         當(dāng)a = 11111,b 也引用11111這個對象,則b的地址直接執(zhí)行11111的內(nèi)存地址,不在重新創(chuàng)建新的內(nèi)存地址

       

        元組,列表,集合,字典他們不符合駐留機制,即使他們的元素內(nèi)容相同,所執(zhí)行的內(nèi)存地址也是不相同的,但是空元組的內(nèi)存地址卻是相同的。

        元組:

        

        列表:

        

       

      4. free_list機制

        free_list機制是對特定的數(shù)據(jù)類型的緩存而進行的存儲鏈表,如[-5 — 256 ]外的整型、大于0的浮點型、以及列表,集合,元組和字典,當(dāng)我們引用計數(shù)器為0時,應(yīng)該啟用垃圾回收機制回收該內(nèi)存空間,但實際上python并沒有直接回收,“在不同的代碼塊中(注意)” 而是將對象添加到一個叫 “free_list” 的列表中作為緩存,這個機制就叫做 “free_list機制”。這是做什么呢?這就是為了在以后再創(chuàng)建對象時,不再重新開辟內(nèi)存,而是使用 free_list 中的內(nèi)存空間。

        舉個例子

         s1 = 333  (id(s1),內(nèi)存地址是2253215090224)

         del s1   刪除s1,則333這個對象的引用技術(shù)為0,從refchain鏈表中刪除,將這個類型的內(nèi)存地址放在了free_list中

         s2 = 666  (id(s2),內(nèi)存地址為2253215090224),指向了在free_list中緩存的地址,只是將內(nèi)存地址初始化重新賦值放到refchain鏈表中

          

         但是,對于小于0的浮點數(shù),則不會進入free_list中緩存,而是直接進行回收,創(chuàng)建的時候在開辟內(nèi)存

         

       

       

         

        1. 元組的緩存機制

          元組的緩存利用下標進行,最大索引是20,即元組的元素最大不超過20個,每個索引的鏈表存儲這相同元素數(shù)量的對象,每個鏈表最多存儲2000個對象,也就是說(1,2,3,4)和('a','b',1,2)是在相同的索引鏈表中存儲,當(dāng)一個元組對象被刪除或者創(chuàng)建時,他會去和元組中元素個數(shù)相同的索引下去尋找是否存在空閑的地址,存在則引用該地址重新賦值即可。

        

       

         代碼結(jié)果:

        

       

       

        2. 列表的緩存機制

         列表和元組的free_list機制不同,列表的緩存數(shù)量最多為80個,超出則進行回收

         

       

          

        3. 字典的緩存機制

          字典的機制和列表是一樣的,最多為80個

          

        

      posted @ 2023-02-13 14:25  無敵小豆包  閱讀(1127)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲+成人+国产| 又黄又爽又色的少妇毛片| 四虎库影成人在线播放| 99久久机热/这里只有精品| 国产人妻大战黑人第1集| 精品综合久久久久久98| 色久综合色久综合色久综合 | 2020精品自拍视频曝光| 亚洲欭美日韩颜射在线二| 国内熟妇与亚洲洲熟妇妇| 日本深夜福利在线观看| 日韩淫片毛片视频免费看| 国产精品一区二区中文| 国产不卡一区二区四区| 亚洲国产午夜精品福利| 欧美成人性色一区欧美成人性色区| 国产成人精品国内自产色| 在线天堂中文新版www| 国产免费高清69式视频在线观看| 影音先锋在线资源无码| 亚洲综合激情五月色一区| 日韩在线视频线观看一区| 久久精品无码一区二区小草| 亚洲男人的天堂网站| 他掀开裙子把舌头伸进去添视频 | 天全县| 开心久久综合激情五月天| 99精品国产综合久久久久五月天| 亚洲色一色噜一噜噜噜| 国内自拍视频在线一区| 亚洲真人无码永久在线| 国产99在线 | 免费| 九色综合狠狠综合久久| 国产精品推荐视频一区二区| gogogo高清在线观看视频中文| 色欲国产精品一区成人精品| 伊人久久久av老熟妇色| 人妻久久久一区二区三区| 亚洲第一福利网站在线观看| 日本少妇xxx做受| 亚洲精品第一区二区在线|