回答
你似乎有泄漏,但它看起來溫和。您可以單擊內存地址旁邊的小箭頭,它應該帶您進入一個屏幕,您可以在其中鑽取並查看分配內存的位置,這是確定爲什麼未分配內存的第一步。 (我會啓動非malloc
對象,因爲它們更經常地映射到您的代碼並且更容易診斷)。
但有時你會看到謙虛泄漏這樣它們,麥克羅賓遜說,誤報。即使這不是誤報,它可能來自操作系統本身,而不是您的代碼。因此,我們有時會經歷一個真正強調應用程序的練習(例如,重複運行應用程序中似乎會產生泄漏的部分),以查看泄漏的增長速度(如果有的話)。它看起來像你的泄漏可能加起來不到1千字節左右,並且不會繼續增長,你可能會選擇不擔心它。 (或者至少一次,你已經對自己的代碼沒有任何東西感到滿意了)。
儘管如此,我個人並不關心這些適度的泄漏,而是整體內存使用量的顯着增長。它可能只是一個適當的圖像緩存,或者它可能是一些廢棄內存的標誌(這個漏洞工具不會顯示給你)。我會嘗試模擬內存警告,看看有多少內存被恢復。您也可以拖動整個時間表並轉到分配視圖,您可以查看該內存消耗的帳戶。您可能希望確保沒有與「泄漏」工具報告的適度泄漏無關的更深的內存問題。並非所有的內存問題都出現在「漏洞」中:「分配」增長也可能表明存在問題,我有點擔心你沒有看到你的內存使用率下降到穩態水平。
蘋果共享一個例子分配圖,建議我們要提防紅色的「浪費」了的記憶。暖機部不是那麼關鍵的,也不是將中間電平(只要它不是太高),但穩態水平的生長是一個更嚴重的存儲器的問題的指示:
就你而言,我沒有看到應用程序完全恢復到穩定狀態,這就是爲什麼我有點關注。但是我不確定你使用了多少應用程序,或者是否讓它有機會回到穩定狀態。
如果您觀看(有點過時但仍然相關)的WWDC 2013 Fixing Memory Issues,它將使用工具和技術來診斷和解決內存問題。這是上面圖表的來源並更詳細地描述它。請注意,PDF演示文稿很好,但視頻更好,因爲它包含了使用樂器的一些實際演示。 WWDC 2012 iOS App Performance: Memory也不錯。 (它看起來像有可能是流媒體視頻的問題,但它看起來像你仍然可以下載它。)
偉大的答案羅布! –
- 1. iOS CoreVideo內存泄漏
- 2. IOS內存泄漏分析
- 3. CGPDFDocumentRef iOS 10內存泄漏
- 4. iOS + OpenCV - Mat內存泄漏
- 5. iOS 5 cellForRowAtIndexPath內存泄漏
- 6. iOS ARC UIAlertView泄漏內存
- 7. NSUserDefaults initWithSuiteName在iOS 8中泄漏內存?
- 8. iOS 5.1中的內存泄漏
- 9. iOS中的內存泄漏swift 3
- 10. CFStreamCreatePairWithSocketToHost中的內存泄漏iOS
- 11. box-ios-preview-sdk:pspdfkit中的內存泄漏
- 12. iOS 8.1中CGContextDrawPDFPage的內存泄漏?
- 13. 關於IOS中的內存泄漏
- 14. 內存泄漏:
- 15. 內存泄漏
- 16. 內存泄漏
- 17. 內存泄漏
- 18. 內存泄漏
- 19. 內存泄漏
- 20. 內存泄漏:
- 21. 內存泄漏
- 22. 內存泄漏
- 23. 內存泄漏
- 24. 內存泄漏
- 25. 內存泄漏
- 26. 奇內存泄漏與iOS通訊錄
- 27. Swift iOS聲音內存泄漏?
- 28. FIRApp.configure()創建內存泄漏IOS
- 29. iOS的 - 無法刪除內存泄漏
- 30. iOS Swift - 調試內存泄漏
我會謹慎地回答:*「也許你做的,也許你不知道。*這些都是小的內存對象而且似乎只有少數幾個,泄漏檢測器*可能會被誤認爲,當你真的泄漏時,這個顯示會持續很多頁面。此外,隨着時間的推移,列表將非常明顯*延長,並且每當您看到它時,相同的地址將保留在列表中。如果這不是你(清楚地)看到的......你會清楚地知道它,當你看到它時......它可能是一個誤報。 –