Diperkenalkan di Android 12, sistem build Android mendukung pengoptimalan modul Android native yang memiliki aturan build blueprint menggunakan Pengoptimalan yang Diarahkan Masukan Otomatis (AutoFDO). AutoFDO adalah teknik pengoptimalan berbasis pengambilan sampel. 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 (PGO) berbasis instrumentasi.
Dibandingkan dengan profil berbasis instrumentasi lainnya, AutoFDO memiliki manfaat tambahan berikut:
Pengumpulan data yang tidak mengganggu: Profil AutoFDO dapat dikumpulkan dari perangkat pengembangan atau pengguna tanpa modifikasi apa pun untuk membuat aturan.
Representasi penggunaan di dunia nyata: AutoFDO mewakili perilaku penggunaan di dunia nyata dengan asumsi profil dikumpulkan dari perangkat pengguna, sedangkan PGO instrumentasi hanya mewakili beban kerja pengumpulan sintetis. Secara umum, membuat beban kerja koleksi yang cocok dengan penggunaan di dunia nyata tidaklah mudah.
AOSP dilengkapi dengan profil AutoFDO untuk sebagian besar project yang mementingkan 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 yang dipaketkan sebelumnya yang disediakan dengan AOSP tidak mendukung skenario tertentu ini:
- 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 perangkat pengembangan atau pengguna.
Untuk petunjuk mendetail tentang cara menyiapkan perangkat ARM untuk mengumpulkan profil AutoFDO, lihat Mengumpulkan 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.