2010-08-06 22 views
0

我在這對所有的iDevices行之有效的AppStore的應用程序運行(包括128MB RAM)我的iPhone應用程序可以在任何256MB + RAM的iDevice,但墜毀在每一個128MB RAM的iDevice

然後我增加了一些功能,現在該應用程序在128MB iDevices上崩潰。

  • 我檢查了泄漏並修復了它們。
  • 以前版本和當前版本的內存使用情況相同。
  • 我一直在尋找問題的字面天,無法找到它是什麼。

任何人都有一個想法如何找到它是什麼?

+0

不夠細膩(沒有添加什麼功能,你升級設備操作系統?) – 2010-08-06 17:43:55

+0

我沒有升級操作系統。我添加了一個twitter引擎,但在崩潰的版本,即使我刪除引擎,它不斷崩潰.. – 2010-08-07 07:58:57

+0

發佈崩潰。 – bbum 2010-08-08 01:18:40

回答

0

崩潰說:「不良訪問」,但只在128設備上。有時會加載,但是當試圖做某件事情時會崩潰。

解決:我刪除了Twitter的引擎我加入了,現在它的工作原理..

感謝大家:)

3

以前版本 的內存使用情況與當前版本相同。

顯然,情況並非如此。 :)

特別是,如果您添加了功能,您添加了代碼(以及可能的資源)。如果您添加代碼,那麼編譯的可執行文件將會更大。在C++和使用STL的情況下,它可能會更大。

所以,首先檢查您的代碼大小。

無論如何,這聽起來像是你在128MB設備的內存使用的邊緣。請記住,在iOS設備上從128MB到256 + MB的轉換比您的應用程序的可用內存多一倍,因爲該RAM由系統和您的應用程序共享。實際上,128MB設備上的可用空間少於128MB。

下一步是使用Allocations工具來查看正在使用的內存。然後減少使用量。


對象的數量是不相關的。大小不是。不過,你說應用程序崩潰了。如果它崩潰了,那麼這不僅僅是一個簡單的內存不足問題(我之前應該提到過)。發佈崩潰。

+0

二進制大小是2兆,很小.. 我用「對象分配」來監視2個版本,他們使用相同的分配(25,000個淨對象),我添加的功能沒有使用太多的對象.. 是25000合理嗎? 如果不是,我如何使用「分配」來找出我在哪裏分配。我所得到的是庫函數調用和非我自己的.. – 2010-08-07 08:02:46

相關問題