2009-11-06 56 views
1

當我使用Leaks工具在模擬器中運行我的應用程序時,它使用大約2.5mb的內存。當我在iPhone上運行它時,需要永久啓動,慢慢爬到〜34mb的內存然後崩潰。但是,當我在沒有泄漏的iPhone上運行它時,它會很快啓動並運行正常。爲什麼是這樣?在iPhone和模擬器上顯示擴展內存使用情況的漏洞

回答

0

崩潰可能是由於您的應用程序中存在內存泄漏以及設備內存不足。沒有看到任何代碼,這是不可能告訴的。 Here是關於如何使用儀器

教程的「永遠需要推出」和和運行速度慢是由於泄漏監測系統輪詢每10秒爲信息設備

編輯:這可能是由於在給定的時間將太多的對象保存在內存中。檢查儀器和對象分配。只是因爲你沒有泄漏並不意味着你不能用完內存

+1

不太可能 - 開發人員的應用只有在儀器下運行時纔會顯着增長。這表明調試代碼正在引發增長。最有可能的是,殭屍檢測是原因。 – bbum 2009-11-06 16:51:10

+0

當我用模擬器運行泄漏時,沒有內存泄漏。有幾個,但我修復了他們全部 – rickharrison 2009-11-06 16:58:53

+0

我編輯了我的答案 – coneybeare 2009-11-06 17:01:35

1

你有沒有啓用殭屍檢測?

殭屍檢測將導致分配給每個對象的對象永遠不會被釋放(對象在釋放時被標記爲殭屍)。這將導致記憶力增長,正如你所描述的。一個常見的錯誤是在使用儀器時啓用殭屍檢測,無論是通過環境變量還是通過Object Alloc儀器中的複選框。


如果不是殭屍或泄漏,那麼就像其他人所說的那樣 - 記憶被分配並粘住。使用Object Alloc工具來跟蹤應用程序中分配的對象,並確保它們中的每一個都存在是有原因的。您可以打開「僅跟蹤實時分配」來過濾掉所有已被釋放的對象。

+0

殭屍將導致應用程序在所有環境中增長,而不僅僅是調試 – coneybeare 2009-11-06 16:54:38

+0

我怎麼看我是否有殭屍檢測啓用? – rickharrison 2009-11-06 16:58:18

+0

點擊xcode中的可執行文件。看看參數。如果它說NSZombieEnabled並且有一個複選標記,那麼它就是 – coneybeare 2009-11-06 17:01:00

相關問題