iPhone + OpenGL + Touches: FPS ลดลง

เมื่อเร็ว ๆ นี้ฉันพบปัญหาที่แปลกมาก: การแตะหน้าจอของ iPhone และเลื่อนนิ้วไปรอบ ๆ สามารถกิน FPS ของฉันได้มากถึง 50% ใช่ ฉันตรวจสอบโค้ดของฉันเพื่อหาปัญหาคอขวดที่อาจเกิดขึ้น – ไม่ใช่ปัญหา วิธีสุดท้ายที่ฉันลองก่อนที่จะเขียนโพสต์นี้ – แสดงความคิดเห็นเกี่ยวกับโค้ดประมวลผลแบบสัมผัสทั้งหมดแล้วดูที่ FPS ผลลัพธ์คือ: ไม่สัมผัส – 58-60 การสัมผัสและขยับนิ้ว – 35-40 FPS ทันที

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

ขอบคุณสำหรับความช่วยเหลือของคุณล่วงหน้า

อัปเดต: ดูเหมือนว่าการตั้งค่าลำดับความสำคัญของเธรดการแสดงผลเป็นค่าที่สูงกว่าจะช่วยได้เล็กน้อย...


person Anton    schedule 06.06.2010    source แหล่งที่มา


คำตอบ (1)


iPhone, iPod Touch และ iPad ล้วนเป็นอุปกรณ์ที่ใช้โปรเซสเซอร์ตัวเดียวและแบบคอร์เดียว เพียงวางโค้ดการเรนเดอร์ของคุณบนเธรดแยกต่างหากจากการจัดการเหตุการณ์การสัมผัส แต่ก็เป็นความคิดที่ดี แต่ก็ไม่ได้ป้องกันการประมวลผลแบบสัมผัสไม่ให้กินรอบ CPU วิธีเดียวที่จะทำให้อัตราเฟรมของคุณเพิ่มขึ้นคือทำให้โค้ดการจัดการระบบสัมผัสเร็วขึ้นหรือทำให้การเรนเดอร์เร็วขึ้น สิ่งที่คุณติดตามนั้นขึ้นอยู่กับลักษณะเฉพาะของใบสมัครของคุณ

person Jeff Kelley    schedule 06.06.2010
comment
จุดดี. นอกจากนี้ยังอธิบายด้วยว่าเหตุใดการตั้งค่าลำดับความสำคัญของเธรดการเรนเดอร์เป็นมาสก์ที่มีมูลค่าสูงกว่าจึงส่งผลกระทบเล็กน้อย - person Anton; 06.06.2010