2009-08-28 50 views
0

我想釋放一些未使用的資源在我的應用程序。我有幾個MB的GeneralBlock(對象?),我不知道這是什麼或我應該如何接近釋放這個GeneralBlock。GeneralBlock在ObjectAlloc樂器中的含義是什麼?

GeneralBlock沒有明顯的用處。當我啓動我的應用程序時,有一個MENU屏幕,在此時間點,我有大約300kb的內存正在使用。在應用程序結束時,用戶按下一個按鈕,將他/她帶回到同一個菜單屏幕,在那裏應該只有大約300kb的內存被使用,但是卻有近2.5MB的內存! ??其中大部分歸於GeneralBlock,掛在某處。我將我的顯示設置設置爲「對象已創建並仍然存在」,因此它不能是任何已釋放的對象...請賜教。

回答

1

Tracking Memory Usage

在圖標模式下,儀器ObjectAlloc中顯示與該應用程序永遠分配的所有存儲塊的列表的表,如示於圖1的分類列顯示的類型內存塊 - 可以是Objective-C類名稱或Core Foundation對象名稱。 如果ObjectAlloc無法推導出塊的類型信息,它將使用「GeneralBlock-」,後跟塊的大小(以字節爲單位)。 Net列顯示當前存在於應用程序內存堆中的每種類型的塊數。 「總體」列顯示分配的每種類型的塊的總數,其中包括自從發佈以來的塊。

另請參閱this post

基本上,只要沒有任何泄漏,這些GeneralBlock分配是好的。

+0

那麼.... GeneralBlock的分配是無害的呢?即使他們似乎在圖表上繼續增加? – RexOnRoids 2009-08-28 06:53:20

+0

好吧,GeneralBlock分配來自ObjectAlloc知道的外部庫。正如Tim在http://stackoverflow.com/questions/1061235/checking-memory-allocation-in-instruments中所說的那樣,這些不會減少(我從來沒有看到它至少會減少我的應用程序)。 – 2009-08-28 07:05:48