В этом примере показано, как можно профилировать время выполнения задачи и функциональное время выполнения приложения реального времени, работающего на целевом компьютере. Используя ту информацию, можно затем настроить ее эффективность.
Профилирование особенно полезно, если приложение реального времени сконфигурировано, чтобы использовать в своих интересах многоядерные процессоры на целевом компьютере. Профилировать приложение реального времени:
В Параметрах конфигурации для модели включите набор функциональных данных времени выполнения во время выполнения.
Создайте, загрузите и выполните модель.
Запустите и остановите профилировщик.
Отобразите данные профилировщика.
Профилирование немного увеличивает время выполнения приложения реального времени.
В этом разделе моделью является 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.