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

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 dựa trên phương pháp lấy mẫu tối ưu hoá. Tính năng AutoFDO ghi lại hành vi trong thời gian chạy của hệ thống tệp nhị phân, cho phép trình biên dịch tối ưu hoá hiệu suất hiệu quả hơn, đồng thời giảm kích thước nhị phân. Android hỗ trợ thu thập hồ sơ từ X86, X86_64, Mặc dù có thể dùng các cấu hình này trên nhiều kiến trúc, nhưng các thiết bị ARM và ARM64.

AutoFDO là phiên bản kế thừa cho tính năng Tối ưu hoá theo hướng dẫn của hồ sơ dựa trên đo lường (PGO).

So với các cấu hình dựa trên khả năng đo lường khác, AutoFDO có thêm lợi ích:

  • 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 diễn mức sử dụng trong thực tế: AutoFDO thể hiện hành vi sử dụng trong thực tế 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 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 đơ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ày nằm trong toolchain/pgo-profiles/sampling. AFDO được bật theo mặc định trên AOSP.

Bật tính năng AutoFDO cho quy tắc tạo bản thiết kế

Để bật tính năng AutoFDO cho các quy tắc tạo bản thiết kế, hãy thêm afdo: true vào đối tượng dùng chung thư viện hoặc quy tắc nhị phân.

Thu thập hồ sơ

Hồ sơ được đóng gói sẵn đi kèm 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
  • Sự hiện diện của 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ừ 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 thu thập hồ sơ AutoFDO, hãy tham khảo Thu thập dữ liệu ETM cho Tự động FDO.

Để 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 các cấu hình LLVM AutoFDO tiêu chuẩn. Hồ sơ AFDO có thể đọc được 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 các hàm được thực thi thường xuyên nhất theo hồ sơ AutoFDO.