Профилируйте скорость выполнения кода

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

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

Примечание

Если у вас есть лицензия Embedded Coder®, смотрите, что Выполнение кода Профилирует для альтернативного и более простого подхода на основе программного обеспечения в цикле (SIL) или процессоре в цикле (PIL) симуляции.

Используйте интерфейс функции рычага профиля

Можно профилировать код, сгенерированный с технологией генерации кода при помощи интерфейса функции рычага Компилятора выходного языка (TLC).

Чтобы использовать профиль сцепляют функциональный интерфейс:

  1. Для вашего системного конечного файла создайте файл TLC, который задает следующие функции рычага. Запишите функции так, чтобы они задали профильный код. Генератор кода добавляет код функции рычага в код, сгенерированный для атомарных систем в модели.

    ФункцияВходные параметры'OutputType' Описание
    ProfilerHeadersvoidМассив имен заголовочного файлаВозвратите массив имен заголовочного файла, которые будут включены в сгенерированный код.
    ProfilerTypedefsvoidtypedefsСгенерируйте операторы кода для определений типа профилировщика.
    ProfilerGlobalDatasystemГлобальные данные для заданного systemСгенерируйте операторы кода, которые объявляют глобальные данные.
    ProfilerExternDataDeclssystemextern объявления для заданного systemСгенерируйте операторы кода, которые создают глобальный extern объявления.
    ProfilerSystemDeclssystem, functionTypeОбъявления для заданного system для заданного functionTypeСгенерируйте код для объявлений необходимой переменной в рамках атомарной подсистемы Output, Update, OutputUpdate, или Derivatives функция.
    ProfilerSystemStartsystem, functionTypeПрофилировщик запускает команды для заданного system и functionTypeСгенерируйте код, который запускает профилировщик в рамках атомарной подсистемы Output, Update, OutputUpdate, или Derivatives функция.
    ProfilerSystemFinishsystem, functionTypeКоманды конца профилировщика для заданного system и functionTypeСгенерируйте код, который останавливает профилировщик в рамках Output, Update, OutputUpdate, или Derivatives функции атомарной подсистемы.
    ProfilerSystemTerminatesystemКод завершения профилировщика для заданного systemСгенерируйте код, который отключает профилирование (и возможно сообщает о результатах) для атомарной подсистемы.
  2. В вашем target.tlc файл, задайте следующие глобальные переменные.

    Define ...Быть...

    ProfileGenCode

    TLC_TRUE или 1, чтобы включить профилирование (TLC_FALSE или 0, чтобы выключить профилирование)

    ProfilerTLC

    Имя файла TLC, который вы создали на шаге 1

    Быстрый способ задать глобальные переменные состоит в том, чтобы задать параметры с -a опция. Можно применить эту опцию при помощи set_param команда, чтобы установить параметр конфигурации модели TLCOptions. Например,

    >> set_param(gcs,'TLCOptions', ...
         '-aProfileGenCode=1 -aProfilerTLC="rtwdemo_profile_hook.tlc"')
  3. Рассмотрите параметры конфигурации установки для генерации отчета генерации кода. Можно затем исследовать профильный код в контексте кода, сгенерированного для модели.

  4. Создайте модель. Процесс сборки встраивает профильный код в местоположения функции рычага в сгенерированном коде для модели.

  5. Запустите сгенерированный исполняемый файл. В Окне Команды MATLAB войдите! model-name. Вы видите профильный отчет, вы запрограммировали в профилировании файл TLC, который вы создали. Например, отчет профиля мог перечислить количество вызовов, выполненных к каждой системе в модели и количестве циклов ЦП, потраченных в каждой системе.

Для получения дополнительной информации при программировании .tlc файл и задающий переменные настройки TLC, см. Компилятор Выходного языка (Simulink Coder).

Профилируйте ограничение интерфейса функции рычага

Интерфейс функции рычага TLC для профилирования скорости выполнения кода не поддерживает системный конечный файл S-функции (rtwsfcn.tlc).

Похожие темы