iPhone + OpenGL + Sentuhan: FPS turun

Baru-baru ini saya mengalami masalah yang sangat aneh: menyentuh layar iPhone dan menggerakkan jari dapat menghabiskan hingga 50% FPS saya. Ya, saya memeriksa kode saya untuk kemungkinan kemacetan – bukan masalahnya. Pilihan terakhir yang saya coba sebelum menulis postingan ini – mengomentari semua kode pemrosesan sentuh dan kemudian melihat FPS. Hasilnya adalah: tanpa sentuhan – 58-60. Menyentuh dan menggerakkan jari – 35-40 FPS secara instan.

Rendering dilakukan di thread terpisah, sehingga tidak ada kejadian runloop utama yang bertabrakan dengannya. Namun, sangat berat bagi saya (dan game yang saya kembangkan) untuk mengatasi masalah ini, karena penurunan FPS sangat nyata.

Terima kasih atas bantuan Anda sebelumnya.

PEMBARUAN: sepertinya mengatur prioritas thread rendering ke nilai yang lebih tinggi sedikit membantu...


person Anton    schedule 06.06.2010    source sumber


Jawaban (1)


IPhone, iPod Touch, dan iPad semuanya merupakan perangkat dengan prosesor tunggal dan inti tunggal. Cukup dengan meletakkan kode rendering Anda pada thread terpisah dari penanganan peristiwa sentuh—walaupun merupakan ide yang bagus—tidak akan mencegah pemrosesan sentuh menghabiskan siklus CPU. Satu-satunya cara untuk meningkatkan framerate Anda adalah dengan mempercepat kode penanganan sentuhan atau mempercepat rendering. Yang Anda kejar bergantung pada spesifikasi lamaran Anda.

person Jeff Kelley    schedule 06.06.2010
comment
Poin bagus. Hal ini juga menjelaskan mengapa pengaturan prioritas thread ke masker bernilai lebih tinggi sedikit berpengaruh. - person Anton; 06.06.2010