Профилировщик отладки кода

В профилировщике отладки кода код добавляется в сгенерированный код, чтобы записать запуск и времена остановки каждой задачи, выполняющейся на процессоре. Записанный запуск и времена остановки каждой задачи отправлены в компьютер разработчика, чтобы быть сохраненными, обработаны и отображены. Мгновенное состояние каждой задачи выведено из объединенного запуска и времен остановки и приоритетов всех задач в рамках процесса.

Рассмотрите простую модель с двумя задачами, одной высокой - и низкий приоритет, выполняющийся на встраиваемом процессоре и измеренный профилировщиком отладки кода. Эта схема показывает измерения, сделанные профилировщиком отладки кода и выводом на отдельных состояниях задачи, следующих из этих измерений.

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

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

Ограничения

Профилирование отладки кода обеспечивает легкие инструменты измерения сгенерированного кода. Однако два ограничения должны быть рассмотрены при измерении выполнения задачи и времена длительности с помощью профилировщика отладки кода. Эти ограничения следующие:

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

  • Не может получить эффект команд, данных к ядру ОС из задачи с помощью блоков Пользовательского кода. Профилировщик отладки кода записывает время начала, время окончания и вытеснение задачи другими задачами. Однако, когда задача звонит ядру ОС, профилировщик отладки кода не записывает изменение управления между задачей и ядром как вытеснение. Когда вызовы ядра, без детального знания синхронизации, могут быть обработаны как недетерминированные, измеренная длительность задачи не может быть надежно измерена с помощью этого типа профилировщика. Для получения дополнительной информации о длительности задачи смотрите Длительность Задачи.

Смотрите также

Похожие темы