日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何快速理解python的垃圾回收機制

瀏覽:156日期:2022-07-12 17:05:30

一、先來說說為什么要有垃圾回收

解釋器在執行到定義變量得語法時,會申請內存空間來存放變量得值,但是由于內存空間是有限得,所以這就涉及到了內存回收問題了,當一個變量值沒有用了(簡稱垃圾),這種時候就應該回收掉這個變量值得內存空間。

二、那么什么是垃圾回收機制

垃圾回收機制(簡稱GC)是Python解釋器自帶一種機,專門用來回收不可用的變量值所占用的內存空間

三、為什么要用垃圾回收機制呢?

程序運行過程中會申請大量的內存空間,而對于一些無用的內存空間如果不及時清理的話會導致內存使用殆盡(內存溢出),導致程序崩潰,因此管理內存是一件重要且繁雜的事情,而python解釋器自帶的垃圾回收機制把程序員從繁雜的內存管理中解放出來。

四、垃圾回收機制的理解

1、堆區和棧區

在定義變量時,變量名與變量值都是需要存儲的,分別對應內存中的兩塊區域:堆區與棧區。

# 1、變量名與值內存地址的關聯關系存放于棧區# 2、變量值存放于堆區,內存管理回收的則是堆區的內容

2、直接引用和間接引用

直接引用指的是從棧區出發直接引用到的內存地址。間接引用指的是從棧區出發引用到堆區后,再通過進一步引用才能到達的內存地址。

x=10 # 10這個值被變量x直接引用list=[20,x] # 10這個值被列表list間接引用12

五、垃圾回收機制的原理分析

Python的GC模塊主要運用了“引用計數”(reference counting)來跟蹤和回收垃圾。在引用計數的基礎上,還可以通過“標記-清除”(mark and sweep)解決容器對象可能產生的循環引用的問題,并且通過“分代回收”(generation collection)以空間換取時間的方式來進一步提高垃圾回收的效率。

1、引用計數

變量值被變量名關聯得次數(包括間接引用和直接引用 ),一旦變量得引用計數得值變成0,占用內存就會被回收。

2、引用計數得問題以及解決方案

問題一:循環引用

