2012-07-23 99 views
13

當我在iPad 2上分析我的應用程序時,它的分配內存低於1MB。當我在iPad 1上執行相同操作時,它將分配大約4MB的負載。兩者都更新到相同的iOS版本。這是正常的行爲嗎?如果是這樣,有什麼我可以做的嗎?在iPad 1上分配的應用程序是iPad 2的4倍

+0

這聽起來很奇怪,你是應用程序使用任何浮點代碼/矩陣等? – Con 2012-07-23 18:15:48

+0

不在應用第一次加載時,並且在此之後很少。 – 2012-07-23 18:16:50

+0

所以寄存器數量越來越多。在一天結束時,內存僅被分配,其中大部分可能不會被主動使用。所以它不應該有很大的區別。 – Con 2012-07-23 18:28:01

回答

0

是的,這是一種正常的行爲。它也取決於設備類型。例如,如果您在3G,3GS,4,4S手機中分析內存,您將得到不同的結果。除非應用程序使用頻繁增長,否則這不應該成爲問題。你使用的是什麼操作系統?你有沒有啓用ARC?

2

我想調查的一種可能性是應用程序存儲資源的位置。 iPad2無疑具有更多的紋理,聲音RAM等vram,因此它可能會將這些資源存儲在硬件上,而iPad1必須將它們存儲在主機內存中並根據需要進行上傳。測試這種方法的一個快速方法是下載資源並查看它是否對iPad1產生了比iPad2更大的影響,如果是這樣的話,這是一個合理的解釋。例如,如果您有8MB的圖形,並且iPad1有4MB vram可用於紋理,而iPad2有7MB可用,則iPad1會將4MB的紋理存儲在vram中,另一個4MB保留在主機RAM中,而iPad2會將7MB的紋理存儲在vram中,並將其他1MB保留在主機RAM中。