2010-02-19 39 views
11

任何人都可以將我鏈接到描述iPhone應用程序內存分配的頁面。iPhone應用程序可以使用多少內存?

我聽說您被限制爲約20兆的沙箱中,根據手機的狀態,但我不能找到這個源頭。

+0

從我讀過你開始** 3MB後得到內存警告**。但是我也找不到任何迴應蘋果的引用。 – 2010-02-19 22:03:10

+0

那不是我的經驗。在我們打到青少年之前,我們並沒有真正獲得記憶警告。我們的應用運行在1.8-5兆的任何地方,並且在我們拍照時會出現尖峯。 – 2010-02-19 22:34:56

回答

12

這取決於您使用的設備。我發現使用iPhone 3G時,當您的應用程序使用的內存總量超過10-14MB時,很容易崩潰。當它達到20MB時,它肯定會崩潰。

據我所知,蘋果沒有給出你可以使用內存中的任何硬的數字。它總是在變化,所以很難確定。他們建議您依靠記憶警告並對其進行適當迴應。

的iPhone 3GS具有高得多的量的可用應用程序內存(我聽說它的4倍左右)。儘管iPhone 3GS只有iPhone 3G的兩倍,但是很多內存都被操作系統佔用。有很少的應用程序可以運行。這就是爲什麼3GS將允許應用程序使用更多內存。

而且,可以在由OS使用很多的內存了。一個例子就是當Safari瀏覽器打開很多標籤時。這就是爲什麼許多遊戲建議您在設備崩潰時重新啓動設備。

當你編程,保持眼睛的內存的增加(由於沒有正確解除分配的對象)和峯值內存。這個問題更多的是關於真實世界的測試(儘可能多的設備上)以及良好的編程實踐。

這裏有一篇文章,準備更多關於如何處理內存問題:

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/

+0

除了關於Safari的部分,這通常是正確的。 – bbum 2010-02-20 04:20:06

+0

Safari的事情只是傳聞,我從來沒有測試過它。你有沒有發現它不是真的? – 2010-02-20 04:25:58

+0

@nevanking,但在ARC(自動引用計數)的情況下,我們應該擔心內存使用意味着取消分配對象? – ViruMax 2014-01-15 06:35:29

0

這取決於當前的設備狀態。一些原生的iPhone應用程序可以在後臺運行並浪費設備資源(Mail,Safari,Sms,Phone ...)因此,很難說您將獲得多少內存......理想情況下,您的應用程序應該保持在10-12Mb的限制成功克服任何內存問題。

0

我相信這是

  • 內存警告在20MB
  • 應用 「崩潰」 在30MB

我相當肯定我在The iPhone Developer's Cookbook: Building Applications with the iPhone SDK by Erica Sadun看到這個(書驚人的,順便說一句)。

另外:Duplicate -> Maximum runtime memory available in iPhone and iPod?

+0

這是不對的。沒有硬數字。 – bbum 2010-02-20 04:17:58

+0

我並不是故意暗示這些都是科學事實。下面的海報寫道:「我發現用iPhone 3G時,當你的應用使用的內存總量超過10-14MB時,很容易崩潰,當它達到20MB時,它肯定會崩潰。」當你考慮這些問題時,這些數字是很難理解的。 – typeoneerror 2010-02-20 23:53:07

1

這個工具發現,究竟什麼是iOS設備的最大內存容量。它也可以找到您收到低內存警告的內存級別。

這裏是鏈接:https://github.com/Split82/iOSMemoryBudgetTest

+0

這是一個很棒的小項目。感謝您的鏈接。 – 2013-07-17 04:47:05

相關問題