การกำหนดค่าการเพิ่มประสิทธิภาพแนะนำโดยโปรไฟล์ใน Visual Studio

เปิดตัวการสนับสนุนการเพิ่มประสิทธิภาพแบบมีการแนะนำโปรไฟล์ใน AGDE เวอร์ชัน 22.2.71

การค้นหาการตั้งค่า PGO

เปิดการตั้งค่าโปรเจ็กต์จาก Solution Explorer

เมนูคุณสมบัติตัวสำรวจโซลูชันของ Visual Studio สำหรับรายการปัจจุบัน

รูปที่ 1: หน้าต่างสำรวจโซลูชันของ Visual Studio

ตรวจสอบว่าแพลตฟอร์มของคุณได้รับการตั้งค่าเป็นการกำหนดค่า Android (เช่น Android-arm64-v8a)

ในแผงด้านซ้าย ให้เลือกคุณสมบัติการกำหนดค่า > ทั่วไป มองหา กลุ่มพร็อพเพอร์ตี้ชื่อ PGO

กล่องโต้ตอบพร็อพเพอร์ตี้ของโปรเจ็กต์ที่แสดงพร็อพเพอร์ตี้ทั่วไปและการตั้งค่า PGO
ไฮไลต์ไว้

รูปที่ 2: กล่องโต้ตอบคุณสมบัติของโปรเจ็กต์

เปิดใช้บิลด์ที่ใช้ PGO ในโปรเจ็กต์

เพิ่มการกำหนดค่าใหม่ที่ชื่อว่า Instrumented ลงในโปรเจ็กต์ ข้อมูลนี้อิงตาม การกำหนดค่าที่คุณใช้ระหว่างการพัฒนาสำหรับการทดสอบ ซึ่งควรเป็น บิลด์ดั้งเดิมที่เพิ่มประสิทธิภาพแล้ว (คุณยังคงแก้ไขข้อบกพร่องเพิ่มเติมได้ คุณลักษณะที่เปิดใช้ตราบใดที่คุณเก็บการตั้งค่าการเพิ่มประสิทธิภาพของคอมไพเลอร์ไว้)

คลิกเครื่องมือจัดการการกำหนดค่า... ในกล่องโต้ตอบของหน้าพร็อพเพอร์ตี้

ที่ด้านบนของกล่องโต้ตอบหน้าเว็บพร็อพเพอร์ตี้ที่แสดงโซลูชันที่ใช้งานอยู่
เมนูแบบเลื่อนลงของการกำหนดค่าและแพลตฟอร์ม และเครื่องมือจัดการการกำหนดค่า
ปุ่ม

รูปที่ 3: กล่องโต้ตอบเครื่องมือจัดการการกำหนดค่า

ในกล่องโต้ตอบเครื่องมือจัดการการกำหนดค่า ให้เลือกโซลูชันที่ใช้งานอยู่ การกำหนดค่าและเลือก <New...>

กล่องโต้ตอบเครื่องมือจัดการการกำหนดค่าที่มีการกำหนดค่าโซลูชันที่ใช้งานอยู่
เปิดเมนูแบบเลื่อนลงและตัวเลือกใหม่
ไฮไลต์ไว้

รูปที่ 4: การสร้างการกำหนดค่าบิลด์ใหม่

... และสร้างการกำหนดค่าใหม่โดยใช้เครื่องมือ PGO

กล่องโต้ตอบการกำหนดค่าโซลูชันใหม่ ซึ่งกำลังสร้างบิลด์ใหม่ที่ใช้ PGO
การกำหนดค่าตามบิลด์ที่เผยแพร่ที่มีอยู่
การกำหนดค่า

รูปที่ 5: กล่องโต้ตอบการกำหนดค่าโซลูชันใหม่

หากต้องการเปิดใช้การสร้างในโหมดใช้เครื่องมือ PGO เพื่อให้คุณสร้างโปรไฟล์ได้ สำหรับเกมของคุณ ให้เลือกเครื่องดนตรีจากรายการตัวเลือกสำหรับ การตั้งค่าโหมดการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์

กล่องโต้ตอบคุณสมบัติของโปรเจ็กต์ที่เปิดเป็นการตั้งค่าทั่วไปโดยมี 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 เพื่อให้คุณ สร้างในโหมดนี้เมื่อจำเป็น

กล่องโต้ตอบการกำหนดค่าโซลูชันใหม่ที่จะสร้างการกำหนดค่าบิลด์ตาม
คือบิลด์ที่เผยแพร่ แต่ครั้งนี้มีการเพิ่มประสิทธิภาพ PGO เป็นบิลด์ใหม่
ชื่อการกำหนดค่า

รูปที่ 7: การสร้างการกำหนดค่าบิลด์ที่เพิ่มประสิทธิภาพ PGO ใหม่

ตั้งค่าโหมดการเพิ่มประสิทธิภาพที่แนะนำโดยโปรไฟล์ในพร็อพเพอร์ตี้ของโปรเจ็กต์ เพื่อเพิ่มประสิทธิภาพ

กล่องโต้ตอบคุณสมบัติของโปรเจ็กต์ที่เปิดเป็นการตั้งค่าทั่วไปโดยมี PGO
แสดงการตั้งค่า และโหมดการเพิ่มประสิทธิภาพที่แนะนำของโปรไฟล์มีการตั้งค่าเป็น
เพิ่มประสิทธิภาพ

รูปที่ 8: การตั้งค่าโหมดการเพิ่มประสิทธิภาพ PGO เป็น "เพิ่มประสิทธิภาพ"

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

คุณสามารถคัดลอกไฟล์ข้อมูลโปรไฟล์ลงในโปรเจ็กต์จากอุปกรณ์โดยใช้ ADB หรือใช้โปรแกรมสำรวจอุปกรณ์ Android

การใช้การเพิ่มประสิทธิภาพแบบมีการแนะนำโปรไฟล์นอก AGDE

หากคุณใช้ระบบบิลด์ที่ AGDE ไม่สนับสนุน คุณอาจต้อง แก้ไขบิลด์โดยตรง ของ Clang เอกสารประกอบ ครอบคลุมสวิตช์ที่จำเป็น – -fprofile-generate และ -fprofile-use

หากคุณใช้เครื่องมือมิดเดิลแวร์สำหรับเกมของคุณ โปรดอ่านเอกสาร สำหรับเครื่องมือของคุณเพื่อดูวิธีเปิดใช้ PGO (หากรองรับ)