华南俳烁实业有限公司

python

當前位置:中華考試網(wǎng) >> python >> python教程 >> 文章內(nèi)容

怎樣對python進行內(nèi)存管理

來源:中華考試網(wǎng)  [2020年9月23日]  【

   內(nèi)存管理對于編寫出高效率的Windows程序是非常重要的,這是因為Windows是多任務系統(tǒng),它的內(nèi)存管理和單任務的DOS相比有很大的差異。那么python如何進行內(nèi)存管理呢?

  ython怎么內(nèi)存管理

  內(nèi)存管理

  包括:

  變量無須事先聲明

  變量無須指定類型

  不用關心內(nèi)存管理

  變量名會被"回收"

  del 語句能夠直接釋放資源

  變量定義

  python中, 變量在第一次被賦值時自動聲明, 和其它語言一樣, 變量只有被創(chuàng)建和賦值后才能被使用

  動態(tài)類型

  變量名無須事先聲明, 也無須類型聲明

  對象的類型和內(nèi)存占用都是運行時確定的

  內(nèi)存分配

  python解釋器會自動進行內(nèi)存管理, 不用開發(fā)人員去關心

  引用計數(shù)

  要保持追蹤內(nèi)存中的狀態(tài), python使用了引用計數(shù), 就是python內(nèi)部記錄著所有使用中的對象各有多少引用.

  一個內(nèi)部跟蹤變量, 稱為一個引用計數(shù)器, 至于每個對象各有多少引用, 簡稱引用計數(shù), 當對象被創(chuàng)建時, 就創(chuàng)建了一個引用計數(shù), 當這個對象不再需要時, 也就是說, 這個對象的引用計數(shù)變?yōu)?時, 它被垃圾回收

  增加引用計數(shù)

  當對象被創(chuàng)建賦值給變量時, 該對象的引用計數(shù)就被設置為1

  當同一個對象又被賦值給其他變量時, 或作為參數(shù)傳遞給函數(shù), 方法或類實例時, 或者被賦值為一個窗口對象的成員時, 該對象的一個新的引用, 或者作為別名, 就被創(chuàng)建.

  減少引用計數(shù)

  當對象的引用被銷毀時, 引用計數(shù)會減少, 明顯的例子就是當引用離開其作用范圍時, 這種情況最經(jīng)常出現(xiàn)在函數(shù)運行結(jié)束時, 所有局部變量都被自動銷毀, 對象的引用計數(shù)也就減少

  垃圾收集

  不再被使用的內(nèi)存會被一種稱為垃圾收集的機制釋放

  注: 解釋器跟蹤對象的引用計數(shù), 垃圾回收機制負責釋放內(nèi)存, 垃圾收集器是一塊獨立代碼, 它用來尋找引用計數(shù)為0的對象, 它也負責檢查雖然引用計數(shù)大于0但是也應該被銷毀的對象

  引用語義: python中在變量里保存值(對象)的引用, 采用這種方式, 變量所需的存儲空間大小一致, 因為其只需要保存一個引用

  值語義變量的值直接保存在變量的存儲區(qū)里, 這樣一個整數(shù)類型的變量就需要保存一個整數(shù)所需的空間, 一個浮點數(shù)變量就需要足夠的空間存儲一個浮點數(shù). C中就是值語義

責編:hym
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
乌苏市| 康定县| 克拉玛依市| 阳东县| 宜丰县| 南昌市| 吴桥县| 延安市| 略阳县| 新余市| 武义县| 邢台市| 高唐县| 重庆市| 博客| 浏阳市| 汽车| 翼城县| 衡阳市| 武冈市| 西充县| 锦州市| 怀集县| 任丘市| 灌南县| 宝兴县| 安岳县| 湖南省| 福贡县| 承德县| 潞西市| 文昌市| 千阳县| 澄江县| 都兰县| 怀仁县| 诸暨市| 海安县| 禹州市| 日土县| 肃宁县|