iOS MLeaksFinder使用

https://github.com/Tencent/MLeaksFinder

一、MLeaksFinder - 簡(jiǎn)介

MLeaksFinder 是 WeRead 團(tuán)隊(duì)開源的iOS內(nèi)存泄漏檢測(cè)工具。

MLeaksFinder 提供了內(nèi)存泄露檢測(cè)更好的解決方案。引進(jìn) MLeaksFinder 后,就可以在日常的開發(fā),調(diào)試業(yè)務(wù)邏輯的過程中自動(dòng)地發(fā)現(xiàn)并警告內(nèi)存泄漏。開發(fā)者無(wú)需打開 Instrument 等工具,也無(wú)需為了找內(nèi)存泄漏而去跑額外的流程。并且,由于開發(fā)者是在修改代碼之后一跑業(yè)務(wù)邏輯就能發(fā)現(xiàn)內(nèi)存泄漏的,這使得開發(fā)者能很快地意識(shí)到是哪里的代碼寫得問題。這種及時(shí)的內(nèi)存泄漏的發(fā)現(xiàn)在很大的程度上降低了修復(fù)內(nèi)存泄漏的成本。

當(dāng)發(fā)生內(nèi)存泄漏時(shí),MLeaksFinder會(huì)用彈窗alert的形式告訴開發(fā)者內(nèi)存泄漏的對(duì)象,開發(fā)者可以把a(bǔ)lert關(guān)掉,并繼續(xù)調(diào)試業(yè)務(wù)邏輯。

二、安裝

pod 'MLeaksFinder'

MLeaksFinder在Pod安裝后生效,無(wú)需添加任何代碼或?qū)肴魏晤^文件。

注意:由于Facebook的BSD-plus-Patents許可證,F(xiàn)BRetainCycleDetector已從podspec中刪除。 如果要使用FBRetainCycleDetector查找保留周期,請(qǐng)將pod'FBRetainCycleDetector'添加到項(xiàng)目的Podfile中,然后在MLeaksFinder.h中打開宏MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED。

三、使用方式

把 MLeaksFinder 目錄下的文件添加到你的項(xiàng)目中,就可以在運(yùn)行時(shí)(debug 模式下)幫助你檢測(cè)項(xiàng)目里的內(nèi)存泄露了,無(wú)需修改任何業(yè)務(wù)邏輯代碼,而且只在 debug 下開啟,完全不影響你的 release 包。

把 MLeaksFinder 目錄下的文件添加到你的項(xiàng)目中,就可以在運(yùn)行時(shí)(debug 模式下)幫助你檢測(cè)項(xiàng)目里的內(nèi)存泄露了,無(wú)需修改任何業(yè)務(wù)邏輯代碼,而且只在 debug 下開啟,完全不影響你的 release 包。

亦可手動(dòng)引入,直接把 MLeaksFinder 的代碼放到項(xiàng)目里即生效。如果把 MLeaksFinder 做為子工程,需要在主工程的 Build Settings -> Other Linker Flags 加上 -ObjC。

引入后,先驗(yàn)證引入是否成功,在UIViewController+MemoryLeak.m的+ (void)load方法中添加斷點(diǎn),app啟用時(shí)進(jìn)入該方法便引入成功。

引進(jìn) MLeaksFinder 的代碼后即可檢測(cè)內(nèi)存泄漏,但查找循環(huán)引用的功能還未生效。可以再手動(dòng)加入 FBRetainCycleDetector 代碼,然后把 MLeaksFinder.h 里的 //#define MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED 1 打開。

MLeaksFinder 默認(rèn)只在 debug 下生效,當(dāng)然也可以通過 MLeaksFinder.h 里的 //#define MEMORY_LEAKS_FINDER_ENABLED 0 來手動(dòng)控制開關(guān)。

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

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

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