Tối ưu hóa theo hướng phản hồi tự động (12 trở lên)

Được giới thiệu trong Android 12, hệ thống xây dựng Android hỗ trợ tối ưu hóa các mô-đun Android gốc có quy tắc xây dựng kế hoạch chi tiết bằng cách sử dụng Tối ưu hóa theo hướng phản hồi tự động (AutoFDO) . AutoFDO là một kỹ thuật tối ưu hóa dựa trên lấy mẫu. AutoFDO nắm bắt hành vi 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 thực hiện tối ưu hóa hiệu suất tốt hơn đồng thời giảm kích thước tệp nhị phân. AutoFDO hỗ trợ thu thập dữ liệu từ kiến ​​trúc AArch32 và AArch64, mặc dù các cấu hình này có thể được sử dụng trên nhiều kiến ​​trúc.

AutoFDO là phiên bản kế thừa của Tối ưu hóa hướng dẫn hồ sơ (PGO) dựa trên thiết bị.

So với các cấu hình dựa trên thiết bị khác, AutoFDO có những lợi ích bổ sung sau:

  • Thu thập dữ liệu kín đáo: Hồ sơ AutoFDO có thể được thu thập từ thiết bị phát triển hoặc thiết bị người dùng mà không cần sửa đổi bất kỳ quy tắc xây dựng nào.

  • Trình bày mức sử dụng trong thế giới thực: AutoFDO thể hiện hành vi sử dụng trong thế giới thực giả sử hồ sơ được thu thập từ thiết bị của người dùng, trong khi PGO đo lường chỉ đại diện cho khối lượng công việc thu thập tổng hợp. Nhìn chung, việc tạo 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ế giới thực thường không hề đơn giản.

AOSP cung cấp hồ sơ AutoFDO cho hầu hết các dự án quan trọng về hiệu suất. Hồ sơ được thu thập từ thiết bị điện thoại và máy tính bảng và đại diện cho kiểu sử dụng chung của chúng. Các cấu hình được đặt trong toolchain/pgo-profiles/sampling . AFDO được bật theo mặc định trên AOSP.

Bật AutoFDO cho quy tắc xây dựng kế hoạch chi tiết

Để bật AutoFDO cho các quy tắc xây dựng kế hoạch chi tiết, 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ơ

Cấu hình cài sẵn được cung cấp với AOSP không hỗ trợ các trường hợp cụ thể sau:

  • Việc đưa vào các dự án AutoFDO bổ sung
  • Sự hiện diện của mã sửa đổi cục bộ
  • Các kiểu sử dụng duy nhất được liên kết với hệ thống của bạn

Nếu gặp một trong những tình huống 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ị người dùng.

Để biết hướng dẫn chi tiết về cách chuẩn bị các thiết bị ARM để thu thập cấu hình AutoFDO, hãy tham khảo Thu thập dữ liệu ETM cho AutoFDO .

Để biết thông tin về cách bật thu thập, xử lý và tải lên hồ sơ nền tự động, hãy xem Profcollect .

Phân tích hồ sơ AutoFDO

Android sử dụng cấu hình LLVM AutoFDO tiêu chuẩn. Có thể đọc cấu hình 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.