Профилирование выполнения для приложений реального времени

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

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

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

  • Создайте, загрузите и выполните модель.

  • Запустите и остановите профилировщик.

  • Отобразите данные профилировщика.

Профилирование немного увеличивает время выполнения приложения реального времени.

Сконфигурируйте приложение реального времени для функционального профилирования выполнения

В этом разделе моделью является dxpcmds6t. Чтобы открыть эту модель, откройте модели подсистемы сначала:

  1. Открытая модель dxpcmds6t.

  2. В топ-модели откройте диалоговое окно Configuration Parameters. Выберите Code Generation>> Verification.

  3. Установите флажок времен выполнения функции Меры. Флажок времени выполнения задачи Меры проверяется и блокируется.

4. Нажать ОК. Сохраните модель dxpcmds6t в локальной папке.

Сгенерируйте профиль выполнения приложения реального времени

В этом разделе сгенерируйте данные о профиле для модели dxpcmds6t на многожильном целевом компьютере.

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

  1. Открытый, сборка и загрузка модель.

mdl = 'dxpcmds6t';
open_system(mdl);
rtwbuild(mdl);
tg = slrt('TargetPC1');
load(tg,mdl);

Когда вы включаете профилирование, Отчет Генерации кода сгенерирован по умолчанию. Это содержит ссылки на сгенерированный код C, и включайте файлы. Путем щелчка по этим ссылкам можно исследовать сгенерированный код и интерпретировать Отчет Профиля Выполнения кода.

2. Запустите профилировщик и затем выполните приложение реального времени.

startProfiler(tg);
start(tg);
pause(1)
stopProfiler(tg);
stop(tg);

3. Отобразите данные профилировщика.

profiler_data = getProfilerData(tg)

График Профиля Выполнения показывает выделение циклов выполнения через эти четыре процессора, обозначенные цветными горизонтальными планками. Разделы модели перечислены в Отчете Профилирования Выполнения кода. Ядра обозначаются числами под панелями.

Для получения дополнительной информации о временной шкале в графике профиля выполнения, смотрите timeline.

Отчет Профилирования Выполнения кода отображает результаты профиля выполнения модели для каждой задачи.

  • Чтобы отобразить данные о профиле для раздела модели, в столбце Раздела, нажимают кнопку Membrane рядом с задачей.

  • Чтобы отобразить данные TET для раздела в Инспекторе Данных моделирования, нажмите кнопку данных временных рядов Графика.

  • Чтобы просмотреть раздел в Редакторе Simulink, щелкните по ссылке рядом с кнопкой Expand Tree.

  • Чтобы просмотреть линии сгенерированного кода, соответствующего разделу, нажмите кнопку Expand Tree и затем нажмите View Source button.

4. Чтобы исследовать дальнейшее совершенствование, смотрите, Улучшают Производительность Многоскоростной модели.

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