內(nèi)存管理問題
內(nèi)存管理是編程過程中的一個(gè)經(jīng)典問題,早期在 C 語言時(shí)代,幾乎都靠 malloc/free 手動(dòng)管理內(nèi)存。隨著各個(gè)平臺的發(fā)展,到現(xiàn)在被廣泛采用的主要有兩個(gè)方法:
引用計(jì)數(shù) (ARC,Automatic Reference Counting)
GC (Garbage Collection)
管理方法 ARC/GC
因?yàn)?Java 的流行,GC 被廣泛的認(rèn)知。GC 簡單的說是定期查找不再使用的對象,釋放對象占用的內(nèi)存。
基于 GC,申請的對象不需要手動(dòng)釋放,只需要確認(rèn)對象在不再需要時(shí),不再被其他對象引用。
引用計(jì)數(shù)早期主要用于底層系統(tǒng),比如文件系統(tǒng)的 inode 管理,后來 C++ 的 boost 庫實(shí)現(xiàn)了一套完整的 ARC,目前流行的系統(tǒng)還有 Objective C 也是采用的 ARC。
ARC 的特點(diǎn)是,一個(gè)對象被引用時(shí),引用計(jì)數(shù)增加 1,引用對象釋放時(shí),引用計(jì)數(shù)減少 1,如果引用計(jì)數(shù)為 0,釋放對象。
比較
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26