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

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

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

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

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

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

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

Блок Execution Profiler и SLRT Overload Options использует различные механизмы, чтобы измерить TET и не генерирует идентичные значения TET.

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

Моделью является 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 ',' Крупный ');

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

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

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

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

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

mdl = 'slrt_ex_mds_and_tasks';
open_system(mdl);
slbuild(mdl);
tg = slrealtime;
load(tg,mdl);
my_app = slrealtime.Application('slrt_ex_mds_and_tasks');
my_app.Options.set("stoptime",20);
### Starting serial model reference simulation build
### Starting serial model reference code generation build
### Successful completion of build procedure for: slrt_ex_mds_subsystem1
### Successful completion of build procedure for: slrt_ex_mds_subsystem2
### Successful completion of build procedure for: slrt_ex_mds_and_tasks
Invalid Simulink object name: slrt_ex_mds_subsystem1.
### Created MLDATX ..\slrt_ex_mds_and_tasks.mldatx

Build Summary

Code generation targets built:

Model                   Action                       Rebuild Reason                              
=================================================================================================
slrt_ex_mds_subsystem1  Code generated and compiled  slrt_ex_mds_subsystem1.cpp does not exist.  
slrt_ex_mds_subsystem2  Code generated and compiled  slrt_ex_mds_subsystem2.cpp does not exist.  

Top model targets built:

Model                  Action                       Rebuild Reason                                    
======================================================================================================
slrt_ex_mds_and_tasks  Code generated and compiled  Code generation information file does not exist.  

3 of 3 models built (0 models already up to date)
Build duration: 0h 0m 45.003s

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

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

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

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

profiler_data = getProfilerData(tg)
plot(profiler_data)
report(profiler_data)
Processing data on target computer ...
Transferring data from target computer ...
Processing data on host computer ...
 
Code execution profiling data for model slrt_ex_mds_and_tasks.

Отображение расписания Профиля Выполнения в Инспекторе Данных моделирования показывает, как планирование сгенерировано в режиме реального времени симуляция. Открыть отображение расписания в Инспекторе Данных моделирования после создания executionProfile объект, используйте executionProfile.schedule() функция.

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

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

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

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

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

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

(Embedded Coder) | | | | | | | | |

Похожие темы