Можно запустить программное обеспечение в цикле (SIL) или процессор в цикле (PIL) выполнение, которое производит метрики времени выполнения для задач и функций в сгенерированном коде. Во время выполнения можно использовать Инспектора Данных моделирования, чтобы наблюдать переданные потоком времена выполнения. Когда выполнение завершено, вы можете:
Просмотрите метрики времени выполнения для профилируемой функции точки входа.
Откройте отчет метрик времени выполнения для всех профилируемых функций. Через значки отчета можно просмотреть, например, профилируемую секцию кода и распределение времени выполнения для каждой профилируемой функции.
Используйте Инспектора Данных моделирования, чтобы построить и сравнить времена выполнения от различных запусков выполнения.
Когда вы запускаете SIL или выполнение PIL с включенным профилированием времени выполнения, программное обеспечение генерирует сообщение во вкладке Test Output. Например:
Current plot held ### Starting SIL execution for 'kalman01' To terminate execution: clear kalman01_sil Execution profiling data is available for viewing. Go to Simulation Data Inspector. Execution profiling report available after termination. Current plot released
Чтобы наблюдать переданные потоком времена выполнения, в то время как выполнение запускается, нажмите Simulation Data Inspector
ссылка.
Открыть отчет профилирования выполнения кода:
Нажмите Stop SIL Verification
ссылка.
Программное обеспечение отключает процесс выполнения и отображает новую ссылку.
### Stopping SIL execution for 'kalman01'
Execution profiling report: report(getCoderExecutionProfile('kalman01'))
Щелкните по новой ссылке.
Отчет обеспечивает:
Сводные данные.
Информация о профилируемых секциях кода, которая включает измерения времени для:
entry_point_fn
_initialize
функция, например, kalman01_initialize
.
Функция точки входа, например, kalman01
.
entry_point_fn
_terminate
функция, например, kalman01_terminate
.
Определения для метрик.
По умолчанию отчет отображает время в наносекундах (10-9 секунды. Можно задать формат цифрового дисплея и единица измерения времени. Например, чтобы отобразить время в микросекундах (10-6 секунды), используйте report
команда:
% Create workspace variable executionProfile=getCoderExecutionProfile('kalman01'); report(executionProfile, ... 'Units', 'Seconds', ... 'ScaleFactor', '1e-06', ... 'NumericFormat', '%0.3f')
Отчет отображает время в секундах, только если таймер калибруется, то есть, количество меток деления таймера в секунду устанавливается. На Windows® машина, программное обеспечение определяет это значение для SIL симуляции. На Linux® машина, необходимо вручную калибровать таймер. Например, если ваша скорость процессора составляет 1 ГГц, задайте количество меток деления таймера в секунду:
executionProfile.TimerTicksPerSecond = 1e9;
Чтобы просмотреть метрики времени выполнения для секции кода в Командном окне, на соответствующей строке, кликают по значку.
Чтобы отобразить измеренные времена выполнения, кликните по Инспектору Данных моделирования значок. Можно использовать Инспектора Данных моделирования, чтобы управлять и сравнить графики от различного выполнения.
Чтобы отобразить распределение времени выполнения, кликните по значку.
В этом примере, чтобы создать гистограмму, программное обеспечение использует эти команды:
executionProfile=getCoderExecutionProfile('kalman01') section=executionProfile.Sections(2); data=section.ExecutionTimeInSeconds; histogram(data, 30,'Normalization','probability');
Если сгенерированный код содержит вложенные функции, выполнение генерирует круговые диаграммы, которые показывают относительные времена выполнения вызывающей стороны и вызванных функций. Чтобы отобразить круговые диаграммы, кликните по значку для функции вызывающей стороны.
В следующей таблице перечислены информацию, предоставленную в профилях секции кода.
Столбец | Описание |
---|---|
Раздел | Имя функции, от которой сгенерирован код. |
Максимальное время выполнения | Самое долгое время между началом и концом секции кода. |
Среднее время выполнения | Среднее время между началом и концом секции кода. |
Максимум сам время | Максимальное время выполнения, исключая время в дочерних разделах. |
Среднее значение сам время | Среднее время выполнения, исключая время в дочерних разделах. |
Вызовы | Количество вызовов секции кода. |
Значок, по которому вы кликаете, чтобы отобразить профилируемую секцию кода. | |
Значок, по которому вы кликаете, чтобы отобразить измеренные времена выполнения с Инспектором Данных моделирования. | |
Значок, по которому вы кликаете, чтобы отобразить распределение времени выполнения для профилируемой секции кода. | |
Значок, по которому вы кликаете, чтобы отобразить круговые диаграммы, которые показывают относительные времена выполнения вызывающей стороны и вызванных функций в сгенерированном коде. |
Можно использовать Инспектора Данных моделирования, чтобы визуализировать планирование задач и порядок вызовов функции. В конце выполнения запуститесь schedule
функция. Для получения дополнительной информации смотрите, Визуализируют Планирование задач.