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.