exponenta event banner

Вставка события в поток профилирования выполнения

В этом примере показано, как использовать блок Log Event для вставки определяемого пользователем события в поток событий профилирования выполнения. Дополнительные сведения о профилировании выполнения см. в разделе Профилирование выполнения для приложений реального времени.

Открыть модель

Чтобы открыть модель, в окне команды MATLAB введите:

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_log_event'));

mdl = 'slrt_ex_log_event';
mdlOpened = 0;
systems = find_system('type', 'block_diagram');
if ~any(strcmp(mdl, systems))
  mdlOpened = 1;
  open_system(fullfile(matlabroot,'toolbox','slrealtime','examples',mdl));
end

Задать параметры для времени выполнения функции измерения

Откройте диалоговое окно «Параметры конфигурации». Выберите «Создание кода» > «Проверка».

Для параметра Measure function execution time (Время выполнения функции измерения) выберите Detailed (Detailed) (detailed ( Флажок Время выполнения задачи измерения установлен и заблокирован. Нажмите кнопку ОК.

Или в окне команды MATLAB введите:

set_param('slrt_ex_log_event','CodeProfilingInstrumentation','Detailed');

Создание и загрузка приложения в режиме реального времени

Создайте модель и загрузите ее на целевой компьютер.

evalc('slbuild(mdl)');
tg = slrealtime;
load(tg,mdl);

Выполнение профиля

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

startProfiler(tg);
start(tg);
pause(20)
stopProfiler(tg);
stop(tg);
Warning: Profiler already stopped. Command ignored. 

Отобразить профиль выполнения

Извлеките данные профилировщика. Отображение определяемого пользователем события в таблице.

profiler_data = getProfilerData(tg);
profiler_data.EventTrace.etData
Processing data on target computer ...
Transferring data from target computer ...
Processing data on host computer ...
 

ans =

  2×6 table

    Channel       Timestamp        Event    Value    CPU    ModelTime
    _______    ________________    _____    _____    ___    _________

      500      3545275820041720     200      200      1          2   
     1000      3545280320044224     100      700      1        6.5   

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

Закрыть модель

Закройте модель, если она открыта.

if (mdlOpened)
  bdclose(mdl);
end