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

Предыдущая  Содержание  Следующая V*D*V

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

 

Зачем нужно профилирование? Большинство встраиваемых систем имеют весьма ограниченные ресурсы с точки зрения общей памяти и частоты процессора. Поэтому очень важно обеспечить, чтобы эти ресурсы использовались оптимально. С помощью профилирования определяются различные узкие места в программе. Устранение этих узких мест ведёт к увеличению производительности системы и оптимальному использованию ресурсов.

Что измеряется в процессе профилирования? Это включает в себя такие величины, как процент времени выполнения в каждой части программы и использование памяти различными модулями программы. Для драйверов это может быть общее время запрета прерываний, и так далее.

Как используется результаты профилирования? Результаты профилирования используются для оптимизации программ; проблемные части кода могут быть переписаны с использованием лучшего алгоритма.

Что представляют собой инструменты профилирования? Роль инструмента профилирования заключается в том, чтобы связать узкие места, выявленные в ходе исполнения, с лежащим в основе исходным кодом. Инструменты профилирования также предоставляют пользователю данные профилирования в виде графика, гистограммы или другого удобного для человека формата.

Какой должна быть среда профилирования? Во время профилирования программе должны даваться реалистичные входные сигналы. Для получения более точных результатов профилирования вся отладочная информация должна быть отключена. Наконец, воздействие самого инструмента профилирования на результаты должно быть известно заранее.

 

В этом разделе мы обсудим три профилировщика: eProf, OProfile и Kernel Function Instrumentation (KFI). Сначала мы обсудим eProf, встраиваемый профилировщик, который можно использовать во время разработки программы. Далее мы обсудим OProfile, который представляет собой очень мощный инструмент профилирования. Наконец, мы обсудим KFI для профилирования функций ядра. Эти профилировщики в основном сконцентрированы на времени выполнения различных частей программы.

 

Предыдущая  Содержание  Следующая