เปิดตัวการสนับสนุนการเพิ่มประสิทธิภาพแบบมีการแนะนำโปรไฟล์ใน AGDE เวอร์ชัน 22.2.71
การค้นหาการตั้งค่า PGO
เปิดการตั้งค่าโปรเจ็กต์จาก Solution Explorer
รูปที่ 1: หน้าต่างสำรวจโซลูชันของ Visual Studio
ตรวจสอบว่าแพลตฟอร์มของคุณได้รับการตั้งค่าเป็นการกำหนดค่า Android (เช่น Android-arm64-v8a)
ในแผงด้านซ้าย ให้เลือกคุณสมบัติการกำหนดค่า > ทั่วไป มองหา กลุ่มพร็อพเพอร์ตี้ชื่อ PGO
รูปที่ 2: กล่องโต้ตอบคุณสมบัติของโปรเจ็กต์
เปิดใช้บิลด์ที่ใช้ PGO ในโปรเจ็กต์
เพิ่มการกำหนดค่าใหม่ที่ชื่อว่า Instrumented ลงในโปรเจ็กต์ ข้อมูลนี้อิงตาม การกำหนดค่าที่คุณใช้ระหว่างการพัฒนาสำหรับการทดสอบ ซึ่งควรเป็น บิลด์ดั้งเดิมที่เพิ่มประสิทธิภาพแล้ว (คุณยังคงแก้ไขข้อบกพร่องเพิ่มเติมได้ คุณลักษณะที่เปิดใช้ตราบใดที่คุณเก็บการตั้งค่าการเพิ่มประสิทธิภาพของคอมไพเลอร์ไว้)
คลิกเครื่องมือจัดการการกำหนดค่า... ในกล่องโต้ตอบของหน้าพร็อพเพอร์ตี้
รูปที่ 3: กล่องโต้ตอบเครื่องมือจัดการการกำหนดค่า
ในกล่องโต้ตอบเครื่องมือจัดการการกำหนดค่า ให้เลือกโซลูชันที่ใช้งานอยู่ การกำหนดค่าและเลือก <New...>
รูปที่ 4: การสร้างการกำหนดค่าบิลด์ใหม่
... และสร้างการกำหนดค่าใหม่โดยใช้เครื่องมือ PGO
รูปที่ 5: กล่องโต้ตอบการกำหนดค่าโซลูชันใหม่
หากต้องการเปิดใช้การสร้างในโหมดใช้เครื่องมือ PGO เพื่อให้คุณสร้างโปรไฟล์ได้ สำหรับเกมของคุณ ให้เลือกเครื่องดนตรีจากรายการตัวเลือกสำหรับ การตั้งค่าโหมดการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์
รูปที่ 6: กล่องโต้ตอบคุณสมบัติของโปรเจ็กต์ที่ไฮไลต์การตั้งค่า PGO
สำหรับการตั้งค่าโปรไฟล์การเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ ให้ป้อนเส้นทางไปยัง
เพื่อเขียนไฟล์ข้อมูลโปรไฟล์เอาต์พุตดิบในอุปกรณ์ Android
โดยทั่วไปแล้วค่านี้ควรเป็น /data/data/<package
name>/cache/
โดยที่ <package name>
คือชื่อแพ็กเกจแบบเต็ม
APK – เช่น com.google.sample.tunnel
สำหรับข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับวิธีการทำงาน โปรดดูที่ Clang เอกสารประกอบ
เขียนข้อมูลโปรไฟล์ที่ใช้ PGO ลงในอุปกรณ์
ระบบการวัดคุม PGO มักจะเขียนข้อมูล PGO ลงในอุปกรณ์เมื่อ การออกจากกระบวนการ บน Android จะไม่มีการออกจากแอป และเพราะแอปเหล่านั้นจะถูกยุติการใช้งานเสมอ ช่วงเวลานี้ หมายถึง "เขียนไปยังดิสก์" เริ่มต้น ฟังก์ชันการทำงานไม่เคยทริกเกอร์ จึงต้อง เพื่อเขียนข้อมูล PGO ด้วยตนเอง
แอปของคุณคุณควรเรียกใช้ __llvm_profile_write_file
อย่างชัดแจ้งเพื่อเขียน
ข้อมูลโปรไฟล์ สัญลักษณ์นี้ใช้ได้เฉพาะเมื่อสร้างอุปกรณ์ที่ใช้ PGO เท่านั้น
งานสร้าง เพื่อให้ง่ายขึ้น เราขอแนะนำให้ใช้รูปแบบต่อไปนี้เมื่อ
โดยประกาศ __llvm_profile_write_file
ไปข้างหน้า
#ifdef PGO_INSTRUMENT
extern "C" int __llvm_profile_write_file(void);
#else
extern "C" int __llvm_profile_write_file(void) { return 0; }
#endif
การเรียกใช้ฟังก์ชันนี้จะเขียนข้อมูลโปรไฟล์ลงในโฟลเดอร์ที่คุณระบุ ก่อนหน้านี้
การดำเนินการเรียกใช้โปรไฟล์
หากต้องการสร้างโปรไฟล์ คุณเรียกใช้ APK ที่สร้างด้วยเครื่องมือ PGO ใน
อุปกรณ์เป้าหมาย หลังจากที่คุณใช้โค้ดจนเป็นที่น่าพอใจ และ
ทริกเกอร์การเรียกฟังก์ชัน __llvm_profile_write_file
แอปของคุณจะ
เขียนข้อมูลโปรไฟล์ลงในพื้นที่เก็บข้อมูล
ในขั้นตอนนี้ ให้คัดลอกโปรไฟล์ออกจากอุปกรณ์เพื่อนำไปใช้โดยคอมไพเลอร์
กำลังเตรียมข้อมูลโปรไฟล์ที่คอมไพเลอร์จะใช้
เมื่อใช้แบบแยกเดี่ยว เครื่องมือบรรทัดคำสั่ง llvm-profdata
ที่จัดส่งเป็นส่วนหนึ่งของ
ของ Clang/LLVM ใน Android NDK ใช้เพื่อเตรียมไฟล์ข้อมูลโปรไฟล์สำหรับการใช้งาน
โดยคอมไพเลอร์ระหว่างการเพิ่มประสิทธิภาพบิลด์โดยใช้แนวทางโปรไฟล์
AGDE ทำขั้นตอนนี้ให้คุณโดยอัตโนมัติด้วยการรวมโปรไฟล์ใดๆ เข้าด้วยกัน ไฟล์ข้อมูลที่คุณเพิ่มลงในโครงการ และการนำไฟล์ดังกล่าวไปใช้เมื่อ การตั้งค่าโหมดการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ในหน้าพร็อพเพอร์ตี้ของโปรเจ็กต์ ตั้งค่าเป็นเพิ่มประสิทธิภาพ
การสร้างโปรเจ็กต์ที่มีการเปิดใช้การเพิ่มประสิทธิภาพตามโปรไฟล์
เมื่อคุณได้บันทึกโปรไฟล์และเพิ่มไว้ในโปรเจ็กต์แล้ว คอมไพเลอร์สามารถใช้ข้อมูลดังกล่าวเพื่อปรับแต่งการเพิ่มประสิทธิภาพของบิลด์ได้
สร้างการกำหนดค่าโปรเจ็กต์ใหม่สำหรับบิลด์ที่เพิ่มประสิทธิภาพ PGO เพื่อให้คุณ สร้างในโหมดนี้เมื่อจำเป็น
รูปที่ 7: การสร้างการกำหนดค่าบิลด์ที่เพิ่มประสิทธิภาพ PGO ใหม่
ตั้งค่าโหมดการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ในพร็อพเพอร์ตี้ของโปรเจ็กต์ เพื่อเพิ่มประสิทธิภาพ
รูปที่ 8: การตั้งค่าโหมดการเพิ่มประสิทธิภาพ PGO เป็น "เพิ่มประสิทธิภาพ"
คัดลอกไฟล์จากอุปกรณ์และเพิ่มไฟล์ลงในโปรเจ็กต์ในโซลูชัน สำรวจ คอมไพเลอร์จะใช้ไฟล์ข้อมูลโปรไฟล์เหล่านี้ในครั้งถัดไป คุณสร้างการกำหนดค่าที่เพิ่มประสิทธิภาพ PGO และใช้เพื่อปรับแต่งวิธีที่คอมไพเลอร์ ช่วยเพิ่มประสิทธิภาพโค้ดของคุณ
คุณสามารถคัดลอกไฟล์ข้อมูลโปรไฟล์ลงในโปรเจ็กต์จากอุปกรณ์โดยใช้ ADB หรือใช้โปรแกรมสำรวจอุปกรณ์ Android
การใช้การเพิ่มประสิทธิภาพแบบมีการแนะนำโปรไฟล์นอก AGDE
หากคุณใช้ระบบบิลด์ที่ AGDE ไม่สนับสนุน คุณอาจต้อง
แก้ไขบิลด์โดยตรง ของ Clang
เอกสารประกอบ
ครอบคลุมสวิตช์ที่จำเป็น – -fprofile-generate
และ
-fprofile-use
หากคุณใช้เครื่องมือมิดเดิลแวร์สำหรับเกมของคุณ โปรดอ่านเอกสาร สำหรับเครื่องมือของคุณเพื่อดูวิธีเปิดใช้ PGO (หากรองรับ)