2013-10-16 46 views
1

我有我的應用程序內存總是生長在Xcode的5個問題,而另一方面我也沒發現什麼東西可能造成泄漏,過度分配的內存等瞭解內存報告

當然,我明白沒有一個自動調試工具不能100%檢測到不正確的人員。

我做的代碼簡單和平:

- (IBAction)buttonTapped:(id)sender { 

    for (int i = 1; i < 5000; i ++) { 
     NSLog(@"i equeal %d", i); 
    } 

    return;   
} 

我已經上馬項目,按下按鈕3次,我已經有了:

enter image description here

正如你看到的 - 每一次竊聽,記憶總是在增長,但爲什麼?我真的很好奇 - 實際上,這張圖表爲什麼會發生?

通過分配模板剖析並沒有表現出什麼超乎尋常:

enter image description here

回答

0

上圖將是相同的活動監測儀顯示的「實際內存使用」。我遠不及專家(可能很容易出錯),但我的理論是,只要操作系統有足夠的內存來存儲應用程序,它就會爲您的應用程序使用(當您的應用程序請求它時)。操作系統不會立即回收該內存,因爲它不知道您的應用在不久的將來是否需要它。因此,操作系統提供給應用程序的總可用內存將隨着每次分配而增加(假設操作系統有內存可用)。

在我的一個應用程序中,任何給定時間的分配內存大約爲110 megs,但活動監視器給出的實際內存使用量爲160個megs。不要太擔心活動監視器。內存將在操作系統發佈時發生內存警告(假設您並未真正使用內存並且未使應用程序崩潰)。