亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python內(nèi)存管理實例分析

系統(tǒng) 2100 0

本文實例講述了Python內(nèi)存管理。分享給大家供大家參考,具體如下:

            
a = 1


          

a是引用,1是對象。Python緩存整數(shù)和短字符串,對象只有一份,但長字符串和其他對象(列表字典)則有很多對象(賦值語句創(chuàng)建新的對象)。

            
from sys import getrefcount
a=[1,2,3]
print(getfrecount(a))


          

返回4,當使用某個引用作為參數(shù)傳給getfrecount時,創(chuàng)建了臨時引用,+1.

對象引用對象

            
class from_obj(object):
  def __init__(self, to_obj):
    self.to_obj = to_obj
b = [1,2,3]
a = from_obj(b)
print(id(a.to_obj))
print(id(b))
c = [b,b]


          

a引用對象b,c引用b兩次。

通過objgraph包(之前安裝xdot)梳理引用拓撲結構。

            
x = [1, 2, 3]
y = [x, dict(key1=x)]
z = [y, (x, y)]
import objgraph
objgraph.show_refs([z], filename='ref_topo.png')


          

Python內(nèi)存管理實例分析_第1張圖片

千萬不要兩個對象相互引用或自己引用自己,形成引用環(huán)給垃圾回收機制帶來麻煩。

垃圾回收

回收引用計數(shù)為0的對象。垃圾回收時python不能做其他任務,降低效率,所以不是總隨時都垃圾回收。python記錄分配對象(object allocation)和取消分配對象(object deallocation),差值高于某閾值啟動回收。

            
import gc
print(gc.get_threshold())

          

(700,10,10)700為啟動閾值,兩個10是分代回收相關閾值,通過 set_threshold() 重設。手動啟用垃圾回收 gc.collect()

分代回收

基本假設:存活越久越不可能變垃圾。

對象分0,1,2三代。新建對象0代,經(jīng)過一次垃圾回收依然存活歸為下一代。垃圾回收啟動時一定掃描所有0代,如果0代經(jīng)過一定次數(shù)垃圾回收,則掃0和1代,同理掃0,1和2代。(700,10,10)表明10次0代配合1次1代,10次1代配合1次2代。

孤立的引用環(huán)

Python內(nèi)存管理實例分析_第2張圖片

原本兩表對象相互引用后刪除引用,但對象引用計數(shù)部位0不會被回收。

則python復制每個對象引用計數(shù),對某個對象i,遍歷所有對象i引用的對象j,將gc_ref_j減1.

更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久国产精品99国产精 | 性一交一乱一欲0 | 国产精品视频免费看 | 精品日韩在线视频 | 五月开心六月伊人色婷婷 | 久久久在线视频 | 97视频在线观看视频在线精品 | 久久www免费人成精品 | 欧美刺激午夜性久久久久久久 | 香蕉网伊 | 99国产精品免费视频观看 | 5566中文字幕亚洲精品 | 国产精品久久久久久久久岛 | 欧美一级视频在线 | 欧美精品综合一区二区三区 | 久久99亚洲精品久久久久网站 | 天天天天干 | 成年女人视频播放免费观看 | 久久成人免费观看全部免费 | 爱爱夜夜爽成人夜夜爽 | 中文字幕第一页亚洲 | 在线成人精品国产区免费 | 青草网址 | 国产成人免费在线观看 | 精品一区二区三区免费毛片爱 | 91久久精品国产一区二区 | 欧美精品免费在线 | 亚洲精品aⅴ一区二区三区 亚洲精品ccc | 国产成人一区二区三区精品久久 | 华人欧美国产在线精品 | 福利观看 | 欧美日韩一区二区在线观看视频 | 国产69精品久久久久妇女 | 国内高清久久久久久久久 | 手机看片神马午夜片 | 久久99国产亚洲精品 | 色偷偷91久久综合噜噜噜 | 日本伊人久久 | 一区二区三区四区在线视频 | 涩涩在线观看 | 激情四月婷婷 |