我想「#Net」列是最有趣的,儘管我並不真正理解這是什麼意思。當前分配的對象總數?即使我沒有做任何事情,它總是在變化。我必須在Instruments應用程序和ObjectAlloc中查看哪些指示符,以查看我的應用程序中是否有內存泄漏?
有沒有什麼好的「經驗法則」來查看是否有內存泄漏?
我想「#Net」列是最有趣的,儘管我並不真正理解這是什麼意思。當前分配的對象總數?即使我沒有做任何事情,它總是在變化。我必須在Instruments應用程序和ObjectAlloc中查看哪些指示符,以查看我的應用程序中是否有內存泄漏?
有沒有什麼好的「經驗法則」來查看是否有內存泄漏?
一般來說,如果您的應用程序的內存佔用量在您經歷了一次或兩次所有基本操作後繼續增長,那麼您可能有內存泄漏。總內存佔用量在「Net Bytes」列中。 「總體」列包括整個程序的所有分配,而「淨」列則減去分配。
但是,根據我的經驗,「泄漏」工具比ObjectAlloc更好地捕獲內存泄漏。只需在Xcode中選擇「Run> Performance With Performance Tool> Leaks」,然後運行一段時間。如果泄漏開始顯示泄漏塊,那麼你有泄漏。它會告訴你每個分配,保留,釋放和釋放任何泄漏塊的堆棧跟蹤,並且你可以雙擊堆棧跟蹤跳轉到你的代碼中的那個位置。只需點擊窗口底部的小陰影方形按鈕,即「泄漏塊」標籤的左側,即可打開「擴展細節視圖」。要獲得分配列表,請將鼠標懸停在該地址旁邊,點擊該地址旁邊的小圓圈「三角形」揭示三角形。
您可能會發現本教程很有幫助:http://www.mobileorchard.com/find-iphone-memory-leaks-a-leaks-tool-tutorial/。
另外還有一個靜態分析器可以直接分析你的源代碼:http://clang.llvm.org/StaticAnalysisUsage.html。
鏗鏘有力。我將其作爲一項政策,確保在我提交更改之前沒有問題。 – freespace 2009-05-25 01:13:36