Diperkenalkan di Android 12, sistem build Android mendukung pengoptimalan modul Android native yang memiliki aturan build blueprint menggunakan Pengoptimalan yang Diarahkan oleh Feedback Otomatis (AutoFDO). AutoFDO adalah teknik pengoptimalan berbasis pengambilan sampel. AutoFDO merekam perilaku runtime biner sistem, sehingga memungkinkan compiler melakukan pengoptimalan performa yang lebih baik sekaligus mengurangi ukuran biner. Android mendukung pengumpulan profil dari perangkat X86, X86_64, ARM, dan ARM64, meskipun profil 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 merepresentasikan perilaku penggunaan di dunia nyata dengan asumsi profil dikumpulkan dari perangkat pengguna, sedangkan PGO instrumentasi hanya merepresentasikan beban kerja pengumpulan sintetis. Umumnya, tidak mudah membuat beban kerja pengumpulan yang sangat cocok dengan penggunaan di dunia nyata.
AOSP dilengkapi dengan profil AutoFDO untuk sebagian besar project yang mementingkan performa. Profil dikumpulkan dari perangkat ponsel dan tablet, serta mewakili pola penggunaan umum. Profil terletak 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 aturan biner atau library bersama.
Mengumpulkan profil
Profil yang telah dibundel sebelumnya yang disediakan dengan AOSP tidak mendukung skenario tertentu ini:
- Pencantuman project AutoFDO tambahan
- Keberadaan kode yang dimodifikasi secara lokal
- Pola penggunaan unik yang terkait dengan sistem Anda
Jika Anda memiliki salah satu skenario ini, Anda harus mengumpulkan profil langsung dari perangkat pengembangan atau pengguna.
Untuk mengetahui petunjuk mendetail tentang cara menyiapkan perangkat ARM untuk mengumpulkan profil AutoFDO, lihat Mengumpulkan data ETM untuk AutoFDO.
Untuk mengetahui petunjuk mendetail tentang cara menyiapkan perangkat X86 untuk mengumpulkan profil AutoFDO, lihat Mengumpulkan data LBR untuk AutoFDO.
Untuk mengetahui 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
)
secara otomatis membuat fungsi yang paling sering dieksekusi sesuai dengan
profil AutoFDO.