Ra mắt trong Android 12, hệ thống xây dựng Android hỗ trợ tối ưu hoá các mô-đun Android gốc có quy tắc bản dựng bản thiết kế bằng cách sử dụng tính năng Tự động tối ưu hoá theo hướng phản hồi (AutoFDO). AutoFDO là một kỹ thuật tối ưu hoá dựa trên hoạt động lấy mẫu. AutoFDO ghi lại hành vi trong thời gian chạy của các tệp nhị phân hệ thống, cho phép trình biên dịch tối ưu hoá hiệu suất tốt hơn trong khi vẫn giảm kích thước tệp nhị phân. Android hỗ trợ thu thập hồ sơ từ các thiết bị X86, X86_64, ARM và ARM64, mặc dù các hồ sơ này có thể được sử dụng trên nhiều cấu trúc.
AutoFDO là phiên bản kế nhiệm của tính năng Tối ưu hoá theo hướng dẫn của hồ sơ (PGO) dựa trên khả năng đo lường.
So với các hồ sơ dựa trên khả năng đo lường khác, AutoFDO có thêm các lợi ích sau:
Thu thập dữ liệu không gây phiền toái: Bạn có thể thu thập hồ sơ AutoFDO từ thiết bị phát triển hoặc thiết bị của người dùng mà không cần sửa đổi để tạo quy tắc.
Biểu thị mức sử dụng trong thực tế: AutoFDO biểu thị hành vi sử dụng trong thực tế giả định rằng hồ sơ được thu thập từ thiết bị của người dùng, trong khi PGO đo lường chỉ biểu thị mức tải thu thập dữ liệu tổng hợp. Thông thường, việc tạo một khối lượng công việc thu thập phù hợp hoàn hảo với mức sử dụng trong thực tế không phải là điều đơn giản.
AOSP đi kèm với hồ sơ AutoFDO cho hầu hết các dự án quan trọng về hiệu suất. Các hồ sơ này được thu thập từ các thiết bị điện thoại và máy tính bảng, đồng thời đại diện cho các mẫu sử dụng chung của chúng. Các hồ sơ nằm trong toolchain/pgo-profiles/sampling
. AFDO được bật theo mặc định trên AOSP.
Bật AutoFDO cho quy tắc bản dựng bản thiết kế
Để bật AutoFDO cho các quy tắc bản dựng bản thiết kế, hãy thêm afdo: true
vào thư viện dùng chung hoặc quy tắc nhị phân.
Thu thập hồ sơ
Hồ sơ đi kèm trước được cung cấp với AOSP không hỗ trợ các trường hợp cụ thể sau:
- Thêm các dự án AutoFDO khác
- Có mã được sửa đổi cục bộ
- Mẫu sử dụng riêng biệt liên kết với hệ thống của bạn
Nếu gặp một trong những trường hợp này, bạn phải thu thập hồ sơ trực tiếp từ thiết bị phát triển hoặc thiết bị của người dùng.
Để biết hướng dẫn chi tiết về cách chuẩn bị thiết bị ARM cho việc thu thập hồ sơ AutoFDO, hãy tham khảo phần Thu thập dữ liệu ETM cho AutoFDO.
Để biết thông tin về cách bật tính năng tự động thu thập, xử lý và tải hồ sơ ở chế độ nền lên, hãy xem Profcollect.
Phân tích hồ sơ AutoFDO
Android sử dụng hồ sơ AutoFDO LLVM chuẩn. Bạn có thể đọc hồ sơ AFDO bằng cách sử dụng công cụ llvm-profdata
của LLVM. Tập lệnh afdo_summary.sh
(toolchain/pgo-profiles/scripts/afdo_summary.sh
) tự động tạo các hàm được thực thi thường xuyên nhất theo hồ sơ AutoFDO.