2011-05-25 95 views
4

我嘗試使用Instruments分析應用程序,以查看應用程序使用了多少內存以及是否存在某些泄漏。使用儀器進行內存分析

稍微調整了一下之後,我擺脫了一些泄漏,現在它沒有顯示出來。但是,我注意到每次我推動某個視圖控制器並將其彈回時,內存會上升,然後稍微下降,但不會達到推動之前的水平,例如, 直播字節呈現推後推

  • 2.1 MB第二個推動彈出後
  • 2.0 MB後
  • 2.1 MB
  • 有趣的是,之前

    • 1.8 MB ,在第二次(甚至10次)推動後,它不會超過前面的值,所以雖然看起來像是泄漏,但它可能是某種緩存或某種東西。我首先認爲這是我的代碼特有的東西,但後來我可以用任何視圖控制器重現它,無論內容如何簡單。

      對這種現象是否有合理的解釋,或者我在所有構建的例子中做了一些完全錯誤的事情?

    回答

    3

    這是發生自動釋放池的B/C,以及假設將爲您發佈的內存。它只要它需要就停留。當您在堆棧上推送更多viewController時,會創建更多的自動釋放對象。他們中的一些將會早些時候被釋放,但它會很及時,所以你的記憶起伏是正常的。