Otomatik Geri Bildirime Yönelik Optimizasyon (12 veya üzeri)

Android 12'de tanıtılan Android derleme sistemi, Otomatik Geri Bildirime Yönelik Optimizasyon (AutoFDO) kullanılarak plan oluşturma kurallarına sahip yerel Android modüllerinin optimize edilmesini destekler. AutoFDO örnekleme tabanlı bir optimizasyon tekniğidir. AutoFDO, sistem ikili dosyalarının çalışma zamanı davranışını yakalayarak derleyicilerin ikili boyutu azaltırken daha iyi performans optimizasyonları yapmasına olanak tanır. AutoFDO, AArch32 ve AArch64 mimarilerinden veri toplanmasını destekler, ancak profiller mimariler arasında kullanılabilir.

AutoFDO, enstrümantasyon tabanlı Profil Kılavuzlu Optimizasyonun (PGO) devamıdır.

Diğer enstrümantasyon tabanlı profillerle karşılaştırıldığında AutoFDO'nun şu ek avantajları vardır:

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

  • Gerçek dünya kullanım gösterimi: AutoFDO, profillerin kullanıcı cihazlarından toplandığını varsayarak gerçek dünya kullanım davranışını temsil ederken, enstrümantasyon PGO'su yalnızca sentetik toplama iş yükünü temsil eder. Gerçek dünyadaki kullanıma mükemmel şekilde uyan bir koleksiyon iş yükü oluşturmak genellikle kolay değildir.

AOSP, performans açısından kritik projelerin çoğu için AutoFDO profilleriyle birlikte gelir. Profiller telefon ve tablet cihazlardan toplanmıştır ve genel kullanım kalıplarını temsil etmektedir. Profiller toolchain/pgo-profiles/sampling altında bulunur. AFDO, AOSP'de varsayılan olarak etkindir.

Plan oluşturma kuralı için AutoFDO'yu etkinleştirme

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

Profilleri topla

AOSP ile sağlanan önceden paketlenmiş profil şu belirli senaryoları desteklemez:

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

Bu senaryolardan birine sahipseniz profilleri doğrudan geliştirme veya kullanıcı cihazlarından toplamanız gerekir.

ARM cihazlarının AutoFDO profillerini toplamaya nasıl hazırlanacağına ilişkin ayrıntılı talimat için AutoFDO için ETM verilerini toplama bölümüne bakın.

Otomatik arka plan profili toplamanın, işlemenin ve yüklemenin nasıl etkinleştirileceği hakkında bilgi için bkz. Profcollect .

AutoFDO profillerini analiz edin

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