1. 程式人生 > >python的垃圾回收機制 繼承的順序C3算法

python的垃圾回收機制 繼承的順序C3算法

不可 obb 一個 .cn 機制 www nbsp 進行 銷毀

Python垃圾回收
-- 引用計數
-- Python為每個對象維護一個引用計數
-- 當引用計數為0的 代表這個對象為垃圾
-- 標記清除
-- 解決孤立的循環引用
-- 標記根節點和可達對象
-- 不可達視為垃圾
-- 分代回收
-- 解決標記清除的效率問題
-- 0代 1代 2代
-- 閾值 (700,10,10)
-- 當調用c的接口開辟內存和銷毀內存的差值為700的時候出發0代回收
-- 0代觸發10次 觸發1代回收
-- 1代觸發10次 觸發2代回收
-- 每次回收結束 沒有被回收的對象放入下一代
參考:http://www.cnblogs.com/Xjng/p/5128269.html


PythonMRO c3算法
-- 找到類的mro的繼承順序
-- 第一步 找到所有父類的mro
-- 第二步 用這些父類的mro 跟所有的父類進行歸並
-- 取每個表表頭 並且其他表去掉表頭的部分不能含有我們要取的那個表頭
-- 如果不滿走就去取第二個表頭

參考:http://python.jobbole.com/85685/

python的垃圾回收機制 繼承的順序C3算法