Charakterystyka wykorzystania pamięci przez aplikację jest podstawowym aspektem jej wydajności. Aby przeanalizować te charakterystyki, możesz użyć profilera systemu , sprawdzając dostępne informacje z licznika GPU.
Urządzenia Adreno
Na urządzeniach Adreno zacznij od wyróżnienia okresu odpowiadającego pojedynczej klatce GPU, zgodnie z opisem w artykule Szacowanie czasu przetwarzania klatek przez procesor i GPU. Użyj techniki opisanej na tej stronie, która polega na użyciu ścieżki % wykorzystania GPU lub podobnej ścieżki licznika dla granic czasu renderowania klatki. Ścieżki licznika używają tej samej techniki pomiaru czasu i pozwalają na dokładniejsze oszacowanie wykorzystania pamięci (w porównaniu z użyciem granic czasu renderowania klatki pochodzących z fragmentów GPU, których dane są zbierane niezależnie od danych ścieżki licznika).
Łączna liczba odczytów i zapisów
Po wyróżnieniu pojedynczej klatki w programie profilującym zacznij od sprawdzenia liczników Łączna liczba odczytów (bajtów/s) i Łączna liczba zapisów (bajtów/s). Te liczniki zapewniają dobry ogólny wgląd w to, ile danych przechodzi przez magistralę pamięci w ciągu jednej klatki. Staraj się zminimalizować ilość danych przesyłanych przez magistralę, ponieważ przepustowość pamięci jest dużym źródłem szybkiego zużycia baterii na urządzeniach mobilnych.
Możesz też sprawdzić liczniki Odczyt pamięci wierzchołków (bajtów/s) i Odczyt pamięci tekstur (bajtów/s) , aby określić część przepustowości używanej do danych wierzchołków i tekstur.
To, co uznasz za „dobre” w przypadku tych wartości, zależy od typu obciążeń występujących w aplikacji. Na przykład aplikacje 2D mogą wykorzystywać stosunkowo dużą (~2+ GB/s) przepustowość odczytu pamięci tekstur, ale przepustowość pamięci wierzchołków może być bardzo mała (~50 MB/s). Więcej informacji znajdziesz w dokumentacji dotyczącej analizowania przepustowości pamięci wierzchołków i analizowania wykorzystania przepustowości pamięci tekstur.
Wstrzymania pobierania
Sprawdź liczniki % wstrzymania pobierania wierzchołków, % wstrzymania pobierania tekstur i % wstrzymania w pamięci systemowej, ponieważ dadzą Ci one wskazówki dotyczące ogólnej wydajności pamięci aplikacji. Jeśli wartości są wyższe niż około 5%, oznacza to, że aplikacja nie układa danych w pamięci w wydajny sposób lub nie uzyskuje dostępu do danych w wydajny sposób, aby wykorzystać pamięć podręczną. Szczegółowe informacje o poprawie wykorzystania pamięci w przypadku tych typów zasobów znajdziesz w artykułach Analizowanie przepustowości pamięci wierzchołków i Analizowanie wykorzystania przepustowości pamięci tekstur.
Urządzenia Mali
Na urządzeniach Mali zacznij od wyróżnienia okresu odpowiadającego pojedynczej klatce GPU, zgodnie z opisem w artykule Szacowanie czasu przetwarzania klatek przez procesor i GPU. Użyj techniki opisanej na tej stronie, która polega na użyciu ścieżki % wykorzystania GPU lub podobnej ścieżki licznika dla granic czasu renderowania klatki. Ścieżki licznika używają tej samej techniki pomiaru czasu i pozwalają na dokładniejsze oszacowanie wykorzystania pamięci (w porównaniu z użyciem granic czasu renderowania klatki pochodzących z fragmentów GPU, których dane są zbierane niezależnie od danych ścieżki licznika).
Łączna liczba danych wyjściowych
Po wyróżnieniu pojedynczej klatki w profilerze systemu zacznij od sprawdzenia liczników Bajty odczytane z pamięci zewnętrznej i Bajty zapisane w pamięci zewnętrznej. Te liczniki zapewniają dobry ogólny wgląd w to, ile danych przechodzi przez magistralę pamięci w ciągu jednej klatki. Staraj się zminimalizować ilość danych przesyłanych przez magistralę, ponieważ przepustowość pamięci jest dużym źródłem zużycia baterii na urządzeniach mobilnych.
Łączna liczba danych wejściowych z pamięci wewnętrznej
Dostępne są też liczniki, które dostarczają informacji o samych pamięciach podręcznych. Interesujące Cię liczniki to „Cykle wstrzymania odczytu/zapisu z pamięci wewnętrznej”. Wyższe wartości oznaczają, że trafiasz do pamięci podręcznej, ale jest zbyt wiele żądań odczytu, w wyniku czego kod shadera jest wstrzymywany w oczekiwaniu na dostęp do pamięci.
Wstrzymania pobierania
Kolejny zestaw liczników, które możesz sprawdzić, to Cykle wstrzymania pobierania wierzchołków i Wstrzymanie pobierania tekstur , ponieważ dadzą Ci one wskazówki dotyczące ogólnej wydajności pamięci aplikacji. Jeśli widzisz wartości wyższe niż około 5%, oznacza to, że aplikacja nie układa danych w pamięci w wydajny sposób lub nie uzyskuje dostępu do danych w wydajny sposób, aby wykorzystać pamięć podręczną. Szczegółowe informacje o tym, jak poprawić wykorzystanie pamięci w przypadku tych typów zasobów, znajdziesz w artykułach Analizowanie przepustowości pamięci [wierzchołków|tekstur].