我正在開發一款RSS閱讀器類型的iPhone應用程序,它即將完成,但是我昨天升級到iOS 4.3的Xcode 4,並且遇到了一些嚴重的內存問題。我的應用程序現在經常會收到內存警告,我正在處理didReceiveMemoryWarning並釋放所有緩存的圖像等,但這不能提供良好的用戶體驗。我也一直在使用儀器來試圖診斷問題,但是這提出了更多的問題,然後回答。iPhone上的內存管理/儀器
•SDK 4.3是否使用更多內存?在升級之前,我沒有收到內存警告。不知道這是否相關,但我正在使用iOS 4.2的iPhone 3G進行大部分測試(4.3不支持3G)。
•爲什麼分配工具工具活動字節列與活動監視器工具中的實際內存列不匹配?活動監視工具始終報告更多的內存使用情況。
•根據泄漏我的應用程序不會泄漏內存,在模擬器或實際的iPhone上,但是當我查看分配時,似乎隨着我在視圖之間切換並彈出視圖,實時字節列不會返回到它以前的值,這與泄漏內存一致? (彈出後是發佈子視圖)
•我的應用程序經常在啓動時報告內存警告,但僅當我用泄漏分析應用程序時。泄漏是否會導致額外的內存開銷?
•也許這是一個難以回答的問題,但是iPhone應用程序的合理內存佔用量是多少?當我運行泄漏時,我的應用程序幾乎肯定會因爲運行幾分鐘內存不足而被殺死,但是在泄漏工具報告中,當應用程序終止時,我使用的分配不到2 MB。
•爲什麼活動監視器工具有虛擬內存列?我讀過的所有內容都指出iPhone不使用虛擬內存?
一般而言,除非問題緊密交織,否則應該將一組問題分解爲單個問題。這有助於提高網站的可搜索性和可用性。 – 2011-03-16 19:27:38