Unity udostępnia różne narzędzia i interfejsy API związane z wydajnością. Używaj tych narzędzi do pomiaru i monitorowania danych o wydajności, określania częstotliwości odświeżania wyświetlacza oraz analizowania sposobu renderowania sceny klatka po klatce.
Pomiar i monitorowanie danych o skuteczności
Pakiet Unity OpenXR: Android XR zawiera obszerne dane o wydajności, których możesz używać do monitorowania i optymalizowania aplikacji.
Dostęp do tych danych możesz uzyskać za pomocą interfejsu Performance Metrics API.
Zalety
- Monitorowanie w czasie rzeczywistym wykorzystania pamięci oraz wydajności procesora i GPU.
- Statystyki systemowe z warstw kompozytora i środowiska wykonawczego.
- Pomiar wpływu zmian optymalizacji.
Aby uzyskać najlepsze wyniki, aktywnie monitoruj te dane podczas pracy nad aplikacją i dostrajania jej wydajności:
AndroidXRPerformanceMetrics androidXRPerformanceMetrics = OpenXRSettings.Instance.GetFeature<AndroidXRPerformanceMetrics>();
string values = "";
if (m_Display != null && androidXRPerformanceMetrics != null && androidXRPerformanceMetrics.supportedMetricPaths != null)
foreach (var metric in androidXRPerformanceMetrics.supportedMetricPaths)
{
float stat;
XRStats.TryGetStat(m_Display, metric, out stat);
values += string.Format("{0}: {1:F2}\n", metric, stat);
}
Określanie częstotliwości odświeżania wyświetlacza
Częstotliwość odświeżania wyświetlacza umożliwia aplikacji żądanie od środowiska wykonawczego wyższej lub niższej liczby klatek, do której system próbuje się dostosować.
Zalety
- Dostosowywanie częstotliwości odświeżania na podstawie złożoności sceny.
- Optymalizacja zużycia energii podczas scen z mniejszą ilością światła.
- dynamicznie dostosowywać się do wymagań aplikacji,
Włącz tę funkcję
Aby uzyskać dostęp do XR_FB_display_refresh_rate
rozszerzenia, użyj interfejsu Unity API.
Możesz poprosić o liczbę klatek na sekundę, np. 72, 90 lub 120, a system przełączy się na wybraną wartość, jeśli sprzęt to umożliwi i pozwolą na to warunki termiczne.
Włączanie debugera klatek Unity
Debuger klatek to wbudowane narzędzie Unity do analizowania sposobu renderowania sceny klatka po klatce. To narzędzie pokazuje sekwencję wywołań drawCall i umożliwia przechodzenie przez nie, aby zrozumieć zachowanie renderowania.
Zalety
- Identyfikowanie wąskich gardeł renderowania i nieoczekiwanych wywołań rysowania.
- Sprawdź, czy SRP Batcher działa prawidłowo (poszukaj wpisów „RenderLoopNewBatcher”).
- Sprawdź grupowanie GPU Resident Drawer (poszukaj wpisów „Hybrid Batch Group”).
- Poznaj kolejność operacji renderowania.
Włącz tę funkcję
- W menu głównym Unity kliknij Window > Analysis > Frame Debugger (Okno > Analiza > Debuger klatek).
- Aby rozpocząć rejestrowanie danych klatek, kliknij Włącz.
- Przeglądaj wywołania rysowania, aby zobaczyć, co i kiedy jest renderowane.