引用計數機制存在著一個致命的弱點,即循環引用(也稱交叉引用

list1=[111,]list2=[222,]list1.append(list2)list2.append(list1)print(list1,list2)[111, [222, [...]]] [222, [111, [...]]]# list1和list2之間相互引用# list1=[111的內存地址,list2的內存地址]# list2=[222的內存地址,list1的內存地址]x=10list=[2,3,x]print(list[2]) # 10x=123print(list[2]) # 10

這種時候一旦我們del list1,del list2,刪除列表的直接引用,只剩下list1和list2之間 的相互引用,這樣引用計數不是0,內存空間無法回收,并且無法去到list1和list2的值(就是垃圾),這種時候python引入了“標記-清除” 與“分代回收”來分別解決引用計數的循環引用與效率低的問題。

問題二:標記清除

容器對象(比如:list,set,dict,class,instance)都可以包含對其他對象的引用,所以都可能產生循環引用。而“標記-清除”計數就是為了解決循環引用的問題。標記/清除算法的做法是當應用程序可用的內存空間被耗盡的時,就會停止整個程序,然后進行兩項工作,第一項則是標記,第二項則是清除。

問題三:效率問題

基于引用計數的回收機制,每次回收內存,都需要把所有對象的引用計數都遍歷一遍,這是非常消耗時間的,于是引入了分代回收來提高回收效率,分代回收采用的是用“空間換時間”的策略。

問題四:分代回收

分代回收的核心思想是:在歷經多次掃描的情況下,都沒有被回收的變量,gc機制就會認為,該變量是常用變量,gc對其掃描的頻率會降低分代指的是根據存活時間來為變量劃分不同等級(也就是不同的代)

新定義的變量,放到新生代這個等級中,假設每隔1分鐘掃描新生代一次,如果發現變量依然被引用,那么該對象的權重(權重本質就是個整數)加一,當變量的權重大于某個設定得值(假設為3),會將它移動到更高一級的青春代,青春代的gc掃描的頻率低于新生代(掃描時間間隔更長),假設5分鐘掃描青春代一次,這樣每次gc需要掃描的變量的總個數就變少了,節省了掃描的總時間,接下來,青春代中的對象,也會以同樣的方式被移動到老年代中。也就是等級(代)越高,被垃圾回收機制掃描的頻率越低

回收依然使用引用計數作為回收的依據

問題五:分代回收的缺點

例如一個變量剛剛從新生代移入青春代,該變量的綁定關系就解除了,該變量應該被回收,但青春代的掃描頻率低于新生代,這就到導致了應該被回收的垃圾沒有得到及時地清理。

沒有十全十美的方案:

毫無疑問,如果沒有分代回收,即引用計數機制一直不停地對所有變量進行全體掃描,可以更及時地清理掉垃圾占用的內存,但這種一直不停地對所有變量進行全體掃描的方式效率極低,所以我們只能將二者中和。

綜上:

垃圾回收機制是在清理垃圾&釋放內存的大背景下,允許分代回收以極小部分垃圾不會被及時釋放為代價,以此換取引用計數整體掃描頻率的降低,從而提升其性能,這是一種以空間換時間的解決方案目錄。

以上就是如何快速理解python的垃圾回收機制的詳細內容,更多關于你理解python的垃圾回收機制么的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区二区亚洲视频| 国产日韩欧美高清免费| 久久在线91| 国产精品白丝av嫩草影院| 欧美在线看片| 欧美一区不卡| 久久wwww| 国产精品白丝av嫩草影院| 欧美激情麻豆| 久久香蕉精品香蕉| 国产成人在线中文字幕| 亚洲伊人av| 欧美亚洲精品在线| 久久久一二三| 亚洲精品电影| 亚洲免费影院| 亚洲资源网站| 国产美女亚洲精品7777| 精品美女在线视频| 日韩不卡免费高清视频| 亚洲大全视频| 亚洲最大av| 国产精品流白浆在线观看| 精品国产亚洲一区二区三区大结局| 日韩av在线播放网址| 久久久久久一区二区| 国产中文一区| 亚洲三级毛片| 国产亚洲欧美日韩精品一区二区三区| 麻豆久久一区| 精品亚洲美女网站| 亚洲一区久久| 国产欧美一区二区三区精品观看 | 国产激情精品一区二区三区| 精品视频一区二区三区四区五区| 伊人久久av| 亚洲一区二区三区四区五区午夜 | 岛国av在线网站| 亚洲二区免费| 亚洲综合中文| 水蜜桃精品av一区二区| 婷婷丁香综合| 日本欧美韩国一区三区| bbw在线视频| 久久午夜精品| 麻豆一区二区99久久久久| 色综合www| 亚洲伊人精品酒店| 久久精品色播| 免费国产自线拍一欧美视频| 欧美亚洲网站| 麻豆视频在线观看免费网站黄| 狠狠干综合网| 国产精品对白久久久久粗| 午夜精品免费| 麻豆精品少妇| 丝袜美腿一区二区三区| 国产极品模特精品一二| 蜜臀久久99精品久久一区二区| 日韩高清国产一区在线| 天堂中文在线播放| 日韩精品第二页| 亚洲成人一区在线观看| 国产日韩免费| 亚洲黄色在线| 久久久久观看| 免费国产亚洲视频| 精品深夜福利视频| 一区二区精品| 欧美香蕉视频| 国产麻豆精品| 国产精品视区| 日韩精品电影| 国产精品网站在线看| 亚洲激情不卡| 日韩国产综合| 久久精品国产99| 日韩欧美中文字幕一区二区三区| 久久精品1区| 老司机精品在线| 亚洲精品进入| 不卡在线一区| 免费观看亚洲| 国产成人77亚洲精品www| 日本成人在线不卡视频| 在线综合视频| 九九九精品视频| 日韩 欧美一区二区三区| 亚洲久久一区| 欧美日韩一视频区二区| 日本视频中文字幕一区二区三区| 爽爽淫人综合网网站| 99日韩精品| 精品国产一区二区三区av片| 欧美一区二区三区久久精品| 色婷婷精品视频| 中文字幕日韩亚洲| 麻豆视频久久| 激情丁香综合| 欧美xxxx中国| 日韩精品成人在线观看| 在线综合视频| 欧美精品羞羞答答| 天堂av在线| 国产一区二区三区四区大秀| 国产欧美欧美| 国产日韩欧美一区二区三区| 日韩av一二三| 日韩国产91| 日韩黄色在线观看| 日韩三级精品| 久热精品在线| 国产精品人人爽人人做我的可爱| 欧美.日韩.国产.一区.二区 | 国产日韩一区二区三区在线播放 | 偷拍精品精品一区二区三区| 成人一二三区| 国产成年精品| 水蜜桃精品av一区二区| 精品国产一区二区三区2021| 国产精品a久久久久| 国产精品一区二区av交换| 日本午夜精品久久久久| 日韩精品一区二区三区av| 日韩一区精品字幕| 久久亚洲影院| 午夜亚洲福利| 91麻豆精品激情在线观看最新 | 久久一区二区中文字幕| se01亚洲视频 | 亚洲h色精品| 久久久精品五月天| 国产一区清纯| 视频一区二区三区入口| 亚洲我射av| 欧美视频久久| 成人av三级| 亚洲无线一线二线三线区别av| 激情婷婷久久| 视频一区二区不卡| 欧美精品中文字幕亚洲专区| 国产精品国码视频| 国产伦久视频在线观看| 久久国产中文字幕| 免费观看在线综合色| 日本免费一区二区视频| 国产精品亚洲欧美日韩一区在线 | 日韩视频久久| 日韩影院免费视频| 国产丝袜一区| 国精品产品一区| 久久人人99| 日韩在线成人| 久久av影视| 亚洲日本网址| 亚洲一区二区三区高清| 午夜亚洲福利| 成人午夜在线| 黄色日韩在线| 欧美日韩一区自拍| 一区二区精品伦理...| 国产真实久久| 88久久精品| 丝袜美腿诱惑一区二区三区 | 在线 亚洲欧美在线综合一区| 亚洲精品影院在线观看| 国产精品午夜一区二区三区| 欧美精品高清| 亚洲精品系列| 亚洲天堂av影院| 黄色日韩在线| 国产精品地址| 亚洲手机在线| 欧美在线看片| 亚洲a一区二区三区| 四虎国产精品免费久久| 韩日一区二区| 久色成人在线| 激情不卡一区二区三区视频在线| 免费精品国产| 欧美日韩亚洲一区在线观看| 欧美sss在线视频| 日本亚洲最大的色成网站www| 超碰在线99| 日韩午夜视频在线| 蜜桃视频在线网站| 91精品国产自产精品男人的天堂| 日韩欧美一区二区三区在线观看 | 免费av一区| 激情欧美一区二区三区| 蜜桃精品在线| 97精品国产| 日韩午夜电影| 国产亚洲人成a在线v网站| 久久网站免费观看| 国产日产精品_国产精品毛片 | 久久国产婷婷国产香蕉| 特黄特色欧美大片| 日韩av电影一区| 黄色成人精品网站|