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 xây dựng bản thiết kế bằng cách sử dụng tính năng Tự động tối ưu hoá dựa trên phản hồi (AutoFDO). AutoFDO là kỹ thuật tối ưu hoá dựa trên 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 cấu hình dựa trên khả năng đo lường khác, tính năng AutoFDO có thêm những 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ừ các 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 thực tế không phải là điều dễ dàng.
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 cùng với AOSP không hỗ trợ các trường hợp cụ thể sau:
- Đưa vào các dự án AutoFDO khác
- Sự hiện diện của mã được sửa đổi cục bộ
- Mô hình sử dụng riêng biệt liên quan đến hệ thống của bạn
Nếu gặp một trong các trường hợp này, bạn phải thu thập hồ sơ trực tiếp từ thiết bị của người dùng hoặc thiết bị phát triển.
Để biết hướng dẫn chi tiết về cách chuẩn bị thiết bị ARM nhằm 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 phần Profcollect.
Phân tích hồ sơ AutoFDO
Android sử dụng hồ sơ AutoFDO LLVM tiêu chuẩn. Bạn có thể đọc hồ sơ AFDO bằ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 ra các hàm được thực thi thường xuyên nhất theo cấu hình AutoFDO.