2014-04-15 100 views
11

我已經爲iPhone創建了一個Blackjack應用程序。它運行時佔用70 MB的內存。這太高了嗎?這對我來說似乎有點高。或者這是正常的考慮我正在使用一些圖形/動畫(卡,芯片等)我的iPhone應用程序需要佔用多少內存?

+1

你應該沒事... http://stackoverflow.com/questions/21071311/how-much-memory-can-one-ios-app-use – PCoder123

+0

感謝您的回覆!考慮到應用程序的類型,我一般還想知道如果我使用的內存超過了所需的內存量?我很好奇,從內存使用的角度來看,我的編碼效率非常低下。任何想法,如果這是在這種類型的應用程序的高端?謝謝。 – mattman88

+0

當你說你正在使用動畫,你的意思是很多圖形資源,或者你只是指在GPU上工作的CoreAnimation? – Tommy

回答

15

比你的要求較低的遊戲,如井字遊戲,需要約10 MB。但是,你的動畫。我假設它是二維動畫,因爲3D遊戲需要大約500 MB,而更接近1 GB的更加繁瑣。

沒有看代碼在做什麼,它似乎是在一個不錯的2D黑傑克應用程序的公認範圍內。

話雖如此,看看蘋果的建議lowering an app's memory usage並不會傷害。

+0

太棒了,非常感謝!是的,只是2D動畫。我會看看你建議的那個頁面! – mattman88

8

觀察:僅僅爲了它而使用較少的內存是沒有優勢的。 500MB的未使用RAM如何比450MB好?

作爲該觀察的結果,iOS中使用的常見機制是NSCache。這是一個關聯地圖,除非或直到這樣做會導致不適當的記憶壓力。更一般地使用相同的模式。使用可用的東西,除非或直到這樣做會導致其他人出現問題。這就是存在低內存警告的原因。這樣的高速緩存由開發者和系統使用 - 例如每撥打[UIImage imageNamed:]

因此,除此之外,它取決於您的資產,您的意見如何排列以及一系列其他因素。

視網膜iPhone 5S的分辨率爲1136x640像素。那大約有2.8mb的數據。您提到動畫:您是否擁有足夠多的不同資產來添加多達25個動畫屏幕?如果是的話那就是70MB。

你的看法如何?你有很多獨立的觀點嗎?每個視圖都有一個CALayer,這在正常情況下意味着GPU佔用空間。與NSCache一樣,除非內存壓力錶明需要做其他事情(即使當前層次結構的任何部分都必須保留其存儲空間),也會保留此類內存。

+3

哇,你的2.8MB的數據事情是非常現貨,我只是再次測試它,我有約30屏幕的動畫和我的應用程序正在佔用大約80MB的RAM。愛學習新事物。謝謝! – mattman88

相關問題