[OS]Strong reference/Weak reference

剛在看 iphone manual 看到 strong pointer / weak pointer 這部分, 應該就是指GC處理時常見字眼: strong reference / weak reference, 這裡複習一下.

每個object都會有個 counter 來紀錄它被reference幾次, 然後GC根據counter決定是否回收記憶體.
counter 有三種值: Null, 0, P(>0)
當 counter = P, strong reference
當 counter = null, GC 已回收
當 counter = 0, weak reference
一般疑問是為為什麼需要weak reference?  這篇說得很詳細{.net記憶體管理之弱參考}
簡言之就是希望物件在被GC回收前, 給他機會轉為 strong reference, 而不是馬上領便當.
不過除了這考量外, 我在想是否這個機制也適用"在限制的記憶體下, 要求大量的記憶體做計算"時使用? 畢竟常常在處理影像時, 可能有好幾G的影片, 要針對每個Frame取label 卻又懶得自己釋放, 這時候將物件宣告為weakref, 這樣好處多多. 應該是可以吧?!
哈  有機會再試試.

Comments

Popular posts from this blog

股票評價(Stock Valuation) - 股利折現模型

openwrt feed的使用

How to convert Markdown into HTML