Как стать автором
Обновить

Профилирование программ в QNX Momentics

Время на прочтение 3 мин
Количество просмотров 16K

Общие сведения



QNX Momentics Professional Edition (PE) основанная на платформе Eclipse — это полнофункциональный и высокоинтегрированный профессиональный комплект разработчика, который содержит все необходимое для построения и оптимизации приложений для ОСРВ QNX Neutrino. Благодаря широкому набору удобных инструментов – от средств встраивания на процессорную плату до средств удаленной диагностики – комплект QNX Momentics PE обеспечивает единую, гибкую программную среду для всего цикла разработки.

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

В данном руководстве по шагам профилируем учебное, многопоточное приложение sy21 с помощью инструментов QNX System Profiler и QNX Application Profiler, для демонстрации возможностей средств профилирования в QNX Momentics.

Много картинок

Профилировщик Application Profiler показывает время выполнения отдельных фрагментов программы, позволяет видеть количество времени, которое программа тратит на каждую строку и каждую функцию.

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

Многопоточное приложение sy21 построенное на семафорах (Семафо́р — объект, позволяющий войти в заданный участок кода не более чем n потокам) иллюстрирует работу синхронизации потоков, в рамках данного руководства позволит лучше продемонстрировать работу профилировщика.

Подготовка



Для работы с этим руководством вам потребуется:
  • QNX Momentics, для компиляции приложения и выполнения самого профилирования (в руководстве используется последняя версия — 6.5, но средства профилирования доступны с более ранних версий)
  • Установленная QNX Neutrino, для запуска скомпилированного приложения (в руководстве используется виртуальная машина VMware Workstation)
  • Средние знания языка C++


Профилирование



В QNX Momentics создадим новый QNX C++ проект, во вкладке Buld Variants установим конфигурацию



Проект создан, теперь скомпилируем приложение Project->Build Project, при успешной компиляции в окне консоли увидим следующее



Создадим C/C++ QNX QConn (ip) конфигурацию для выполнения программы run->run configurations



В поле C/C++ Aplication выберем наш проект



В поле Target Options запишем ip адрес запущенной ОС QNX Neutrino



Ip адрес можно узнать, запустив в операционной системе терминал, командой ifconfig, для мониторинга процессов в momentics необходимо запустить целевой агент qconn



Переходим к вкладке аргументов выполняемой программы, запустим программу с аргументами -n20 -t2, n — количество итераций цикла синхронизации (передачи управления), t — количество потоков, между которыми выполняется синхронизация



теперь создадим конфигурацию профилировщика:



Запустим созданную конфигурацию профилировщика, пока он работает, запускаем на выполнение нашу программу. Откроем создавшийся лог, для этого переходим на вкладку QNX System Profiler и открываем лог (файл с расширением kev)
Общая информация:



Загрузка процессора:



Графическое представление взаимодействия процессов и потоков:



Рассмотрим подробнее. Найдем наш процесс и посмотри поближе.
Создание первого дочернего потока:



Цикл синхронизации:



Теперь перейдем на вкладку QNX Aplication Profiler



здесь можно посмотреть общее время выполнения отдельных как отдельных функций так и потоков.

Так же если перейти на вкладку QNX System information можно посмотреть статус работающей операционной системы.
Запущенные процессы:



Информацию о выбранном процессе:



Информацию о памяти:



Файловую систему:



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

Литература


  • Анатомия параллелизма — Олег Цирюлик, Егор Горошко
  • QNX Momentics Основы применения — Сергей Зыль
Теги:
Хабы:
+26
Комментарии 4
Комментарии Комментарии 4

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн