python 記憶體管理

來源:互聯網
上載者:User

標籤:收集   關心   被記憶體回收   整數   聲明   出現   儲存   pytho   增加   

記憶體管理

包括:

  • 變數無須事先聲明
  • 變數無須指定類型
  • 不用關心記憶體管理
  • 變數名會被"回收"
  • del 語句能夠直接釋放資源
變數定義

python中, 變數在第一次被賦值時自動聲明, 和其它語言一樣, 變數只有被建立和賦值後才能被使用

動態類型

變數名無須事先聲明, 也無須型別宣告
對象的類型和記憶體佔用都是運行時確定的

記憶體配置

python解譯器會自動進行記憶體管理, 不用開發人員去關心

引用計數
  • 要保持追蹤記憶體中的狀態, python使用了引用計數, 就是python內部記錄著所有使用中的對象各有多少引用.
  • 一個內部跟蹤變數, 稱為一個引用計數器, 至於每個對象各有多少引用, 簡稱引用計數, 當對象被建立時, 就建立了一個引用計數, 當這個對象不再需要時, 也就是說, 這個對象的引用計數變為0時, 它被記憶體回收
增加引用計數
  • 當對象被建立賦值給變數時, 該對象的引用計數就被設定為1
  • 當同一個對象又被賦值給其他變數時, 或作為參數傳遞給函數, 方法或類執行個體時, 或者被賦值為一個視窗對象的成員時, 該對象的一個新的引用, 或者作為別名, 就被建立.
減少引用計數

當對象的引用被銷毀時, 引用計數會減少, 明顯的例子就是當引用離開其作用範圍時, 這種情況最經常出現在函數運行結束時, 所有局部變數都被自動銷毀, 對象的引用計數也就減少

垃圾收集

不再被使用的記憶體會被一種稱為垃圾收集的機制釋放

注: 解譯器跟蹤對象的引用計數, 記憶體回收機制負責釋放記憶體, 垃圾收集器是一塊獨立代碼, 它用來尋找引用計數為0的對象, 它也負責檢查雖然引用計數大於0但是也應該被銷毀的對象

    • 引用語義: python中在變數裡儲存值(對象)的引用, 採用這種方式, 變數所需的儲存空間大小一致, 因為其只需要儲存一個引用
    • 值語義變數的值直接儲存在變數的儲存區裡, 這樣一個整數類型的變數就需要儲存一個整數所需的空間, 一個浮點數變數就需要足夠的空間儲存一個浮點數. C中就是值語義

python 記憶體管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.