Automatyczna optymalizacja na podstawie opinii (12 lub nowsza wersja)

Wprowadzony w Androidzie 12 system kompilacji Androida obsługuje optymalizację Moduły Androida, które mają reguły kompilacji planu z ustawieniem Automatyczne Optymalizacja na podstawie opinii (AutoFDO). AutoFDO to technika optymalizacji oparta na próbkowaniu. AutoFDO rejestruje zachowanie binarek systemowych w czasie wykonywania, co umożliwia kompilatorom lepsze optymalizowanie wydajności przy jednoczesnym zmniejszaniu rozmiaru binarek. Android obsługuje zbieranie profili z urządzeń X86, X86_64, ARM i ARM64, ale można ich używać na różnych architekturach.

AutoFDO to następca narzędzia do optymalizacji opartej na instrukcjach z pomocą profilu (PGO).

W porównaniu z innymi profilami opartymi na narzędziach AutoFDO zapewnia dodatkowe Korzyści:

  • Dyskretne zbieranie danych: profile AutoFDO można zbierać ani na urządzeniach użytkowników, nie modyfikując reguł tworzenia reguł.

  • Przedstawienie rzeczywistych zastosowań: funkcja AutoFDO odzwierciedla rzeczywiste użycie. zakładając, że profile są zbierane z urządzeń użytkowników, a instrumentacja PGO jest reprezentatywny tylko dla zadania zbierania syntetycznego. Zwykle nie jest łatwo utworzyć zbiorczy zestaw zadań, który idealnie odpowiadałby rzeczywistemu użyciu.

AOSP jest wyposażony w profile AutoFDO przeznaczone do większości projektów o krytycznym znaczeniu dla wydajności. zostały zebrane z telefonów i tabletów i są reprezentatywne ich ogólnych wzorców użytkowania. Profile znajdują się w sekcji toolchain/pgo-profiles/sampling. Funkcja AFDO jest domyślnie włączona w AOSP.

Włączanie AutoFDO w przypadku reguły kompilacji szablonu

Aby włączyć AutoFDO dla reguł kompilacji planu, dołącz afdo: true do udostępnionych lub regułę binarną.

Zbieranie profili

Profil połączony z AOSP nie obsługuje tych scenariusze:

  • Uwzględnienie dodatkowych projektów AutoFDO
  • obecność zmodyfikowanego lokalnie kodu;
  • Unikalne wzorce wykorzystania powiązane z Twoim systemem

Jeśli występuje jeden z tych scenariuszy, musisz zebrać profile bezpośrednio z urządzeń programistów lub użytkowników.

Szczegółowe instrukcje dotyczące przygotowywania urządzeń z procesorem ARM do zbierania profili AutoFDO znajdziesz w artykule Zbieranie danych ETM na potrzeby AutoFDO.

Informacje o tym, jak włączyć automatyczne zbieranie, przetwarzanie i przesyłanie profili w tle, znajdziesz w sekcji Profcollect.

Analizowanie profili AutoFDO

Android używa standardowych profili LLVM AutoFDO. Profile AFDO można odczytywać za pomocą narzędzia llvm-profdata LLVM. Skrypt afdo_summary.sh (toolchain/pgo-profiles/scripts/afdo_summary.sh) automatycznie generuje najczęściej wykonywane funkcje zgodnie z Profil AutoFDO.