ระบบบิลด์ Android ที่เปิดตัวใน Android 12 รองรับการเพิ่มประสิทธิภาพโมดูล Android เนทีฟที่มีกฎการสร้างบิลด์ของพิมพ์เขียวโดยใช้การเพิ่มประสิทธิภาพโดยอัตโนมัติตามความคิดเห็นที่ได้รับ (AutoFDO) AutoFDO เป็นเทคนิคการเพิ่มประสิทธิภาพที่อิงตามการสุ่มตัวอย่าง AutoFDO จะบันทึกลักษณะการทำงานรันไทม์ของไบนารีของระบบ ซึ่งช่วยให้คอมไพเลอร์เพิ่มประสิทธิภาพได้ดียิ่งขึ้นและลดขนาดไบนารีได้ด้วย Android รองรับการเก็บรวบรวมโปรไฟล์จากอุปกรณ์ X86, X86_64, ARM และ ARM64 แม้ว่าโปรไฟล์จะใช้ได้กับสถาปัตยกรรมต่างๆ
AutoFDO เป็นเครื่องมือที่สืบทอดมาจากการเพิ่มประสิทธิภาพตามโปรไฟล์ที่อิงตามเครื่องมือวัด (PGO)
AutoFDO มีข้อดีเพิ่มเติมต่อไปนี้เมื่อเทียบกับโปรไฟล์ที่อิงตามเครื่องมือวัดอื่นๆ
การรวบรวมข้อมูลที่รบกวนผู้ใช้น้อยที่สุด: รวบรวมโปรไฟล์ AutoFDO จากอุปกรณ์การพัฒนาหรืออุปกรณ์ของผู้ใช้ได้โดยไม่ต้องแก้ไขกฎการสร้าง
การนําเสนอการใช้งานในชีวิตจริง: AutoFDO แสดงพฤติกรรมการใช้งานในชีวิตจริงโดยสมมติว่ามีการรวบรวมโปรไฟล์จากอุปกรณ์ของผู้ใช้ ส่วน PGO ที่ใช้เครื่องมือวัดจะแสดงถึงภาระงานการรวบรวมข้อมูลสังเคราะห์เท่านั้น โดยทั่วไปแล้ว การสร้างปริมาณงานของคอลเล็กชันที่ตรงกับการใช้งานจริงอย่างสมบูรณ์นั้นไม่ใช่เรื่องง่าย
AOSP มาพร้อมกับโปรไฟล์ AutoFDO สําหรับโปรเจ็กต์ที่เน้นประสิทธิภาพส่วนใหญ่ โดยรวบรวมโปรไฟล์จากอุปกรณ์โทรศัพท์และแท็บเล็ต และแสดงถึงรูปแบบการใช้งานทั่วไป โปรไฟล์จะอยู่ในส่วน
toolchain/pgo-profiles/sampling
AFDO จะเปิดใช้โดยค่าเริ่มต้นใน AOSP
เปิดใช้ AutoFDO สําหรับกฎการสร้างบิลด์เพลต
หากต้องการเปิดใช้ AutoFDO สำหรับกฎการสร้างบิลด์ ให้ใส่ 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