ระบบบิลด์ Android เปิดตัวใน Android 12 รองรับการเพิ่มประสิทธิภาพโมดูล Android ดั้งเดิมที่มีกฎการสร้างพิมพ์เขียวโดยใช้ Automatic Feedback-Directed Optimization (AutoFDO) AutoFDO เป็นเทคนิคการปรับให้เหมาะสมตามการสุ่มตัวอย่าง AutoFDO บันทึกพฤติกรรมรันไทม์ของไบนารีของระบบ ช่วยให้คอมไพเลอร์ปรับปรุงประสิทธิภาพให้ดีขึ้น ขณะเดียวกันก็ลดขนาดไบนารีด้วย AutoFDO รองรับการรวบรวมข้อมูลจากสถาปัตยกรรม AArch32 และ AArch64 แม้ว่าโปรไฟล์จะสามารถนำมาใช้ข้ามสถาปัตยกรรมได้ก็ตาม
AutoFDO เป็นผู้สืบทอดสำหรับ Profile-Guided Optimization (PGO) ที่อิงตามเครื่องมือวัด
เมื่อเปรียบเทียบกับโปรไฟล์ที่อิงตามเครื่องมือวัดอื่นๆ AutoFDO มีคุณประโยชน์เพิ่มเติมเหล่านี้:
การรวบรวมข้อมูลที่ไม่เป็นการรบกวน: สามารถรวบรวมโปรไฟล์ AutoFDO จากการพัฒนาหรืออุปกรณ์ผู้ใช้โดยไม่ต้องแก้ไขกฎการสร้างใดๆ
การแสดงการใช้งานในโลกแห่งความเป็นจริง: AutoFDO แสดงถึงพฤติกรรมการใช้งานในโลกแห่งความเป็นจริงโดยถือว่าโปรไฟล์ถูกรวบรวมจากอุปกรณ์ของผู้ใช้ ในขณะที่เครื่องมือวัด PGO เป็นตัวแทนของปริมาณงานการรวบรวมสังเคราะห์เท่านั้น โดยทั่วไปแล้ว การสร้างปริมาณงานคอลเลกชันที่ตรงกับการใช้งานจริงไม่ใช่เรื่องตรงไปตรงมา
AOSP มาพร้อมกับโปรไฟล์ AutoFDO สำหรับโครงการที่มีความสำคัญต่อประสิทธิภาพส่วนใหญ่ โปรไฟล์ถูกรวบรวมจากอุปกรณ์โทรศัพท์และแท็บเล็ต และเป็นตัวแทนของรูปแบบการใช้งานทั่วไป โปรไฟล์จะอยู่ภายใต้ toolchain/pgo-profiles/sampling
AFDO ถูกเปิดใช้งานตามค่าเริ่มต้นบน AOSP
เปิดใช้งาน AutoFDO สำหรับกฎการสร้างพิมพ์เขียว
หากต้องการเปิดใช้งาน AutoFDO สำหรับกฎการสร้างพิมพ์เขียว ให้ผนวก afdo: true
เข้ากับไลบรารีที่ใช้ร่วมกันหรือกฎไบนารี
รวบรวมโปรไฟล์
โปรไฟล์ที่รวมไว้ล่วงหน้าที่มาพร้อมกับ AOSP ไม่รองรับสถานการณ์เฉพาะเหล่านี้:
- การรวมโครงการ AutoFDO เพิ่มเติม
- การมีอยู่ของรหัสที่แก้ไขในเครื่อง
- รูปแบบการใช้งานเฉพาะที่เกี่ยวข้องกับระบบของคุณ
หากคุณมีสถานการณ์อย่างใดอย่างหนึ่งเหล่านี้ คุณต้องรวบรวมโปรไฟล์โดยตรงจากอุปกรณ์การพัฒนาหรือผู้ใช้
สำหรับคำแนะนำโดยละเอียดเกี่ยวกับวิธีการเตรียมอุปกรณ์ ARM สำหรับการรวบรวมโปรไฟล์ AutoFDO โปรดดูที่ การรวบรวมข้อมูล ETM สำหรับ AutoFDO
สำหรับข้อมูลเกี่ยวกับวิธีการเปิดใช้งานการรวบรวม การประมวลผล และการอัพโหลดโปรไฟล์พื้นหลังอัตโนมัติ โปรดดูที่ Profcollect
วิเคราะห์โปรไฟล์ AutoFDO
Android ใช้โปรไฟล์ LLVM AutoFDO มาตรฐาน โปรไฟล์ AFDO สามารถอ่านได้โดยใช้เครื่องมือ llvm-profdata
ของ LLVM สคริปต์ afdo_summary.sh
( toolchain/pgo-profiles/scripts/afdo_summary.sh
) จะสร้างฟังก์ชันที่ดำเนินการบ่อยที่สุดโดยอัตโนมัติตามโปรไฟล์ AutoFDO