簡體   English   中英

iOS應用程序中的內存泄漏-ARC

[英]Memory Leak in iOS application - ARC

我很難弄清楚我的應用程序在哪里泄漏。 我已經使用“ Instruments”概要分析應用程序通過分配和堆快照對其進行了測試。 這就是我得到的:

在此處輸入圖片說明

如您所見,分配正在增加。 每當我在兩個視圖之間切換時,它就會增加,並帶有淡入淡出效果。 當我查看堆快照時,應該查找以下哪些堆快照以查找泄漏以及應該管理哪種對象?

謝謝您提前的幫助:)。

如果您不再持有對該內存的任何引用,ARC只能釋放該內存。 由於泄漏工具不會指示任何“實際”泄漏(就您不再有權訪問的內存而言),您可能會看到被遺棄的內存的情況。 您仍然持有對不再需要的對象的引用,因此它們不會被釋放。

在基准之后檢查哪個快照並不重要。 快照中的對象列表雖然有點讓人不知所措……但是通常可以幫助將其過濾到您自己的類中。 您可以通過在右上角的搜索字段中輸入類前綴來實現。 如果快照中沒有任何類,則至少可以查找直接使用的類。

另外,還要確保在分配工具的檢查器窗格中啟用“記錄參考計數”選項。 啟用此功能后,您可以單擊快照中列出的對象(不是類名,而是由其內存地址表示的對象)旁邊的小右箭頭,並查看此對象的完整歷史記錄。 這樣可以更輕松地查看誰持有對該引用的引用。

希望這可以幫助!

使用“分析”選項構建代碼; 追蹤並消除所有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM