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