Как производительность эмулятора Android сравнивается с производительностью реального устройства? - PullRequest
14 голосов
/ 24 мая 2010

Я пытаюсь написать игру для Android, хотя у меня нет устройства Android. Для тех из вас, у кого есть устройство, как производительность на эмуляторе связана с реальной производительностью устройства? Меня особенно интересуют задачи, связанные с графикой.

Это, очевидно, зависит как от машины, на которой запущен эмулятор, так и от конкретного устройства, о котором идет речь, но здесь я говорю грубые цифры.

Этот вопрос является дубликатом , но, поскольку этот пост сильно устарел, я решил, что к настоящему моменту он не имеет значения.

Ответы [ 3 ]

13 голосов
/ 24 мая 2010

Вообще говоря, эмулятор намного медленнее, чем устройство, выполняющее задачи CPU и GPU. Это как минимум по двум причинам:

  1. Эмулятор запускает коды операций ARM, преобразуя их в эквивалентные инструкции x86, что медленно
  2. Устройства (обычно) имеют графические ускорители, в то время как эмулируемая среда не имеет, несмотря на то, какая видеокарта у вас установлена ​​на компьютере с эмулятором

Для сравнения: я работаю на Android на четырехъядерном процессоре Intel с частотой 2,66 ГГц и довольно неплохой видеокартой. Для видео, которые отлично работают на устройствах, я могу иногда заставить их воспроизвести в эмуляторе.

Эмулятор работает быстрее, чем устройство, при «дисковых» операциях ввода-вывода. Когда вы пишете на флэш-память в эмуляторе, вы пишете в файл образа диска, который, вероятно, находится на обычном жестком диске, при условии, что вы не используете SSD. На самом деле запись на флэш-память на устройстве может быть значительно медленнее - Брэд Фитцпатрик, на прошлой неделе на конференции Google I | O 2010, упомянул всплески до 200 мс для записи одного байта во флэш-память. Кроме того, сочетание Android, flash и файловой системы yaffs2, по-видимому, приводит к постепенному замедлению устройства при вводе / выводе флэш-памяти при заполнении флэш-памяти. Следовательно, он рекомендовал делать любые флэш-записи в фоновом потоке вместо основного потока приложения, где он может связать пользовательский интерфейс и привести к «ненужному» приложению.

(по-видимому, "джанки" это технический термин ...: -)

Кстати, когда он появится в Интернете, обязательно посмотрите презентацию Брэда на YouTube. Иногда это может быть немного сложно, потому что он говорил очень быстро, но в нем было много полезных моментов, связанных с производительностью.

2 голосов
/ 01 сентября 2010

Проверьте эту замечательную статью , где показано, как можно сравнить скорость процессора эмулятора со скоростью процессора устройства, использующего BogoMIPS.

1 голос
/ 24 мая 2010

Преобразование кодов операций ARM в x86, как уже упоминалось, является основным источником задержки в эмуляторе.

По моему опыту, эмулятор действительно очень медленный и совершенно не представляет того, что можно ожидать от устройства, особенно от процессора Snapdragon.

Даже очень простые приложения в эмуляторе (я говорю о LinearLayout с несколькими TextViews) требуют времени для загрузки и выполнения действия.

В основном, однако, задержка кажется начальной. Под этим я подразумеваю, что если вы прокручиваете список в эмуляторе, сначала понадобится секунда, чтобы распознать действие и сначала немного дергаться, но потом он станет более плавным.

Короче говоря, я бы не советовал разрабатывать игру с использованием эмулятора для чего-либо кроме начального программирования, отладки и, возможно, наблюдения за тем, как планируются действия. Вы не будете иметь никакого представления об играбельности без реального устройства.



Постскриптум Не забудьте протестировать свою игру на различных версиях Android и найти общие проблемы, с которыми сталкиваются игры в различных версиях Android.

...