Система анализа производительности Visual Performance System

Краткое описание

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

  • использовать оптимизирующий компилятор;
  • использовать оптимизированные библиотеки;
  • вручную оптимизировать на языке программирования низкого уровня.

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

Основные этапы оптимизации:

  • оценка эффективности приложения;
  • поиск причин низкой эффективности;
  • внесение изменений в исходный код приложения.

Система Visual Performance System предназначена для помощи программисту в анализе эффективности приложений и поиске причин низкой эффективности.

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

Коллектив

Руководитель проекта

  • Александр Сысоев, к.т.н., ВМК ННГУ
  • Алексей Сиднев, магистр, ассистент МО ЭВМ, ВМК ННГУ
  • Андрей Камаев, магистр, ВМК ННГУ

Ранее в проекте участвовали

  • Антон Горшков, студент, ВМК ННГУ
  • Вячеслав Юданов, студент, ВМК ННГУ
  • Михаил Бусырев, студент, ВМК ННГУ
  • Александр Сморкалов, студент, ВМК ННГУ
  • Владимир Александров, студент, ВМК ННГУ
  • Сергей Коклюев, студент, ВМК ННГУ
  • Роман Котельников, студент, ВМК ННГУ

Основные результаты

В результате проделанной работы был разработан программный комплекс (VPS), позволяющий программисту проводить детальный анализ эффективности приложений. Основным достоинством системы являются низкие накладные расходы и высокая точность измерений в процессе сбора статистики. Комплекс имеет два основных режима работы: автоматический режим работы по системному таймеру и режим работы по меткам (пользователь системы сам выбирает, те участки программы, которые ему интересны для анализа). За счёт того, что модуль запуска мониторинга реализован в виде консольного приложения, то имеется возможность проведения серийных экспериментов. Модуль настройки имеет графический интерфейс и позволяет конфигурировать более 40 событий мониторинга. Система VPS работает в операционных системах семейства Windows 2000, Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008.

Избранные публикации

  1. А.В. Сысоев, А.М. Камаев, А.А. Сиднев. Об одном подходе к анализу эффективности приложений. Труды 50-й научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук»: Часть I. Радиотехника и кибернетика. М.: МФТИ. 2007. С. 91–93.
  2. А.В. Сысоев, А.М. Камаев, А.А. Сиднев. Об одном подходе к оптимизации приложений. Высокопроизводительные параллельные вычисления на кластерных системах. Труды конференции. Казань: Изд. КГТУ. 2008. С. 39-42.
  3. А.А. Сиднев, А.М. Сморкалов. Применение трассировки ветвлений для профилировки приложений на платформе IA-32 в ОС Windows. Технологии Microsoft в теории и практике программирования. Материалы конференции / Под ред. проф. В.П. Гергеля. – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2010. C. 335-339.
  4. А.А. Сиднев, А.В. Горшков. Влияние загрузки шины данных на ускорение параллельных программ. Технологии Microsoft в теории и практике программирования. Материалы конференции / Под ред. проф. В.П. Гергеля. – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2010. C. 93-97.

Дополнительные материалы

Пример анализа сортировки подсчётом

График показывает зависимость количества DTLB промахов (синий) от времени. Красным показано количество обращений к кэш-памяти. Из графика видно, что профиль графика DTLB промахов полностью совпадает с профилем количества обращений к кеш-памяти. Это означает, что при каждом обращении к данным кеш-памяти происходит промах DTLB. Причина низкой эффективности найдена!

vps_sort