Diperkenalkan di Android 12, sistem build Android mendukung pengoptimalan modul Android native yang memiliki aturan build blueprint menggunakan Automatic Feedback-Directed Optimization (AutoFDO). AutoFDO adalah teknik pengoptimalan berbasis sampling. AutoFDO menangkap perilaku runtime biner sistem, sehingga compiler dapat melakukan pengoptimalan performa yang lebih baik sekaligus mengurangi ukuran biner. Android mendukung pengumpulan profil dari perangkat X86, X86_64, ARM, dan ARM64, meskipun profil tersebut dapat digunakan di seluruh arsitektur.
AutoFDO adalah penerus Pengoptimalan yang Dipandu Profil berbasis instrumentasi (PGO).
Dibandingkan dengan profil berbasis instrumentasi lainnya, AutoFDO memiliki manfaat tambahan berikut:
Pengumpulan data yang tidak mengganggu: Profil AutoFDO dapat dikumpulkan dari perangkat pengguna atau pengembangan tanpa perubahan pada aturan build.
Representasi penggunaan dunia nyata: AutoFDO mewakili perilaku penggunaan di dunia nyata mengasumsikan profil dikumpulkan dari perangkat pengguna, sedangkan PGO instrumentasi hanya mewakili beban kerja pengumpulan sintetis. Tidak dan umumnya mudah dibuat untuk membuat workload koleksi yang dapat sesuai dengan penggunaan di dunia nyata.
AOSP dilengkapi dengan profil AutoFDO untuk sebagian besar project yang penting bagi performa. Profil
ini dikumpulkan dari perangkat ponsel dan tablet, dan mewakili
pola penggunaan umumnya. Profil tersebut berada di bagian
toolchain/pgo-profiles/sampling
. AFDO diaktifkan secara default di AOSP.
Mengaktifkan AutoFDO untuk aturan build blueprint
Untuk mengaktifkan AutoFDO untuk aturan build blueprint, tambahkan afdo: true
ke library
bersama atau aturan biner.
Mengumpulkan profil
Profil paket yang disediakan sebelumnya dengan AOSP tidak mendukung skenario:
- Penyertaan proyek AutoFDO tambahan
- Adanya kode yang dimodifikasi secara lokal
- Pola penggunaan unik yang terkait dengan sistem Anda
Jika memiliki salah satu skenario ini, Anda harus mengumpulkan profil langsung dari pengembangan perangkat lunak atau pengguna.
Untuk petunjuk terperinci tentang cara menyiapkan perangkat ARM untuk mengumpulkan profil AutoFDO, lihat Kumpulkan data ETM untuk AutoFDO.
Untuk informasi tentang cara mengaktifkan pengumpulan, pemrosesan, dan upload profil latar belakang otomatis, lihat Profcollect.
Menganalisis profil AutoFDO
Android menggunakan profil AutoFDO LLVM standar. Profil AFDO dapat dibaca
menggunakan alat llvm-profdata
LLVM. Skrip afdo_summary.sh
(toolchain/pgo-profiles/scripts/afdo_summary.sh
)
otomatis menghasilkan fungsi yang paling sering dieksekusi sesuai dengan
profil AutoFDO.