Профилировщик получает данные о производительности, в то время как ваша модель моделирует. Это идентифицирует части вашей модели, которые требуют, чтобы большая часть времени моделировала. Используйте профильную информацию, чтобы решить, где фокусировать ваши образцовые усилия по оптимизации.
Вы не можете использовать Профилировщика в Быстром Режиме Accelerator.
Simulink® хранит данные о производительности в отчете профиля моделирования. Данные показывают, что время потратило выполнение каждой функции в вашей модели.
Основанием для Профилировщика является модель выполнения, которую обобщает этот псевдокод.
Sim() ModelInitialize(). ModelExecute() for t = tStart to tEnd Output() Update() Integrate() Compute states from derivs by repeatedly calling: MinorOutput() MinorDeriv() Locate any zero crossings by repeatedly calling: MinorOutput() MinorZeroCrossings() EndIntegrate Set time t = tNew. EndModelExecute ModelTerminate EndSim
Согласно этой концептуальной модели, Simulink запускает модель путем вызова следующего нуля функций, один, или много раз, в зависимости от функции и модели.
Функция | Цель | Уровень |
---|---|---|
\sim | Моделируйте модель. Эта функция верхнего уровня вызывает другие функции, требуемые моделировать модель. Время, проведенное в этой функции, является общим временем, требуемым моделировать модель. | Система |
ModelInitialize | Настройте модель для моделирования. | Система |
ModelExecute | Выполните модель путем вызова вывода, обновления, интегрируйте, и т.д., функции для каждого блока на каждом временном шаге от запуска в конец моделирования. | Система |
Вывод | Вычислите выходные параметры блока на шаге текущего времени. | Блок |
Update | Обновите состояние блока на шаге текущего времени. | Блок |
Integrate | Вычислите непрерывные состояния блока путем интеграции производных состояния на шаге текущего времени. | Блок |
MinorOutput | Вычислите блокируют вывод на незначительном временном шаге. | Блок |
MinorDeriv | Вычислите производные состояния блока на незначительном временном шаге. | Блок |
MinorZeroCrossings | Вычислите значения пересечения нулем блока на незначительном временном шаге. | Блок |
ModelTerminate | Освободите память и выполните любую другую очистку конца моделирования. | Система |
Nonvirtual Subsystem | Вычислите вывод невиртуальной подсистемы на шаге текущего времени путем вызова вывода, обновления, интегрируйте, и т.д., функции для каждого блока, который это содержит. Время, проведенное в этой функции, является временем, требуемым выполнить невиртуальную подсистему. | Блок |
Профилировщик измеряет время, требуемое выполнить каждый вызов этих функций. После того, как модель моделирует, Профилировщик генерирует отчет, который описывает сумму времени симуляции, потраченного на каждую функцию.
Откройте модель.
Выберите Analysis> Performance Tools> Show Profiler Report.
Моделируйте модель.
Когда моделирование завершено, Simulink генерирует и отображает профиль моделирования для модели в веб-браузере MATLAB®.
Сводный файл отображает следующие общие количества производительности.
Элемент | Описание |
---|---|
Общее записанное время |
Общее время, требуемое моделировать модель |
Количество блочных методов |
Общее количество вызовов функций блочного уровня (e. g. |
Количество внутренних методов |
Общее количество вызовов функций уровня системы (e. g., |
Количество образцовых методов |
Количество методов вызвано моделью |
Количество невиртуальных методов подсистемы |
Общее количество вызовов невиртуальных функций подсистемы |
Синхронизируйте точность |
Точность измерения времени профилировщика |
Тактовая частота |
Скорость измерения времени профилировщика |
Функциональный список показывает итоговые профили для каждой функции, вызванной, чтобы моделировать модель. Для каждой перечисленной функции итоговый профиль задает эту информацию.
Элемент | Описание |
---|---|
Имя |
Имя функции. Этот элемент является гиперссылкой. Кликните по нему, чтобы отобразить подробный профиль этой функции. |
Время |
Общее время потратило выполнение всех вызовов этой функции как абсолютное значение и как процент общего времени симуляции. |
Вызовы |
Число раз эта функция было вызвано. |
Время/Вызов |
Среднее время, требуемое для каждого вызова этой функции, включая время, проведенное в функциях, вызывается этой функцией. |
Сам время |
Общее время, требуемое выполнить эту функцию, исключая время, проведенное в функциях, вызванных этой функцией. |
Местоположение |
Задает блок или модель, выполняемую, для которого вызывается эта функция. Этот элемент является гиперссылкой. Кликните по нему, чтобы подсветить соответствующий элемент в образцовой схеме. |
Этот раздел отчета содержит подробные профили для каждой функции, которую Simulink вызвал, чтобы моделировать модель. В дополнение к информации в итоговом профиле для функции подробный профиль отображает функцию (родительская функция), который вызвал профилируемую функцию и функции (дочерние функции) вызванный профилируемой функцией. Кликните по имени родительского элемента или дочерней функции, чтобы видеть подробный профиль для этой функции.
Включение Профилировщика на родительской модели не позволяет профилировать для моделей, на которые ссылаются. Необходимо позволить профилировать отдельно для каждой модели, на которую ссылаются. Профилирование происходит, только если модель, на которую ссылаются, выполняется в Режиме normal mode. Смотрите Режим normal mode для получения дополнительной информации.
Отчеты для моделей, на которые ссылаются, отличаются от той из родительской модели.
Можно сохранить Отчет профилирования в переменную в MATLAB workspace, и после этого, к файлу mat
. В более позднее время можно регенерировать и рассмотреть отчет.
Сохраните Отчет профилирования для образцового vdp
к переменному profile1
и к файлу данных report1.mat
.
В окне Simulink Profiler Report, в разделе Summary, нажатие кнопки щелкает здесь ссылка. Simulink сохраняет данные отчета к переменному vdpProfileData
.
Рассмотрите отчет. В подсказке команды MATLAB войдите:
slprofreport
(vdpProfileData
)
Сохраните данные к переменной под названием profile1
в базовом рабочем пространстве.
profile1 = vdpProfileData;
Сохраните данные в файл с именем mat
report1
.
save report1 profile1
Чтобы просмотреть отчет позже, в подсказке команды MATLAB, войдите:
load report1 slprofreport(profile1);