Профилировщик TLC собирает статистические данные синхронизации для кода TLC. Это собирает время выполнения для функций, скриптов, макросов и встроенных функций. Эти результаты становятся основанием отчетов HTML, которые идентичны в формате отчетам профилирования MATLAB®. Путем анализирования доклада можно идентифицировать узкие места в коде, которые заставляют генерацию кода занять больше времени.
На диалоговом окне Configuration Parameters выберите Profile TLC (Simulink Coder). Примените свои изменения и нажмите Ctrl+B.
В конце процесса TLC процесс сборки создает сводные данные HTML и связанные файлы.
Отчет профиля сгенерирован в папку сборки. Чтобы открыть отчет, измените папку (cd
) к папке сборки и открытый файл
, открытие его в окне браузера. Вот выборка TLC, профилирующего отчет:model
.html
Созданный отчет довольно очевиден. Некоторые моменты, которые необходимо отметить,
Функции сортируются в порядке убывания их времени выполнения.
Самовремя является временем, проведенным в одной только функции, не включая время, проведенное в функциях, вызванных функцией.
Функции являются гиперссылками, которые берут вас к деталям, связанным с той определенной функцией.
Отчет профилирования может быть полезным, когда вы встроили S-функции в своей модели. Можно использовать профилировщик, чтобы сравнить время, проведенное в написанном пользователем определенном или Lib
функции, и затем изменяют ваш код TLC соответственно.
TLC полагает, что следующие директивы неисполняемые линии. Поэтому эти директивы не считаются в Отчетах профилирования TLC:
%filescope
%else
%endif
%endforeach
%endfor
%endroll
%endwith
%body
%endbody
%endfunction
%endswitch
%default
Комментарий (%%
или /% text %/
Анализ результатов профилировщика также дает вам, обзор которых функции используются чаще или более дорогие. Затем можно или улучшить те функции или попробовать альтернативные методы, чтобы улучшить скорость генерации кода. Два вопроса для рассмотрения
Уменьшайте использование EXISTS
. Выполнение EXISTS
на поле является более дорогостоящим, чем сравнение поля к значению. Когда возможно, создайте инертное значение по умолчанию для поля. Затем вместо того, чтобы делать EXISTS
на сущности сравните его со значением по умолчанию.
Уменьшайте использование коротких функций. Короткие функции могут быть узким местом для скорости генерации кода. Когда удобочитаемость не будет проблемой, рассмотрите расширение функции.