MRC/ARC隨筆

autorelasepool

MRC:
????mrc環(huán)境下我們需要遵守誰創(chuàng)建誰釋放的原則,但由于某些特殊場景因此我們需要使用到自動釋放池,比如或個A方法返回了a1對象,按裝誰創(chuàng)建誰釋放的原則,我們應(yīng)該在A方法說將創(chuàng)建的a1對象進行release操作,但是這樣的話返回的a1對象就無法使用了。因此我們需要使用autorelase進行延遲釋放。系統(tǒng)會幫我們在進行一次runloop操作后進行釋放操作。
ARC:
? ? arc環(huán)境下,系統(tǒng)幫我們自動管理內(nèi)存。在arc環(huán)境下我們可以把更多的精力放在程序的優(yōu)化上。arc實現(xiàn)原理是在蘋果在編譯的過程中,在合適的位置自動添加釋放操作。編譯時采用LLVM編譯器。
? ? 編譯器的執(zhí)行操作大致分為三步:
????前端:詞法分析、語法分析、語義分析、生成中間碼
????優(yōu)化器:中間代碼優(yōu)化
????后端:生成機器碼

oc編譯:
? ? 預(yù)處理:將import\宏定義進行預(yù)處理(簡單來說就是把import的文件導(dǎo)入進去,把宏處理給進行替換操作)
????詞法分析:將代碼進行拆分進行分析
? ? 語法分析:將代碼生成語法樹進行分析
? ? ?編譯器編譯:編譯成中間代碼? ?
????后端:生成目標代碼\匯編\鏈接其它動態(tài)庫靜態(tài)庫\編譯成合適蘋果架構(gòu)的代碼


? ??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容