2012-08-07 44 views
0

我是Xcode和iOS的新手,並且現在已經使用Instruments工具進行了實驗。有一些事情我掙扎,周圍讓我的頭:爲什麼分配在Zombie Instruments工具中不斷增加,當它們不在Allocations Instruments工具中

場景:

我創建了一個簡單的應用程序,過濾與一個UISearchBar(目標的iOS5與ARC)一個UITableView。簡單的代碼,沒有太花哨。

對於我自己的學習,我在執行各種操作時正在觀察分配情況 - 在此特定情況下,當我在搜索欄中輸入內容時。

使用「分配」的儀器工具,我得到如下:

enter image description here

正如預期的那樣,我看到在內存突然激增分配的,當我第一次開始在搜索欄中輸入。之後,任何進一步的搜索都不會對分配圖形產生重大影響。但是,當我使用'Zombie'樂器工具查看內存分配時,只要我在搜索欄中輸入,分配圖就會繼續上升。

enter image description here

起初,我以爲這可能是什麼,我被跟蹤 - 我試圖以確保所有的設置相匹配。但是,搜索時仍會顯示一個上升的圖。

有沒有人對此有過解釋?毫無疑問,我對分配工具在這些儀器模式中追蹤的內容有一些概念性誤解。

回答

2

殭屍工具通過告訴你的應用程序不是來釋放物體。相反,當對象將被釋放時,應用程序會保留已分配的對象,但會將對象的類更改爲特殊的殭屍類,通過引發殭屍錯誤來處理任何消息。

因此,分配在殭屍工具下繼續上升,因爲沒有任何東西被真正釋放。順便說一下,由於使用殭屍可以防止應用程序釋放對象,因此應用程序通常需要更多的內存才能在殭屍工具下運行。這在Mac上(以及在Mac上運行的iOS模擬器上)是可以的,因爲Mac可能具有幾千兆字節的RAM並且還支持分頁到磁盤。但iOS設備只有256 MB和1 GB的RAM,並且不支持分頁。這可能是爲什麼儀器不會讓你在iOS設備上使用殭屍。

+0

感謝羅布。這就說得通了。感謝您清理我的問題。 – 2012-08-07 06:52:37

相關問題