Санкт-Петербургский государственный университет
Опубликован: 24.10.2012 | Доступ: свободный | Студентов: 8620 / 1137 | Оценка: 4.00 / 4.00 | Длительность: 05:26:00
Специальности: Системный архитектор
Лекция 2:

Инструменты Intel для оптимизации и отладки Android-приложений

Аннотация: Intel Power Monitoring Tool – инструмент профилировки для улучшения производительности и энергоэффективности приложений под Android. Intel Graphics Performance Analyzer – набор программных средств для мониторинга производительности графических приложений и компьютерных игр. Intel Energy Checker SDK – инструмент измерения и контроля энергоэффективности системы. Intel Hardware Accelerated Execution Manager – инструмент, использующий аппаратные возможности виртуализации и позволяющий значительно ускорить работу эмулятора Android.

Презентацию к лекции Вы можете скачать здесь.

3.1. Intel Hardware Accelerated Execution Manager

Каждый, кто работал с эмулятором для разработки Android-приложений, знает, что даже на современных компьютерах эмулятор загружается и работает очень медленно. Intel Hardware Accelerated Execution Manager (Intel HAXM) – это решение данной проблемы, использующее аппаратные возможности виртуализации и позволяющее значительно ускорить работу эмулятора Android.

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

Прежде, чем установить Intel HAXM, необходимо убедиться, что компьютер удовлетворяет системным требованиям:

  • Процессор с поддержкой виртуализации (VT), Execute Disable Bit и инструкции EM64T. Чтобы узнать, поддерживает ли процессор перечисленнные возможности, можно воспользоваться сайтом ark.intel.com/
  • Как минимум 1 Гб, а лучше 2Гб оперативной памяти.
  • Intel HAXM поддерживает операционные системы Windows, Ubuntu и Mac OS.

Intel HAXM можно установить как вручную (скачав с сайта software.intel.com/ru-ru/android/), так и используя Android SDK Manager.

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

Также во время установки может возникнуть предупреждение о том, что виртуализация не включена. В этом случае нужно проверить настройки в BIOS, возможно, виртуализация поддерживается системой, но по умолчанию отключена.

Для того, чтобы проверить, что все установлено верно и работает, необходимо в командной строке выполнить: sc query intelhaxm. После выполнения данной команды будет показан текущий статус службы (Рис. 3.1).

В командной строке показан статус службы Intel HAXM

Рис. 3.1. В командной строке показан статус службы Intel HAXM

Теперь необходимо создать новое виртуальное устройство с помощью AVD Manager. В окне свойств следует добавить обязательный параметр в раздел HardwareGPU Emulation (Рис. 3.2).

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

Рис. 3.2. Окно свойств при создании нового эмулятора

Осталось запустить и проверить, все ли настроено верно. Для этого нужно выбрать созданный эмулятор, запустить его и в настройках посмотреть название устройства. Если все было сделано правильно, то в поле Model number будет написано "Android SDK Build for x86" (Рис. 3.3).

Окно настроек созданного эмулятора

Рис. 3.3. Окно настроек созданного эмулятора

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

3.2. Intel Energy Checker SDK

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

Уровень потребления, безусловно, является важным показателем энергоэффективности, но сам по себе он не дает полного представления о работе приложения. Малопотребляющие системы, выполняющие при этом малый объем полезной работы, могут быть менее эффективными, чем более мощные системы, способные осуществлять более значительные вычисления. Более того, даже в рамках одной системы не существует единой метрики – в зависимости от приложения ключевые показатели могут разниться. Intel Energy Checker SDK является гибким инструментом, позволяющим разработчикам проводить измерения и контроль энергоэффективности системы.

В Intel Energy Checker SDK широко используется понятие "энергоэффективность". Повсеместно принятого определения энергоэффективности не существует, но в Intel Energy Checker SDK используется следующее:

Энергоэффективность = Работа / Энергия

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

Intel Energy Checker SDK API предоставляет доступ к показателям проделанной приложением полезной работы с помощью простой программной оснастки. Решение остается за разработчиком. Например, можно считать работу определенных компонентов программного видеопроигрывателя, выполняющих какую-либо работу для пользователя (например, декодирование видео), полезной работой, а действия других компонентов (получающих доступ к ресурсам, ожидающих ввода, выполняющих синхронизацию) не будут считаться полезными. Intel Energy Checker SDK позволяет разработчикам определять, какие замеры "полезной работы" важны для конкретного приложения, и предоставляет доступ к ним с помощью простого API.

Intel Energy Checker SDK API предоставляет функции экспорта и импорта счетчиков в приложения. Счетчики хранят информацию о количестве событий или процессов, другие приложения могут считывать показания этих счетчиков и осуществлять действия на основе их текущих значений. Ядро Intel Energy Checker API состоит из пяти функций, которые позволяют открывать, повторно открывать, читать, записывать и закрывать счетчики.

Первым этапом использования Intel Energy Checker SDK для определения энергоэффективности приложения является создание и применение счетчиков, определяющих объем полезной работы в программе. Счетчик – это 8-байтовая переменная, в которой хранится количество возникновений определенного события. В языке программирования C для этого используется тип данных unsigned long. Разработчик может создать один или несколько счетчиков в ходе инициализации программного обеспечения. После этого можно создать контейнер для счетчиков, называемый "Productivity Link" (PL). Каждый PL может содержать до 512 счетчиков, одновременно может быть открыто до 10 разных PL, но для большинства программ будет достаточно гораздо меньшего числа счетчиков и PL.

Вторым этапом расчета энергоэффективности приложения является измерение объема энергии, израсходованной при работе программы. Для этого в Intel Energy Checker SDK применяются два средства, входящие в пакет SDK: Energy Server (ESRV) и Temperature Server (TSRV). ESRV используется для отслеживания потребления электроэнергии по данным внешних измерительных устройств, а TSRV отслеживает показатели температуры по данным термодатчиков.

В состав Intel Energy Checker SDK, помимо уже упомянутых средств, входят еще две вспомогательные программы:

  • PL GUI Monitor – это пользовательский интерфейс (Рис. 3.4), отображающий счетчики PL в запущенной программе, совместимой с Intel Energy Checker API.
  • PL CSV Logger3 – это приложение, собирающее и записывающее показатели счетчиков PL в CSV-файл для дальнейшего анализа в программах обработки электронных таблиц.
PL GUI Monitor

Рис. 3.4. PL GUI Monitor

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

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

Хотя изначально Intel Energy Checker SDK создавался для работы в дата-центрах, его можно использовать на клиентских или мобильных платформах. Он может работать в операционных системах Windows, Linux, Solaris и MacOS.

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

Несипбай Сагыныш
Несипбай Сагыныш
Сергей Петров
Сергей Петров