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

В этом примере показано, как использовать блок 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

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

Откройте диалоговое окно Параметры конфигурации. Выберите Генерация Кода > верификация.

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

Или в командном окне 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