2013-02-12 10 views
6

Mam problem z moją aplikacją. Testowałem do tej pory głównie na moim iPadzie 3 z okazjonalnymi kontrolami na moim iPadzie 1, aby upewnić się, że wszystko jest w porządku.Różnica między zużyciem pamięci wirtualnej i pamięci rzeczywistej za pomocą Monitora pamięci na iOS

Odtwarzam animację UIImageView w mojej aplikacji i kontynuuję wysyłanie wiadomości tylko przed ostrzeżeniem.

Używam narzędzia Alokacje obiektów w instrumentach, ale zgodnie z tym moje wykorzystanie pamięci jest bardzo niskie. Więc po badaniu przez chwilę natknąłem się na to stanowisko przez pana Larsona: https://stackoverflow.com/a/5627221/329900

Teraz używam zamiast tego narzędzia Memory Monitor. Jednak nie rozumiem, dlaczego się wycofuję. Pierwszy gen. iPad ma 256 MB pamięci RAM. Teraz wiem, że nie mogę tego użyć ... niektórzy mówią, że nie powinieneś używać więcej niż 100 MB.

Czy to jest jednak prawdziwa pamięć lub wirtualna pamięć ... a może jakaś kombinacja? Moja prawdziwa pamięć mieści się w granicach 20 - 25MB, ale wirtualny jest około 190 - 205 MB, gdy się zawiesza.

Oto zrzut ekranu: enter image description here

Każdy może rzucić nieco światła na to?

+0

Sugeruję uruchomienie aplikacji przy włączonym przyrządzie VM Tracker. VM Tracker pokazuje wykorzystanie pamięci graficznej (pamięci wirtualnej). Najprawdopodobniej twoja animacja UIImageView ładuje zbyt wiele obrazów do pamięci, aby wykonać animację. Bardziej wydajna technika animacji byłaby odpowiednia. –

+0

Jakie więc opcje mam dla bardziej wydajnej techniki animacji? Czy VM Tracker pokazuje mi, że ładuję się na wiele obrazów naraz? – daveMac

Odpowiedz

6

WWDC (Session 242) video znaleźć wyszukując wydajności iOS App: pamięć na stronie WWDC 2012 Session Videos daje lepsze zrozumienie różnicy między VM i prawdziwej pamięci.

Oto krótki przegląd: Wskaźnik Zakres = 2^32 = 4 GB Jest większy niż fizyczna pamięć dowolnego urządzenia (jabłko zostało wysłane). Odbywa się to przez zabranie całej dostępnej przestrzeni i podzielenie jej na 4 kb. Nie cała pamięć, do której aplikacja może uzyskać dostęp, znajduje się w pamięci fizycznej w tym samym czasie. Te porcje 4 kb są stronami wywołania. Twoje przydziały zostają podzielone z większych części pamięci wirtualnej. Następnie te wirtualne obiekty pamięci zostają zmapowane do pamięci fizycznej.

+4

+1. To jest niesamowite wideo, które powinno być wymagane przed użyciem narzędzi pamięci. –

+0

Obejrzałem film i myślę, że go otrzymuję, ale wciąż nie rozumiem, jak sprawdzić, czy moja aplikacja rzeczywiście ładuje się zbyt szybko. – daveMac

+0

Czy nie ma bezpieczniejszego lub lepszego sposobu sprawdzenia, czy aplikacja ładuje się zbyt często, aby upewnić się, że to nie koniec? – daveMac

Powiązane problemy