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

Во время программного обеспечения в цикле (SIL) или процессоре в цикле (PIL) симуляция, можно использовать Инспектора Данных моделирования, чтобы наблюдать переданные потоком времена выполнения. В конце симуляции вы можете:

  • Просмотрите метрики времени выполнения для профилируемого компонента модели.

  • Откройте отчет метрик времени выполнения для всех профилируемых компонентов.

  • Используйте Инспектора Данных моделирования, чтобы построить и сравнить времена выполнения от различных симуляций.

Рассмотрите модель rtwdemo_sil_topmodel, которая имеет две подсистемы CounterTypeA и CounterTypeB. Измерять времена выполнения кода для подсистем, на Configuration Parameters> Code Generation> панель Verification:

  1. Выберите Measure task execution time, который обеспечивает метрики времени выполнения для задачи, сгенерированной от топ-модели rtwdemo_sil_topmodel.

  2. Установите Measure function execution times на Coarse (referenced models and subsystems only), который обеспечивает метрики времени выполнения для функций, сгенерированных от подсистем CounterTypeA и CounterTypeB.

  3. Задайте Workspace variable, например, executionProfile.

  4. От Save options выпадающий список выберите All data.

Выполнение симуляции генерирует переменную executionProfile в базовом рабочем пространстве MATLAB®.

Примечание

Если вы устанавливаете флажок Data Import/Export> Single simulation output, симуляция создает переменную в вашем заданном объекте Simulink.SimulationOutput.

Чтобы просмотреть переданные потоком времена выполнения во время симуляции, откройте Инспектора Данных моделирования. На панели инструментов Editor Simulink® нажмите кнопку Simulation Data Inspector.

Когда симуляция завершена, профилируемые компоненты модели окрашены в синий. Чтобы просмотреть метрики времени выполнения для профилируемого компонента, кликните по компоненту. Например, подсистема CounterTypeB.

Окно экрана также имеет ссылки на:

  • Полный профильный отчет, который обеспечивает метрики времени выполнения для всех профилируемых секций кода.

  • Профилируемая секция кода в отчете генерации кода.

  • Инспектор Данных моделирования, который позволяет вам строить и сравнивать измерения времени выполнения для профилируемой секции кода.

Для топ-модели SIL или PIL симуляции, Редактор Simulink фон также окрашен в синий. Когда вы кликаете по фону, окно экрана показывает метрики времени выполнения для задач топ-модели.

Если вы закрываете модель или окно экрана, можно вновь открыть цветную модель и окно экрана с этой командой строки:

>> annotate(executionProfile)

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

В конце симуляции можно открыть этот отчет через метрическое окно экрана или с этой командой строки:

>> report(executionProfile)

Часть 1 предоставляет сводные данные. Часть 2 содержит информацию о профилируемых секциях кода.

Расширьте и сверните профилируемые разделы в части 2 путем нажатия [+] и [–] соответственно. Эта диаграмма показы полностью расширила разделы.

Отчет содержит измерения времени для:

  • Образцовая инициализация функционирует rtwdemo_sil_topmodel_initialize.

  • Задача представлена ступенчатой функцией rtwdemo_sil_topmodel_step [0.1 0].

  • Функции сгенерировали от подсистем CounterTypeA и CounterTypeB.

Можно перейти к профилируемой секции кода в представлении Generated Code Отчета Генерации кода. В Отчете Профилирования Выполнения кода, на строке секции кода, кликают по значку. Например, если вы кликаете по значку для задачи rtwdemo_sil_topmodel_initialize, вы видите зонды измерения вокруг сайта вызова в приложении SIL.

Если вы кликаете по значку для функции, сайт вызова подсвечен.

Из Отчета Профилирования Выполнения кода можно проследить компонент модели, который производит набор метрик. Например, в столбце Section, если вы кликаете по гиперссылке CounterTypeA, Редактор Simulink идентифицирует подсистему.

По умолчанию отчет отображает время в наносекундах (10-9 секунд). Можно задать формат цифрового дисплея и единица измерения времени. Например, чтобы отобразить время в микросекундах (10-6 секунд), используйте следующую команду:

>>report(executionProfile,...
         'Units', 'Seconds', ...
         'ScaleFactor', '1e-06', ...
         'NumericFormat', '%0.3f')

Отчет отображает время в секундах, только если таймер калибруется, то есть, количество меток деления таймера в секунду известно. На машине Windows® программное обеспечение определяет это значение для SIL симуляции. На машине Linux® калибруйте таймер вручную. Например, если ваша скорость процессора составляет 1 ГГц, задайте количество меток деления таймера в секунду:

>>executionProfile.TimerTicksPerSecond = 1e9;

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

Примечание

Чтобы наблюдать, как секции кода вызываются по временной шкале выполнения, используйте функцию timeline.

Следующая таблица описывает информацию, предоставленную в профилях секции кода.

СтолбецОписание
Раздел

Имя задачи, топ-модели, подсистемы или блока Model. Щелкните по ссылке, чтобы перейти к модели.

С задачей демонстрационный период и демонстрационное смещение перечислены рядом с именем задачи. Например, rtwdemo_sil_topmodel_step [0.1 0] указывает, что демонстрационный период составляет 0,1 секунды, и демонстрационное смещение 0.

Максимальный Срок выполнения работы (Simulink Real-Time™ и пакеты поддержки в режиме реального времени режим) Самое долгое время между запуском и концом секции кода. Включает время вытеснения.
Среднее время цикла (Simulink Real-Time и пакеты поддержки в режиме реального времени режим) Среднее время между запуском и концом секции кода. Включает время вытеснения.
Максимальное время выполненияСамое долгое время между запуском и концом секции кода.
Среднее время выполненияСреднее время между запуском и концом секции кода.
Максимум сам времяМаксимальное время выполнения, исключая время в дочерних разделах.
Среднее значение сам времяСреднее время выполнения, исключая время в дочерних разделах.
ВызовыКоличество вызовов секции кода.

Значок, по которому вы кликаете, чтобы видеть профилируемую секцию кода в представлении Generated Code Отчета Генерации кода. Секция кода может быть задачей или функцией.

Заданная переменная рабочей области, например, executionProfile, должна присутствовать в базовом рабочем пространстве.

Значок, по которому вы кликаете, чтобы отобразить профилируемую секцию кода в Командном окне. Эквивалентный выполнению команды executionProfile.Sections(i).

Заданная переменная рабочей области, например, executionProfile, должна присутствовать в базовом рабочем пространстве.

Значок, по которому вы кликаете, чтобы отобразить измеренные времена выполнения с Инспектором Данных моделирования.

Заданная переменная рабочей области, например, executionProfile, должна присутствовать в базовом рабочем пространстве.

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

|

Связанные примеры

Больше о