Оптимизация кода приложений — это то, чем занимается программист, когда текущая производительность оказывается недостаточной. Основная задача оптимизации заключается в уменьшении времени работы приложения. Достичь этого можно следующими способами:
Библиотеки есть не для всех задач, компиляторы не в состоянии оптимизировать любой код, ручная оптимизация сложна и не всегда приводит к ожидаемым результатам. Кроме того, постоянно усложняется аппаратура под которую ведётся разработка, а следовательно и оптимизация под неё. Оптимизация кода приложений — это сложная задача. Поэтому программисту необходим инструмент, облегчающий процесс оптимизация приложений.
Основные этапы оптимизации:
Система Visual Performance System предназначена для помощи программисту в анализе эффективности приложений и поиске причин низкой эффективности.
Основным критерием эффективности приложения является время выполнения им вычислительно тяжелых операций в процессе его работы (обработка запроса к базе данных, преобразование документа из одного формата в другой, перевод с языка на язык и прочее). Наряду с временем существует множество дополнительных индикаторов эффективности, таких как число промахов кэш-памяти, число неверно предсказанных ветвлений и др. На основе этих дополнительных показателей можно выполнять более адекватную оценку и находить причины низкой эффективности приложения.
Руководитель проекта
Ранее в проекте участвовали
В результате проделанной работы был разработан программный комплекс (VPS), позволяющий программисту проводить детальный анализ эффективности приложений. Основным достоинством системы являются низкие накладные расходы и высокая точность измерений в процессе сбора статистики. Комплекс имеет два основных режима работы: автоматический режим работы по системному таймеру и режим работы по меткам (пользователь системы сам выбирает, те участки программы, которые ему интересны для анализа). За счёт того, что модуль запуска мониторинга реализован в виде консольного приложения, то имеется возможность проведения серийных экспериментов. Модуль настройки имеет графический интерфейс и позволяет конфигурировать более 40 событий мониторинга. Система VPS работает в операционных системах семейства Windows 2000, Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008.
График показывает зависимость количества DTLB промахов (синий) от времени. Красным показано количество обращений к кэш-памяти. Из графика видно, что профиль графика DTLB промахов полностью совпадает с профилем количества обращений к кеш-памяти. Это означает, что при каждом обращении к данным кеш-памяти происходит промах DTLB. Причина низкой эффективности найдена!