Optymalizowanie wydajności za pomocą narzędzi i interfejsów API Unity

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_raterozszerzenia, 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ę

  1. W menu głównym Unity kliknij Window > Analysis > Frame Debugger (Okno > Analiza > Debuger klatek).
  2. Aby rozpocząć rejestrowanie danych klatek, kliknij Włącz.
  3. Przeglądaj wywołania rysowania, aby zobaczyć, co i kiedy jest renderowane.