2012-07-23 13 views
13

Gdy profiluję swoją aplikację na iPadzie 2, ładuje się z zaledwie 1 MB przydzielonej pamięci. Kiedy robię to samo na iPadzie 1, ładuje się z przydzielonym około 4 MB. Oba są aktualizowane do tej samej wersji iOS. Czy to normalne zachowanie? Jeśli tak, czy jest coś, co mogę z tym zrobić?Alokacja dla aplikacji na iPada 1 to 4x z iPada 2

+0

To brzmi naprawdę dziwnie, czy używasz dowolnego kodu zmiennoprzecinkowego/macierzy itp.? – Con

+0

Nie, gdy aplikacja ładuje się po raz pierwszy, a bardzo niewiele później. –

+0

Zatem większa liczba rejestrów jest wyłączona. Pod koniec dnia pamięć jest przydzielana tylko i większość z nich prawdopodobnie nie będzie aktywnie używana. Więc nie powinno to mieć większego znaczenia. – Con

Odpowiedz

0

Tak, to jest normalne zachowanie. Zależy to również od typu urządzenia. Przykładowo, jeśli analizujesz pamięć w telefonach 3G, 3GS, 4, 4S, otrzymasz inne wyniki. Nie powinno to stanowić problemu, chyba że rośnie wraz z użyciem aplikacji. Jakiego os używasz? Czy włączono ARC?

2

Jedną z możliwości, którą zbadam, jest miejsce, w którym aplikacja przechowuje swoje zasoby. IPad2 ma niewątpliwie więcej vram dla tekstur, ramek dźwiękowych itp., Więc może przechowywać te zasoby na sprzęcie, podczas gdy iPad1 musiałby przechowywać je w pamięci hosta i przesyłać je w razie potrzeby. Szybkim sposobem na przetestowanie tego jest zmniejszenie ilości pobieranych zasobów i sprawdzenie, czy ma większy wpływ na iPada1 niż na iPada2, jeśli tak, to jest to wiarygodne wytłumaczenie.

Na przykład, jeśli masz 8MB grafiki, a iPad1 ma 4MB vram dostępne dla tekstur, podczas gdy iPad2 ma 7MB dostępnych, to iPad1 będzie przechowywać 4MB twoich tekstur w vram i pozostawiać pozostałe 4MB w hoście hosta, podczas gdy iPad2 przechowa 7 MB twoich tekstur w vramie i pozostawi 1 MB w pamięci RAM hosta.

Powiązane problemy