5

Używam Cocos2d 2.0 z włączonym ARC. Moja gra to losowa gra, więc muszę załadować/rozładować tekstury (spritesheet-batchnode) w scenie w środku gry. Próbuję removespriteframesfromfile i usunąć teksturę dla klucza dla arkusza spriteheet, który chcę zwolnić w środku. Kiedy używam dumpcachedtextureInfo po odciążeniu arkusza, tekstura spriteheet nie pojawia się w dziennikach dumpcachedtextureinfo.Szacowanie wykorzystania pamięci w grze Cocos2d

Ale kiedy używam monitora Instrumentów/aktywności do profilowania mojej aplikacji, rzeczywiste użycie pamięci nie spada po rozładowaniu tekstury i arkusza kalkulacyjnego.

Czy istnieje sposób, w którym dumpcachedtextureinfo nie pokaże tekstury, która jest nadal w pamięci? Ponadto kolumna Moje livebytes w alokacjach pokazuje 4 MB.

Również w różnych miejscach czytam, że przydziały nie wyświetlają pamięci tekstury.

Więc moi przydziały żyć kolumna bajtów mówi 4 MB, mój całkowity pamięci tekstur, jak pokazano z kłód dumpcchedtextureinfo pokazano być 84MB, ale fotosy monitora pamięci pokazuje zużycie pamięci rzeczywistej być 84 + wielkość Spritesheet + Live Bajty

Nie jestem w stanie zrozumieć tej różnicy?

Nie opuszczam sceny, więc nie jestem pewien, czy ARC trzyma pamięć, czy co?

+0

Skoro już przy użyciu instrumentów, należy sprawdzić, czy któryś z wielkim Kawałki pamięci wciąż "żyją" i być może wyciekły. Poza tym, być może patrzyłeś na całkowitą kolumnę przydziałów, która nigdy się nie zmniejszy. – LearnCocos2D

+0

Jestem zaniepokojony miarą "Wykorzystanie rzeczywistej pamięci" w ramach monitorowania aktywności. Nie zmniejsza się wcale, nawet po rozładowaniu. Nie mogę zrozumieć, dlaczego tak jest? – user1847220

Odpowiedz

4

Kilka przydatnych notatek dla Ciebie

  • This Cocos2d memory optimisation wyjaśnia bardzo dobrze o zarządzaniu pamięcią w Cocos2d.

  • Aby sprawdzić całkowity przydział pamięci użyj: Instrument-> Monitor aktywności.

enter image description here

enter image description here

  • Aby sprawdzić wycieki pamięci użycia: dla instrumentu> Wycieki enter image description here
+0

Przeszedłem już przez ten link i tak, jest to bardzo pomocne. Moim problemem nie jest optymalizacja pamięci. Mój problem polega na poznaniu dokładnej pamięci używanej przez moją aplikację w danym momencie. – user1847220

+0

w instrumencie możesz zobaczyć ... mam nadzieję, że wiesz: - – Guru

+1

również: wybierz alokacje, listę obiektów. Wyszukaj nazwę klasy (np. CCTexture2D). Jeśli obok jest kropka, nadal żyje (w pamięci). Sprawdź, czy to się zmieni podczas usuwania tex z pamięci podręcznej. – LearnCocos2D

Powiązane problemy