Профилировщик TLC

Используя профилировщика

Профилировщик TLC собирает статистические данные синхронизации для кода TLC. Это собирает время выполнения для функций, скриптов, макросов и встроенных функций. Эти результаты становятся основанием отчетов HTML, которые идентичны в формате отчетам профилирования MATLAB®. Путем анализирования доклада можно идентифицировать узкие места в коде, которые заставляют генерацию кода занять больше времени.

На диалоговом окне Configuration Parameters выберите Profile TLC (Simulink Coder). Примените свои изменения и нажмите Ctrl+B.

В конце процесса TLC процесс сборки создает сводные данные HTML и связанные файлы.

Анализирование доклада

Отчет профиля сгенерирован в папку сборки. Чтобы открыть отчет, измените папку (cd) к папке сборки и открытый файл model.html, открытие его в окне браузера. Вот выборка TLC, профилирующего отчет:

Созданный отчет довольно очевиден. Некоторые моменты, которые необходимо отметить,

  • Функции сортируются в порядке убывания их времени выполнения.

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

  • Функции являются гиперссылками, которые берут вас к деталям, связанным с той определенной функцией.

Отчет профилирования может быть полезным, когда вы встроили S-функции в своей модели. Можно использовать профилировщик, чтобы сравнить время, проведенное в написанном пользователем определенном или Lib функции, и затем изменяют ваш код TLC соответственно.

Неисполняемые директивы

TLC полагает, что следующие директивы неисполняемые линии. Поэтому эти директивы не считаются в Отчетах профилирования TLC:

  • %filescope

  • %else

  • %endif

  • %endforeach

  • %endfor

  • %endroll

  • %endwith

  • %body

  • %endbody

  • %endfunction

  • %endswitch

  • %default

  • Комментарий (%% или /% text %/

Улучшание производительности

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

  • Уменьшайте использование EXISTS. Выполнение EXISTS на поле является более дорогостоящим, чем сравнение поля к значению. Когда возможно, создайте инертное значение по умолчанию для поля. Затем вместо того, чтобы делать EXISTS на сущности сравните его со значением по умолчанию.

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

Похожие темы