การเพิ่มประสิทธิภาพตามความคิดเห็นอัตโนมัติ (12 ขึ้นไป)

ระบบบิลด์ของ Android ที่เปิดตัวใน Android 12 รองรับการเพิ่มประสิทธิภาพโมดูล Android ดั้งเดิมที่มีกฎการบิลด์ Blueprint โดยใช้ Automatic Feedback-Directed Optimization (AutoFDO) AutoFDO เป็นเทคนิคการเพิ่มประสิทธิภาพที่อิงตามการสุ่มตัวอย่าง AutoFDO จะบันทึกลักษณะการทำงานของไบนารีของระบบ ในรันไทม์ ซึ่งช่วยให้คอมไพเลอร์เพิ่มประสิทธิภาพได้ดียิ่งขึ้นพร้อมทั้ง ลดขนาดไบนารี Android รองรับการรวบรวมโปรไฟล์จากอุปกรณ์ X86, X86_64, ARM และ ARM64 แม้ว่าจะใช้โปรไฟล์ในสถาปัตยกรรมต่างๆ ได้ก็ตาม

AutoFDO เป็นรุ่นต่อจาก Profile-Guided Optimization (PGO) ที่อิงตามการวัดประสิทธิภาพ

เมื่อเทียบกับโปรไฟล์ที่อิงตามการวัดประสิทธิภาพอื่นๆ AutoFDO มีข้อดีเพิ่มเติมดังนี้

  • การเก็บรวบรวมข้อมูลที่ไม่รบกวน: คุณสามารถรวบรวมโปรไฟล์ AutoFDO จากอุปกรณ์ของผู้ใช้หรืออุปกรณ์ที่ใช้ในการพัฒนาได้โดยไม่ต้องแก้ไขเพื่อสร้างกฎ

  • การแสดงการใช้งานจริง: AutoFDO แสดงลักษณะการใช้งานจริง โดยสมมติว่ามีการรวบรวมโปรไฟล์จากอุปกรณ์ของผู้ใช้ ในขณะที่ PGO ที่ใช้เครื่องมือ เป็นตัวแทนของภาระงานการรวบรวมข้อมูลสังเคราะห์เท่านั้น โดยทั่วไปแล้ว การสร้างภาระงานของคอลเล็กชันที่ตรงกับการใช้งานจริงในโลกนั้นไม่ใช่เรื่องง่าย

AOSP มาพร้อมกับโปรไฟล์ AutoFDO สำหรับโปรเจ็กต์ส่วนใหญ่ที่เน้นประสิทธิภาพ โปรไฟล์รวบรวมจากอุปกรณ์โทรศัพท์และแท็บเล็ต และแสดงถึง รูปแบบการใช้งานทั่วไป โปรไฟล์จะอยู่ในส่วน toolchain/pgo-profiles/sampling AFDO จะเปิดใช้โดยค่าเริ่มต้นใน AOSP

เปิดใช้ AutoFDO สำหรับกฎการสร้างพิมพ์เขียว

หากต้องการเปิดใช้ AutoFDO สำหรับกฎการสร้าง Blueprint ให้ต่อท้าย afdo: true กับไลบรารีที่แชร์ หรือกฎไบนารี

รวบรวมโปรไฟล์

โปรไฟล์ที่มาพร้อมกับ AOSP ไม่รองรับสถานการณ์เฉพาะต่อไปนี้

  • การรวมโปรเจ็กต์ AutoFDO เพิ่มเติม
  • การมีอยู่ของโค้ดที่แก้ไขในเครื่อง
  • รูปแบบการใช้งานที่ไม่ซ้ำซึ่งเชื่อมโยงกับระบบของคุณ

หากคุณมีสถานการณ์ใดสถานการณ์หนึ่งเหล่านี้ คุณต้องรวบรวมโปรไฟล์จากอุปกรณ์สำหรับพัฒนาหรืออุปกรณ์ของผู้ใช้โดยตรง

ดูวิธีการเตรียมอุปกรณ์ ARM สำหรับ การรวบรวมโปรไฟล์ AutoFDO แบบละเอียดได้ที่ รวบรวมข้อมูล ETM สำหรับ AutoFDO

ดูวิธีการโดยละเอียดเกี่ยวกับวิธีเตรียมอุปกรณ์ X86 สำหรับ รวบรวมโปรไฟล์ AutoFDO ได้ที่รวบรวมข้อมูล LBR สำหรับ AutoFDO

ดูข้อมูลเกี่ยวกับวิธีเปิดใช้การรวบรวม การประมวลผล และการอัปโหลดโปรไฟล์เบื้องหลังอัตโนมัติได้ที่ Profcollect

วิเคราะห์โปรไฟล์ AutoFDO

Android ใช้โปรไฟล์ LLVM AutoFDO มาตรฐาน อ่านโปรไฟล์ AFDO ได้โดยใช้เครื่องมือ llvm-profdata ของ LLVM afdo_summary.sh สคริปต์ (toolchain/pgo-profiles/scripts/afdo_summary.sh) จะสร้างฟังก์ชันที่เรียกใช้บ่อยที่สุดโดยอัตโนมัติตาม โปรไฟล์ AutoFDO