2015-12-14 9 views
9

Próbuję zrozumieć, co ma sens przemijający i uporczywego kolumny w szablonie Przydziału. Z tutoriala http://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started Znalazłem "Kolumna Persistent utrzymuje liczbę obiektów każdego typu, które obecnie istnieją w pamięci. Kolumna Transient pokazuje liczbę obiektów, które istniały, ale od tego czasu zostały zwolnione. stosując pamięć, przemijające obiekty miały ich pamięć zwolniona. " enter image description hereCo naprawdę oznacza przez uporczywe i przemijające Kolumna w Szablon Instrumentation Allocation w Xcode

Zgodnie z wyjaśnieniem powyżej, od wybranego wiersza w tabeli statystyk z obrazu, można stwierdzić, 2 obiekty NSFileManager obecnie istnieje w pamięci i 19 nie. obiektów są tworzone i już zostały wydane.

Co to oznacza dla optymalizacji lub problemów z wydajnością aplikacji na iOS? Coś jak, tutaj całkowita liczba obiektów przejściowych w 19, która jest znacznie większa, powinna być mała, jeśli to możliwe, dla zwiększenia użytecznej użyteczności pamięci aplikacji lub czegoś innego?

Odpowiedz

4

Optymalizacja pod kątem wydajności w skrócie oznacza, że ​​aplikacja jest wciąż żywa i elastyczna. Metryka kluczowa optymalizacji nie jest przejściowa ani trwała dla jednego obiektu.

Na podstawie informacji, które NSFileManager używa 16 bajtów dla każdego obiektu. Więc to 32 obecnie trwały (2 * 16) i 336 (21 * 16) Razem.

Wysoka pamięć trwała wskazuje, że bieżący ślad jest bardzo wysoki dla danego obiektu. Duża pamięć całkowita wskazuje, że ślad w przeszłości mogło być wysokie (jeśli podzbiór tych alokacji były równoczesne)

 
While optimizing you should focus on mainly two aspects: 
1. How much is the minimum memory foot print when your app loads. 
2. How much is the maximum memory foot print. (You need to come up with use cases to figure out this one). 

Jako twój ślad pamięci zwiększa aplikacja spowalnia wydajności z powodu wielu transakcji zamiany stron wykonanych przez OS, aby zwolnić pamięć. Możesz to śledzić za pomocą narzędzia VM tracker. Optymalizacja oznacza, że ​​utrzymywanie średniej wielkości pamięci w tym punkcie jest niższe.