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, sistemin çalışma zamanı davranışını yakalar Böylece derleyicilerin hem daha iyi performans optimizasyonları yapabilir hem de yardımcı oluyorum. Android, X86, X86_64, ARM ve ARM64 cihazlardan profil toplamayı destekler. Ancak profiller farklı mimarilerde kullanılabilir.
AutoFDO, araç tabanlı Profil Rehberli Optimizasyonun yerini alacak (PGO)
Diğer enstrümantasyon tabanlı profillere kıyasla AutoFDO'nun ek avantajları şunlardır:
Göze çarpmayan veri toplama: AutoFDO profilleri aşağıdaki kaynaklardan toplanabilir hiçbir değişiklik yapmadan geliştirme veya kullanıcı cihazları için geçerlidir.
Gerçek dünyadaki kullanım temsili: AutoFDO, gerçek dünyadaki kullanım davranışını temsil eder kullanıcı cihazlarından toplanan profillerin toplandığı varsayılırken, temsilidir. Hayır veri toplama iş yüküne tam olarak uyum sağlayacak şekilde gerçek dünyadaki kullanımla eşleşir.
AOSP, performans açısından kritik olan çoğu proje için AutoFDO profilleriyle birlikte gönderilir. 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.
Şema derleme kuralı için AutoFDO'yu etkinleştir
Mavi baskı derleme kurallarında AutoFDO'yu etkinleştirmek için paylaşılan dosyaya afdo: true
ekleyin
kitaplığı veya ikili kuralı olur.
Profilleri topla
AOSP ile sağlanan önceden gruplanmış profil bu özel profili desteklemiyor senaryolar:
- 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 profilleri doğrudan cihazları ifade eder.
ARM cihazların AutoFDO profillerini toplamaya hazırlanması hakkında ayrıntılı talimatlar için AutoFDO için ETM verileri toplama başlıklı makaleyi inceleyin.
Arka planda otomatik profil toplamayı etkinleştirme hakkında bilgi için ve yükleme, bkz. Profcollect.
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 çalıştırılan işlevleri otomatik olarak oluşturur.