簡體   English   中英

XCode內存不足,但Instruments內存不足

[英]Out of memory in XCode, but not in Instruments

我的應用程序內存不足。 在XCode的內存報告中,我可以看到在關閉設備之前,設備上的內存使用量已略高於500Mb。

在儀器中(使用分配工具或泄漏工具)進行分析時,不會發生這種情況。 該進程的運行速度約為100Mb,並在運行任務的內存密集部分時達到平衡。 在Instruments中運行時,該應用程序不會崩潰。

造成差異的原因是什么?

運行的激烈過程是利用UIWebView確定許多頁面內容的長度。 Web視圖在后台並加載頁面。 加載完成后,它將計算大小並加載下一頁,直到計算出所有頁面的長度為止。

由於無法獲得與Instruments中相同的內存問題,因此我在所有主要部分的init和dealloc方法中添加了日志記錄,並可以確認那些已按預期分配和釋放。

在那之后,我嘗試假設分配和釋放正在正確進行,但是我分配的速度比系統可以重新分配內存的速度快。 我嘗試在內存用完之前盡早停止該過程,以查看內存使用率是否會下降。 XCode的內存報告確實報告了很小的下降,但是並沒有顯着下降-即使靜置了幾分鍾。

我的下一步是嘗試簡化過程,直到問題消除。

是否還有其他人遇到過類似的情況,其中Instruments中的應用程序所做的事情與Instruments中的應用程序所做的事情完全不同,或者對於導致該問題的原因有任何解釋?

我將查看這兩種方案,並確保設置相同。 探查器可能正在使用非調試配置,而“運行”可能正在使用調試配置。

我要特別注意“運行”配置的“ 診斷 ”選項卡中的“啟用僵屍對象”,因為這會占用內存,並跟蹤所有已釋放對象。 僵屍是一個很棒的診斷工具,但是您希望將其關閉以確保您回收與已釋放對象相關聯的所有內存。

有關獲取方案配置的信息,請參見https://developer.apple.com/library/mac/recipes/xcode_help-scheme_editor/Articles/SchemeDialog.html

暫無
暫無

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

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