การทําโปรไฟล์ประสิทธิภาพ

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

สิ่งหนึ่งที่ควรคำนึงถึงเมื่อเพิ่มประสิทธิภาพเกมใน ChromeOS โดยเฉพาะคือ ปัญหาด้านประสิทธิภาพพื้นฐานจะแชร์ในอุปกรณ์ทั้งหมด และการปรับปรุงจะส่งผลดีต่อประสิทธิภาพและอายุการใช้งานแบตเตอรี่สำหรับผู้ใช้ทุกคน ChromeOS ซึ่งมีแนวโน้มที่จะใช้จอแสดงผลขนาดใหญ่และอุปกรณ์ป้อนข้อมูลบนเดสก์ท็อปอาจทำให้ปัญหาบางอย่างปรากฏได้ง่ายกว่า ตัวอย่างเช่น อัลกอริทึมการโหลดพื้นผิวที่ไม่มีประสิทธิภาพอาจ "ทำงานได้ดี" ในอุปกรณ์เคลื่อนที่ระดับสูง แต่ไม่สามารถทำงานได้ใน Chromebook ที่มีจอแสดงผล 4K การปรับปรุงอัลกอริทึมจะช่วยปรับปรุงเกมในอุปกรณ์ทุกเครื่อง

หากคุณเพิ่งเริ่มใช้การสร้างโปรไฟล์ แนวทางทั่วไปที่ดีคือ

  1. พิจารณาว่าประสิทธิภาพถูกจำกัดด้วยสิ่งต่อไปนี้หรือไม่
    • CPU
    • GPU
    • อื่นๆ: อินพุต/ดิสก์/เครือข่าย
  2. พยายามแยกสาเหตุหลัก
  3. ลองเพิ่มประสิทธิภาพ
  4. ทำซ้ำ

ในกรณีส่วนใหญ่ เกมจะแสดงตัวเองเป็น "ขึ้นอยู่กับ 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 ได้ที่นี่