我正在尋找減少我的應用程序的內存使用情況,我們可能會浪費內存的一個地方是我們使用autoreleasepools。我認爲我們現在在任何地方都有他們,但我不確定,所以我想在戰略點進行一些衡量,看看更多@autoreleasepool塊是否有用。如何瞭解iOS上autoreleasepools的內容?
我做了一些研究,發現了有關調查autoreleasepools以下方法,這可能在過去的工作,但顯然沒有任何更多的,至少在XCode中5:
+[NSAutoreleasePool showPools]
- 這意味着打印有關活動autoreleasepools信息,但似乎並沒有做任何事 - 的XCode不認爲這是一個事_objc_autoreleasePoolPrint
- 我發現對堆棧溢出這種功能的一些參考,但XCode堅持認爲它不存在,並且不會鏈接它我若爲外部
我們的代碼庫是足夠大,只是堅持額外autoreleasepools到處將是一個傻瓜的差事,所以我正在尋找的是找出在有多少個對象」的方式游泳池「在任何特定的時間。這樣我就可以爲需要它們的少數地方添加更多池,而不是將它們扔到任何地方。
如果我必須在樂器或調試器中找到答案,那不是問題 - 這只是我們用來測試的東西,並且不會在發佈中發佈。
感謝您的幫助!
嘗試向'_objc_autoreleasePoolPrint'外部添加弱導入屬性('__attribute __((weak_import))')。 –
可悲的是,同樣的鏈接錯誤。 :( – Colen