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

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

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

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

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

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

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

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

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

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

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

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

3. В течение времен выполнения функции Меры выберите Coarse (только образцы модели и подсистемы). Флажок времени выполнения задачи Меры проверяется и блокируется. Или в окне команды MATLAB введите:

set_param('slrt_ex_mds_and_tasks','CodeProfilingInstrumentation','Coarse');

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

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

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

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

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

mdl = 'slrt_ex_mds_and_tasks';
open_system(mdl);
rtwbuild(mdl);
tg = slrealtime;
load(tg,mdl);

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

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

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

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

profiler_data = getProfilerData(tg)
plot(profiler_data)
report(profiler_data)

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

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

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

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

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

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