Просмотрите времена выполнения

Можно запустить программное обеспечение в цикле (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 ссылка.

Открыть отчет профилирования выполнения кода:

  1. Нажмите Stop SIL Verification ссылка.

    Программное обеспечение отключает процесс выполнения и отображает новую ссылку.

    ### Stopping SIL execution for 'kalman01'
        Execution profiling report: report(getCoderExecutionProfile('kalman01'))

  2. Щелкните по новой ссылке.

Отчет обеспечивает:

  • Сводные данные.

  • Информация о профилируемых секциях кода, которая включает измерения времени для:

    • 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 функция. Для получения дополнительной информации смотрите, Визуализируют Планирование задач.

Похожие темы