Вход/Регистрация
Создание игр для мобильных телефонов
вернуться

Моррисон Майкл

Шрифт:
...

Совет Разработчику

Перед тем как использовать анализатор, убедитесь, что вы не применяли к мидлету затенитель кода. Иначе применение анализатора станет бессмысленным.

Задача анализатора Java – подсказать вам, какие части Java-программы потребляют больше всего процессорного времени. Он выводит список всех вызовов в вашем мидлете и показывает, сколько времени было потрачено в каждом из них. Список вызовов, или, как его еще называют, «граф вызовов», представлен в левой панели в виде дерева. Каждый узел-потомок соответствует вызовам соответствующего метода из другого метода, представленного узлом-родителем. Это позволяет точно определить, на что же уходит время.

Колонки в правой панели окна анализатора (рис. 17.4) важны для интерпретации полученных данных:

► Name – полное имя метода

► Count – сколько всего раз вызывался метод

► Cycles – время, потраченное на выполнение данного метода (в тактах ЦП)

► %Cycles – процентная доля времени, потраченного на выполнение данного метода, от общего времени работы программы

► Cycles with Children – время выполнения данного метода и всех вызывавшихся из него (а тактах ЦП)

► %Cycles with Children – процентная доля времени в предыдущей колонке от общего времени работы программы.

Если щелкнуть по любому заголовку, то список отсортируется по соответствующей колонке. Чтобы освоиться с анализатором, взгляните на список методов в правой панели (рис. 17.4). Если сложить процентные доли всех методов, то в сумме всегда получится 100 %. Это понятно, ведь анализатор показывает, как общее время работы программы делится между отдельными методами. Если щелкнуть по знаку «+» слева от имени метода, то соответствующий узел раскроется, и вы увидите как время, проведенное в данном методе, распределяется между вложенными вызовами методов. Так, на рис. 17.4 мы видим, что метод HCanvas.run потребляет 98 % времени ЦП. А на рис. 17.5 показано, как распределено это время между вложенными вызовами.

Рис. 17.5. Раскрытие узла метода в левой панели анализатора показывает, какие методы вызываются из него

Ага, вот это уже интереснее – выясняется, что в HCanvas.draw тратится 25 % времени, а в HCanvas.update – свыше 72 %. Вряд ли это это повергнет вас в шок, но тем не менее анализатор показал, что при работе игры Henway примерно три четверти времени процессор тратит в методе HCanvas.update. Имея такую информацию, вы сможете понять, куда направить усилия по оптимизации.

...

Совет Разработчику

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

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

Отслеживание загрузки памяти игрой

Кроме анализа кода J2ME, Wireless Toolkit также содержит инструмент отслеживания памяти, который полезно использовать для мониторинга объемов используемой памяти. Монитор памяти можно найти в том же самом приложении Preferences, которое используется для включения анализатора. На рис. 17.6 показано окошко метки Enable Memory Monitor (Включить монитор памяти), в котором поставлена галочка.

Рис. 17.6. Вкладка Monitor приложения Preferences позволяет включить монитор памяти в эмуляторе J2ME

В отличие от анализа, информация которого доступна по окончании работы мидлета, мониторинг памяти осуществляется во время работы. Когда вы включаете монитор памяти и запускаете эмулятор, на экране появляется окно монитора (рис. 17.7), которое начинает отслеживать использование памяти.

Рис. 17.7. Монитор памяти показывает след использованной памяти, который и говорит об использовании игровым мидлетом ресурсов телефона

По умолчанию монитор памяти открывается на вкладке Graph, которая отображает след использования памяти запущенного мидлета. График отражает текущий объем занятой мидлетом памяти. Точное значение можно узнать в стоке статуса, расположенной в нижней части окна. Играя, интересно наблюдать за увеличениями и уменьшениями объема используемой памяти. Вы можете эмулировать запуск сборщика мусора, для чего щелкните по кнопке Run GC, расположенной в верхней части монитора памяти.

Другая вкладка в мониторе памяти – это вкладка Objects (Объекты), которая отображает информацию об объектах в памяти. На рис. 17.8 показаны данные о памяти для игры Henway.

Рис. 17.8. Вкладка Objects в мониторе памяти дает детальный обзор объектов мобильной игры в памяти

  • Читать дальше
  • 1
  • ...
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: