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

Практика использования инструментов Intel для оптимизации и отладки приложений для Android

< Лекция 2 || Самостоятельная работа 2 || Дополнительный материал  >
Аннотация: По ходу выполнения лабораторной работы будут освоены главные методы оптимизации отладки приложений с помощью инструментов Intel: Intel Graphics Performance Analyzers, Intel Energy Checker SDK, Intel Power Monitoring Tool. Также будет получено представление об основных факторах, влияющих на энергоэффективность приложения и производительноть системы в целом.

4.1. Цель лабораторной работы

  • Познакомиться и научиться работать с инструментами Intel для оптимизации отладки Android-приложений.

4.2. План лабораторной работы

Запустить тестовую программу и выполнить дополнительное задание для каждого из следующих инструментов:

  1. Intel Graphics Performance Analyzers
  2. Intel Energy Checker SDK
  3. Intel Power Monitoring Tool

4.3. Необходимое программное обеспечение

  • Intel Graphics Performance Analyzers
  • Microsoft Visual Studio
  • Intel Energy Checker SDK
  • Intel Power Monitoring Tool (устанавливается на Android-устройство)

4.4. Инструкции по выполнению лабораторной работы

4.4.1. Intel Graphics Performance Analyzers

  • Запустите Intel GPA Monitor.
  • Теперь можно выбрать приложение для анализа. Например, gpasample.exe. Запустите его.
  • Ознакомьтесь с появившимся окном (Рис. 4.1).
    Тестовое приложение, запущенное с помощью Intel GPA Monitor

    Рис. 4.1. Тестовое приложение, запущенное с помощью Intel GPA Monitor
  • В левом верхнем углу представлена информация о разрешении, версии DirectX, количестве кадров в секунду. Можно посмотреть графики загрузки CPU и GPU (CTRL+F1).
  • Кнопки справа предоставляют доступ к экспериментам, которые являются частью запущенного приложения (например, изменение числа источников света).
  • Проследите, как меняются показатели FPS, загруженности CPU и GPU (в зависимости от экспериментов). Чем ограничивается производительность приложения: CPU или GPU?
  • Не закрывая приложение, запустите Intel GPA System Analyzer.
  • В появившемся окне (Рис. 4.2) указывается устройство, на котором запущено анализируемое приложение.
    Возможность удаленной отладки

    Рис. 4.2. Возможность удаленной отладки
  • С помощью Intel GPA System Analyzer можно подробнее оценить степень зависимости приложения от CPU/GPU и эффективность распараллеливания. Достаточно "перетащить" интересующий параметр на график (Рис. 4.3).
    График полной (по всем ядрам) загрузки CPU

    Рис. 4.3. График полной (по всем ядрам) загрузки CPU
  • Также можно проводить DirectX-эксперименты реального времени. Например, Disable Alpha Blending отключит использование альфа-канала (Рис. 4.4).
  • Проследите за изменением параметров приложения при различных экспериментах реального времени. Например, ответьте на вопрос, как сильно влияют на загрузку GPU текстуры и альфа-канал.
    Эксперимент реального времени Disable Alpha Blending

    Рис. 4.4. Эксперимент реального времени Disable Alpha Blending
  • "Перехватите" кадр приложения (CTRL+SHIFT+C).
  • Запустите Intel GPA Frame Analyzer и откройте перехваченный кадр.
  • С помощью расположенной вверху гистограммы ответьте на следующие вопросы: сколько эргов участвует в отрисовке кадра и какой из эргов выполняется дольше остальных?
  • В Intel GPA Fame Analyzer тоже можно проводить DirectX-эксперименты (вкладка Experiments). Посмотрите, как при этом изменится высота эргов.
  • Теперь, после знакомства с основными принципами работы Intel GPA, можно приступить к анализу более серьезных приложений.
  • Запустите и проанализируйте аналогичным образом любое другое приложение, удовлетворяющее программным требованиям Intel GPA. Например, компьютерную игру, написанную с использованием DirectX 9.
  • Также, при наличии Android-устройства, попытайтесь проанализировать OpenGL-приложение, используя возможность удаленной отладки.

4.4.2. Intel Energy Checker SDK

  • Запустите Microsoft Visual Studio.
  • Откройте проект с примером для Intel Energy Checker SDK: File -> Open -> Project/Solution, далее в каталоге Intel Energy Checker SDK (например, C:\Program Files\iecsdk), найдите файл iecsdk.sln (...\build\windows\iecsdk) и откройте его.
  • Возможно (в зависимости от версии Visual Studio), будет предложено переконвертировать проект.
  • В Solution Explorer найдите проект esrv_sample и соберите его (Рис. 4.5).
    Сборка проекта esrv_sample

    Рис. 4.5. Сборка проекта esrv_sample
  • Теперь запустите командную строку: Пуск -> cmd.
  • Через командную строку запустите Сервер, который будет обрабатывать данные, полученные со счетчиков. Для этого выполните следующие команды:
    1. cd C:\Program Files\iecsdk\bin\energy_server\windows\X86
    2. esrv --start --library esrv_simulated_device.dll
  • Откройте еще одно окно командной строки и запустите приложение. Для этого выполните следующие команды:
    1. cd C:\Program Files\iecsdk\build\windows\iecsdk\Release
    2. esrv_sample
  • Осталось подключить Graphical User Interface (GUI) для наглядного отображения счетчиков. Для этого запустите еще одну командную строку (два предыдущих окна остаются открытыми) и выполните следующие команды:
    1. cd C:\Program Files\iecsdk\bin\companion_applications\pl_gui_monitor\ windows\X86
    2. pl_gui_monitor --process --gdiplus --transparency 20 --top --geometry "gauges=2x2"
  • Появится окно, где нужно будет указать файл, в который записывались показатели счетчиков. По умолчанию, это каталог productivity_link, который нужно было создать самостоятельно при установке Intel Energy Checker SDK. Выберите файл pl_config.ini.
  • Запустится pl_gui_monitor.exe, который графически представит данные счетчиков (Рис. 4.6).
    Графическое представление показателей счетчиков

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

4.4.3. Intel Power Monitoring Tool

  • Установите на Android-устройство приложение Intel Power Monitoring Tool, например, с помощью Google Play.
  • Запустите Intel Power Monitoring Tool, выберите время выборки и начниите профилирование, нажав кнопку "Start profiling" (Рис. 4.7).
    Запуск профилирования

    Рис. 4.7. Запуск профилирования
  • Запустите целевое приложение (любое приложение на устройстве, которое бы хотелось проанализировать) или используйте устройство как обычно.
  • Откройте приложение Intel Power Monitoring Tool и остановите профилирование, нажав на кнопку "Stop monitoring".
  • Теперь введите свой адрес электронной почты в текстовом поле и оправьте файл журнала, нажав на кнопку "Send out log". Файл powermonitor.log автоматически добавится в качестве вложения.
  • Теперь воспользуйтесь функцией мониторинга в режиме реального времени. Для этого снова запустите профилирование и нажмите кнопку "Display data".
  • Для того, чтобы появилось уведомление с обновляемой информацией (Рис. 4.8), нажмите кнопку "Set data notify".
  • Попробуйте разобраться, за что отвечает каждая составляющая этого уведомления.
    Мониторинг в режиме реального времени

    Рис. 4.8. Мониторинг в режиме реального времени
  • В завершение, протестируйте функцию мониторинга определенного приложения. Для этого при запуске профилировки введите в поле "Enter app name" имя приложения или его часть. Данные о приложении будут отображаться в текстовой области на экране (Рис. 4.9) и добавляться в файл журнала powermonitor.log.
    Мониторинг приложения

    Рис. 4.9. Мониторинг приложения
  • Осуществите мониторинг нескольких приложений, разных по функциональности, и посмотрите, как каждое из них влияет на устройство (например, на уровень заряда аккумулятора и на загрузку процессора).
< Лекция 2 || Самостоятельная работа 2 || Дополнительный материал  >
Сергей Петров
Сергей Петров
Дмитрий Григорьев
Дмитрий Григорьев

У меня вопросы: как переносить написанные программы на мобильные устройства (что переносить? в какую директорию?) и как распространять написанные программы?

Наталья Алмаева
Наталья Алмаева
Россия
Андрей Суслов
Андрей Суслов
Казахстан