การสร้างโปรไฟล์และการปรับแต่งประสิทธิภาพเป็นงานที่ซับซ้อนซึ่งอาจดูเหมือนศิลปะมากกว่าวิทยาศาสตร์ การทำงานหลายส่วนที่ต้องซิงค์กันอย่างสมบูรณ์แบบในเกม รวมถึงความซับซ้อนในฉากหนึ่งๆ อาจทำให้การทำความเข้าใจและแยกปัญหาเป็นเรื่องยาก ใน ChromeOS เครื่องมือหลายอย่างได้รับการออกแบบโดยคำนึงถึงชิปเซ็ต ARM เคล็ดลับด้านล่างจะช่วยเร่งกระบวนการนี้
สิ่งหนึ่งที่ควรคำนึงถึงเมื่อเพิ่มประสิทธิภาพเกมใน ChromeOS โดยเฉพาะคือ ปัญหาด้านประสิทธิภาพพื้นฐานจะแชร์ในอุปกรณ์ทั้งหมด และการปรับปรุงจะส่งผลดีต่อประสิทธิภาพและอายุการใช้งานแบตเตอรี่สำหรับผู้ใช้ทุกคน ChromeOS ซึ่งมีแนวโน้มที่จะใช้จอแสดงผลขนาดใหญ่และอุปกรณ์ป้อนข้อมูลบนเดสก์ท็อปอาจทำให้ปัญหาบางอย่างปรากฏได้ง่ายกว่า ตัวอย่างเช่น อัลกอริทึมการโหลดพื้นผิวที่ไม่มีประสิทธิภาพอาจ "ทำงานได้ดี" ในอุปกรณ์เคลื่อนที่ระดับสูง แต่ไม่สามารถทำงานได้ใน Chromebook ที่มีจอแสดงผล 4K การปรับปรุงอัลกอริทึมจะช่วยปรับปรุงเกมในอุปกรณ์ทุกเครื่อง
หากคุณเพิ่งเริ่มใช้การสร้างโปรไฟล์ แนวทางทั่วไปที่ดีคือ
- พิจารณาว่าประสิทธิภาพถูกจำกัดด้วยสิ่งต่อไปนี้หรือไม่
- CPU
- GPU
- อื่นๆ: อินพุต/ดิสก์/เครือข่าย
- พยายามแยกสาเหตุหลัก
- ลองเพิ่มประสิทธิภาพ
- ทำซ้ำ
ในกรณีส่วนใหญ่ เกมจะแสดงตัวเองเป็น "ขึ้นอยู่กับ CPU" หรือ "ขึ้นอยู่กับ GPU" ลองใช้เคล็ดลับและเครื่องมือในการสร้างโปรไฟล์ด้านล่างเพื่อพิจารณาว่าระบบ "ใช้เวลา" ที่ใดในแต่ละเฟรม ตัวอย่างเช่น หากใช้เวลานานในการคำนวณและโหลดจุดยอดก่อนที่ GPU จะเริ่มแสดงผล เกมอาจถูกจำกัดด้วย CPU แต่หากคุณใช้ฟิลเตอร์แบบละเอียดที่อิงตาม GPU จำนวนมาก เกมของคุณอาจมีข้อจำกัดด้าน GPU โปรดทราบว่าโทรศัพท์มือถือและอุปกรณ์ ChromeOS หลายรุ่นไม่มีการ์ดกราฟิกแยก เกมบนเดสก์ท็อปที่สมมติว่าตัวกรอง GPU ทำงานได้รวดเร็วอาจพบว่า GPU ในตัวใช้เวลานานเกินไปในการเรนเดอร์แต่ละฉาก
ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเข้าถึงการสร้างโปรไฟล์ได้ในคำแนะนำของ ARM เกี่ยวกับ"กระบวนการเพิ่มประสิทธิภาพ"
เครื่องมือ
แม้ว่าคุณจะสามารถระบุคอขวดได้ด้วยตนเอง แต่การมีเครื่องมือที่เหมาะสมจะช่วยให้วิเคราะห์ประสิทธิภาพของเกมได้ง่ายขึ้น และช่วยให้คุณมั่นใจได้ว่ากำลังมุ่งเน้นไปที่สิ่งที่ถูกต้อง มีเครื่องมือมากมายให้เลือกใช้ แต่โปรแกรมที่เราแนะนำมีดังนี้
Profiler ของ Android Studio
วิธีที่ง่ายที่สุดในการเริ่มการสร้างโปรไฟล์แอป Android คือการใช้ Android Studio Profiler ที่ผสานรวม จาก Android Studio ให้เลือก "Profile" แทนการกด "Run" เพื่อเรียกใช้แอปและรับข้อมูลเชิงลึกแบบเรียลไทม์เกี่ยวกับการใช้งาน CPU, หน่วยความจำ และเครือข่าย การติดตาม CPU อย่างง่ายอาจเป็นวิธีที่รวดเร็วในการแยกส่วนของโค้ดเพื่อตรวจสอบ
เครื่องมือนี้ไม่ได้ให้ข้อมูลเชิงลึกที่แท้จริงเกี่ยวกับการใช้งาน GPU หรือสิ่งที่เกิดขึ้นระหว่างการซิงค์แต่ละเฟรม ดังนั้นแม้ว่าจะเป็นเครื่องมือที่ดีที่ควรมีไว้ในกล่องเครื่องมือ แต่ก็อาจไม่เพียงพอที่จะทำให้เกมทำงานได้อย่างมีประสิทธิภาพสูงสุด
Snapdragon Profiler
เนื่องจากลักษณะการทำงานของเกมจะเหมือนกันในทุกอุปกรณ์ วิธีที่ดีวิธีหนึ่งในการรับข้อมูลประสิทธิภาพโดยละเอียดคือการใช้ Snapdragon Profiler ในโทรศัพท์ ARM ที่ใช้ Qualcomm แม้ว่าจะไม่ได้สร้างโปรไฟล์โดยตรงในอุปกรณ์ ChromeOS แต่ข้อมูลนี้จะช่วยให้คุณทราบว่าเกมใช้เวลาส่วนใหญ่ในแต่ละเฟรมไปกับอะไร และยังช่วยให้คุณทราบว่ามีการใช้การเรียก GPU ใดบ้างโดยเฉพาะ
ตัวอย่างเช่น หากคุณเห็นว่ามีการใช้เวลาเป็นจำนวนมากในตัวกรอง GPU แบบ Anisotropic และตัวกรองนี้ครอบงำการทำงานที่ทำในแต่ละเฟรม คุณอาจเพิ่มประสิทธิภาพได้อย่างมากด้วยการเปลี่ยนการตั้งค่านี้
หากเห็นว่าเวลาของ GPU สั้นและสม่ำเสมอ แต่เวลาของ CPU นั้นยาวนานและทำให้คุณพลาดการซิงค์เฟรม ให้ดูที่อัลกอริทึมการโหลดเท็กซ์เจอร์/การเตรียมเฟรม
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบการใช้งานอย่างเป็นทางการ
ARM Mobile Studio
ARM Mobile Studio เป็นโปรไฟล์เลอร์อุปกรณ์ ARM อีกตัวหนึ่งที่มีประโยชน์ นักพัฒนาแอปบางรายอาจชอบใช้เครื่องมือนี้มากกว่า Snapdragon Profiler แต่ก็สามารถใช้ในลักษณะที่คล้ายกันได้ ดูเอกสารประกอบการใช้งานอย่างเป็นทางการ
Android GPU Inspector
Android GPU Inspector เป็นเครื่องมือใหม่ที่ Google พัฒนาขึ้นโดยเฉพาะเพื่อช่วยให้คุณได้รับประสิทธิภาพที่ดีที่สุดจากเกมด้วยทั้ง OpenGL และ Vulkan ปัจจุบันฟีเจอร์นี้อยู่ในสถานะรุ่นตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ และอาจต้องดำเนินการบางอย่างเพื่อตั้งค่า รวมถึงขณะนี้ใช้ได้ในอุปกรณ์เพียงไม่กี่เครื่องเท่านั้น ซึ่งจะเป็นหนึ่งในเครื่องมือหลักที่ใช้สำหรับการสร้างโปรไฟล์กราฟิกในอนาคต ดูเอกสารประกอบอย่างเป็นทางการ
การติดตามภาพรวมของ ARC
นอกจากนี้ยังมีเครื่องมือที่ครอบคลุมกว่าอย่างการติดตามภาพรวมของ ARC ซึ่งทำงานคล้ายกับเครื่องมือติดตามกราฟิกของ ARC ที่กล่าวถึงข้างต้น เครื่องมือติดตามนี้จะให้เมตริกระดับสูงเกี่ยวกับประสิทธิภาพของแอปและ ChromeOS การอ่านจะแสดง FPS ของแอปและของ Chrome เอง รวมถึงการใช้งาน CPU, การใช้งาน GPU, การใช้พลังงาน และอื่นๆ คุณเรียกใช้เครื่องมือได้หลายครั้งและดูกราฟสำหรับการเรียกใช้แต่ละครั้งที่ซ้อนทับกันพร้อมสีเพื่อแยกความแตกต่าง ระบบจะบันทึกโมเดลการติดตามแต่ละรายการไว้ในโฟลเดอร์ดาวน์โหลด และสามารถนำเข้าอีกครั้งเพื่อใช้เปรียบเทียบในอนาคต หากต้องการตรวจสอบสถานะแอปทั่วไป คุณควรเริ่มต้นด้วยการติดตามภาพรวมของ ARC
ไปที่ chrome://arc-overview-tracing ในเบราว์เซอร์บน ChromeOS เพื่อเข้าถึงเครื่องมือนี้
ขั้นตอนถัดไป
คุณอาจพบปัญหาคอขวดบางอย่าง แต่ไม่แน่ใจว่าจะทำอย่างไรกับปัญหาเหล่านั้น หรือคุณได้พบและแก้ไขปัญหาแล้ว แต่ไม่แน่ใจว่าจะทำอะไรต่อไป ด้านล่างนี้คือรายการเคล็ดลับและแหล่งข้อมูลทั่วไปของ Android และเครื่องยนต์ที่เราได้รวบรวมไว้ให้คุณ
เคล็ดลับทั่วไป
พอร์ทัลนักพัฒนาแอป Android มีเคล็ดลับดีๆ ในการเพิ่มประสิทธิภาพของแอปพลิเคชัน คุณจะดูข้อควรพิจารณาเกี่ยวกับเวลาในการโหลด วิธีใช้มัลติเธรด การจัดการความล่าช้าในการป้อนข้อมูล และอื่นๆ ได้ที่นั่น
อย่าลืมทำโปรไฟล์ตั้งแต่เนิ่นๆ และทำบ่อยๆ โดยเฉพาะหากคุณกำหนดเป้าหมายไปยังเครื่องที่มีประสิทธิภาพน้อยกว่าหรือกำลังผลักดันขีดจำกัดของสถาปัตยกรรมระดับไฮเอนด์ การติดตามสถิติประสิทธิภาพของแอปจะช่วยให้คุณระบุได้ว่าการเปลี่ยนแปลงใดที่ทำให้อัตราเฟรมลดลง และการเปลี่ยนแปลงใดที่ช่วยให้คุณรักษาประสบการณ์การใช้งานที่ราบรื่นตามที่ต้องการได้
Unity Engine
นอกจากเอกสาร Android ทั่วไปแล้ว Unity ยังมีเอกสารเฉพาะ ChromeOS เพื่อช่วยคุณสร้างแอปพลิเคชัน ChromeOS ที่มีประสิทธิภาพโดยใช้เอนจินของตน ดูเอกสาร ChromeOS เกี่ยวกับการเริ่มต้นใช้งาน อินพุต การแก้ไขข้อบกพร่อง และการสร้าง ซึ่งรวมถึงวิธีสร้างบิลด์ x86 ดูเนื้อหาเกี่ยวกับประสิทธิภาพได้ที่ทำความเข้าใจการเพิ่มประสิทธิภาพและหลักสูตรเกี่ยวกับประสิทธิภาพและการเพิ่มประสิทธิภาพ
โปรดอ่านคำแนะนำของ ARM เกี่ยวกับการสร้างโปรไฟล์และการเพิ่มประสิทธิภาพเกม Unity รวมถึงแนวทางปฏิบัติแนะนำที่เกี่ยวข้อง ซึ่งจะแนะนำขั้นตอนการสร้างโปรไฟล์เกมตัวอย่างใน Unity ด้วยเครื่องมือ Streamline ซึ่งเป็นส่วนหนึ่งของ ARM Mobile Studio
Unreal Engine
Unreal ได้เขียนเอกสารหลักเกณฑ์ด้านประสิทธิภาพและเคล็ดลับและเทคนิคของตัวเอง ซึ่งจะสอนวิธีใช้ประโยชน์จากตัวเลือกและการตั้งค่าต่างๆ ที่เครื่องมือนี้มีให้ได้ดีที่สุด ในที่นี้ คุณจะเห็นเคล็ดลับเกี่ยวกับระดับรายละเอียด วิธีใช้แสงให้เกิดประโยชน์สูงสุด คำแนะนำแบบทีละขั้นตอนเกี่ยวกับการตั้งค่าคุณภาพของวัสดุและ Shader รวมถึงคำแนะนำอื่นๆ
หากต้องการการเพิ่มประสิทธิภาพที่อิงตามกราฟิกเพิ่มเติม ARM ได้เขียนคู่มือสำหรับการเพิ่มประสิทธิภาพเกมบนอุปกรณ์เคลื่อนที่ ดูเคล็ดลับการเพิ่มประสิทธิภาพทั่วไป รวมถึงข้อควรพิจารณาเกี่ยวกับกราฟิกเฉพาะของ Unreal ได้ที่นี่