2012-12-11 56 views
0

我最近將一個項目移植到了ARC上,因爲我在碰撞時遇到了問題,並且確定了原因,無論是泄漏還是保留週期等,現在我已經移植過了,測試,看看它是否仍然崩潰,因爲我沒有設法獲得通過活動監視器給我heeby jeebies當它顯示我在分配工具,它看起來申請做這個(活動監視器分析器)iOS memory madlady

activity monitor

而像

allocations

真正的內存使用甚至不是最糟糕的,有一次它激增到90 MB左右,我不確定如何繼續,因爲我不能100%確定如何處理這裏給出的信息,除了假設我可能是東東,非常錯誤,而且我也運行泄漏儀器,我有一些,但它們很小,都是以字節爲單位。

有沒有人有解釋?或者至少能夠澄清我可能看到的內容? real memory usagelive bytesoverall bytes之間有什麼區別?同樣,這些結果也會一次完成相同的操作,然後在最後顯示給您。

我一直試圖減少真正的內存使用作爲前ARC轉換我經常有內存警告和沉默崩潰,我沒有再次遇到這些轉換後,但我沒有做任何長時間的測試,因爲我無法想象即使嘗試真正的內存使用情況如此。實際上看起來比ARC之前要高很多......儘管ARC的活動字節看起來更低......瘋狂!

回答

1

讓我困惑了一陣子的東西是ARC--它的美妙 - 並不一定避免需要@autoreleasepool

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html

我在一個應用程序運行非常大的內存使用,直到有人建議:

@autoreleasepool { 

    // lots of allocating of objects returned from methods then discarded 

} // and the closing brace of the autoreleasepool block causes their memory to be recovered here 

也許這會幫助你。

在探查各列的含義一個很好的解釋是Instruments ObjectAlloc: Explanation of Live Bytes & Overall Bytes

+0

我確實認爲,我可能有一個循環的地方有很多自動釋放對象被分配但有人告訴我,忽略概念作爲你知道內存最終會被釋放。不過,我會嘗試這...謝謝 – Genhain