2012-02-22 13 views
5

Mam kod, który ma małą ilość aktywnych przydziałów (około 5 MB według Instrumentów), ale dużą ilość pamięci systemowej (ponad 100 MB). Wiem, że kod jest nieszczelny i nie widzę żadnych skoków alokacji po jakiejś optymalizacji, ale nadal mam awarię z powodu dużej ilości zużywanej pamięci.Wysokie użycie pamięci wirtualnej + niskie alokacje na iOS

Przeglądałem wiele i widziałem, że powinienem używać przyrządu VM Tracker, który potwierdza moje wysokie użycie pamięci, ale nie jestem pewien, jak rozwiązać tę sytuację. Używam jak najmniejszej ilości pamięci, wciąż jest za dużo na iPadzie 1 i nie mam wiedzy ani narzędzi, aby dowiedzieć się, jak sprawić, by system operacyjny nie oznaczał tak dużo pamięci, jak brudnej, kiedy nie jestem właściwie go używa. Gdzie mogę się stąd udać?

Odpowiedz

0

Użyj narzędzia Profil i wybierz pamięć + przydziały. Kliknij tracker VM i zrób migawki. W wyniku tego powstaje lista z rezydentnym zużyciem pamięci i pamięci wirtualnej dla każdego typu obiektu. To da ci wskazanie, gdzie szukać.

Myślę, że najczęstszym problemem jest to, że masz wiele autoreleased obiektów, które znajdują się w autoreleasepool. Poniższy link wyjaśnia więcej na temat postępowania z autoreleasepools: How does the NSAutoreleasePool autorelease pool work?

Powiązane problemy