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

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