2015-04-12 3 views
0

У меня есть AndEngine игра, которая имеет:AndEngine (Android OpenGL) использование низкого процессора

  • 45-50-55 кадров в секунду на обычном Galaxy S3, температура телефона тепло.
  • стабильный 60 кадров в секунду на CM11 Galaxy S3 с корнем в режиме исполнения (максимальная частота процессора = 1400 МГц). С помощью root вы можете изменить частоту процессора. Температура телефона почти горячая.
  • 40-45 кадров в секунду на моем Nexus 6 (без корня), но этот телефон быстрее, чем галактика s3! Температура телефона почти холодная.
Решения игры одинаковы!

Главный вопрос: почему моя игра fps одинакова на обоих устройствах? На Nexus6 это должно быть быстрее!

Игры: https://play.google.com/store/apps/details?id=com.hattedskull.gangsters

+0

Я измерил использование процессора с помощью ** adb shell top -m 10 -d 1 -s cpu **. Максимальное использование процессора составляет ** 40% **! Таким образом, проблема в том, что процессор не работает при максимальной нагрузке. Как я могу увеличить его из кода? – voodoo98

ответ

0

когда процессор работает быстрее, но показывает меньшую производительность, то другие процессоры, может быть, что он использует только один из 2,4,8,12 ядер. это всего лишь 25% использования, а процессор остается холодным. одноядерный процессор всегда будет гореть на 100% и нагреваться. Это многопоточность. что будет «сила» процессор идти на 100%, и игра будет работать быстрее

+0

Спасибо за ответ, но я должен работать со стабильным 60fps на Nexus 6. – voodoo98

+0

http://www.phonearena.com/phones/Google-Nexus-6_id8626 у nexus6 есть четырехъядерный ядро, поэтому многопоточность - это решение. Кроме того, вы сами сказали, что процессор работает на 40%, что также указывает на то, что вы должны использовать многопоточность. вы спросили в этом комментарии, как увеличить использование процессора. ответ будет многопоточным снова. Я не знаю, какой язык вы используете, поэтому вам нужно выяснить, как многопоточность работает на вашей платформе. –

+0

Спасибо! В принципе вы правы: многопоточность чрезвычайно важна, но у меня есть только одна обновленная версия в движке (на основе java)! Как я могу разделить его на отдельные потоки? В этом вопросе возникает новый вопрос: почему моя игра fps одинакова на обоих устройствах? Nexus6 имеет более быстрый процессор. Если я перейду на частоту до максимума, игра будет быстрее! Проблема не только в многопоточности. ps: У меня есть много обработчиков обновлений (разных потоков) в потоке обновления. – voodoo98

0

Я отвечая на мой вопрос, потому что это не очевидно (для меня), поэтому решение:

  1. Режим работы: После укорачивания телефона я изменил режим масштабирования (в режиме процессора) в . Производительность, изменение min hz не требовалось. Теперь телефон горячий, а не теплый!
  2. Mobil ads bad performance: Я отключил все интернет-соединения (Wi-Fi, мобильный), поэтому мобильное объявление исчезло из игры. Я использую admob в своей игре, которая не имеет лучшей производительности.

Это вызвало падение FPS в моей игре (-ях)!

Смежные вопросы