Otomatik Geri Bildirime Yönelik Optimizasyon (12 veya daha yüksek)

Android 12'de kullanıma sunulan Android derleme sistemi, Otomatik Geri Bildirim Yönlü Optimizasyon (AutoFDO)'u kullanarak plan derleme kurallarına sahip yerel Android modüllerinin optimize edilmesini destekler. AutoFDO, örneklemeye dayalı bir optimizasyon tekniğidir. AutoFDO, sistem ikililerinin çalışma zamanındaki davranışını yakalar. Böylece derleyiciler, ikili boyutunu küçültmenin yanı sıra daha iyi performans optimizasyonları yapabilir. Android; X86, X86_64, ARM ve ARM64 cihazlarından profil toplamayı destekler, ancak profiller farklı mimarilerde kullanılabilir.

AutoFDO, enstrümantasyon tabanlı Profil Kılavuzlu Optimizasyon'un (PGO) halefidir.

Diğer enstrümantasyon tabanlı profillere kıyasla AutoFDO'nun ek avantajları şunlardır:

  • Göze çarpmayan veri toplama: AutoFDO profilleri, kurallar oluşturmak için herhangi bir değişiklik yapılmadan geliştirme veya kullanıcı cihazlarından toplanabilir.

  • Gerçek dünyadaki kullanım temsili: AutoFDO, profillerin kullanıcı cihazlarından toplandığı varsayılırken, enstrümantasyon PGO'su yalnızca sentetik koleksiyon iş yükünü temsil eder. Gerçek hayatta kullanımla mükemmel şekilde eşleşen bir koleksiyon iş yükü oluşturmak genellikle kolay değildir.

AOSP, performans açısından kritik çoğu proje için AutoFDO profilleriyle birlikte sunulur. Telefon ve tablet cihazlardan toplanan bu profiller, cihazların genel kullanım kalıplarını temsil eder. Profiller toolchain/pgo-profiles/sampling altında bulunur. AFDO, AOSP'de varsayılan olarak etkindir.

Bir taslak derleme kuralı için AutoFDO'yu etkinleştirme

Şablon derleme kuralları için AutoFDO'yu etkinleştirmek üzere paylaşılan kitaplığa veya ikili kurala afdo: true ekleyin.

Profil toplama

AOSP ile birlikte sağlanan önceden paketlenmiş profil aşağıdaki senaryoları desteklemez:

  • Ek AutoFDO projelerinin dahil edilmesi
  • Yerel olarak değiştirilmiş kod varlığı
  • Sisteminizle ilişkili benzersiz kullanım kalıpları

Bu senaryolardan biriyle karşılaşırsanız doğrudan geliştirme veya kullanıcı cihazlarından profil toplamanız gerekir.

ARM cihazlarının AutoFDO profillerini toplamak üzere nasıl hazırlanacağıyla ilgili ayrıntılı talimatları AutoFDO için ETM verilerini toplama bölümünde bulabilirsiniz.

Otomatik arka planda profil toplama, işleme ve yükleme özelliğini etkinleştirme hakkında bilgi edinmek için Profcollect başlıklı makaleyi inceleyin.

AutoFDO profillerini analiz etme

Android, standart LLVM AutoFDO profillerini kullanır. AFDO profilleri, LLVM'in llvm-profdata aracı kullanılarak okunabilir. afdo_summary.sh komut dosyası (toolchain/pgo-profiles/scripts/afdo_summary.sh), AutoFDO profiline göre en sık yürütülen işlevleri otomatik olarak oluşturur.