Как профилировщик получает данные о производительности

Как работы профилировщика

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

Примечание

Вы не можете использовать Профилировщик в Быстром Режиме 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

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

Система

Output

Вычислите выходные параметры блока на шаге текущего времени.

Блок

Update

Обновите состояние блока на шаге текущего времени.

Блок

Integrate

Вычислите непрерывные состояния блока путем интеграции производных состояния на шаге текущего времени.

Блок

MinorOutput

Вычислите блокируют выход на незначительном временном шаге.

Блок

MinorDeriv

Вычислите производные состояния блока на незначительном временном шаге.

Блок

MinorZeroCrossings

Вычислите значения пересечения нулем блока на незначительном временном шаге.

Блок

ModelTerminate

Освободите память и выполните любую другую очистку конца симуляции.

Система

Nonvirtual Subsystem

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

Блок

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

Запустите профилировщик

  1. Откройте модель.

  2. На вкладке Debug выберите Performance Advisor> Activate Profiler.

  3. Симулируйте модель.

Когда симуляция завершена, Simulink генерирует и отображает профиль симуляции для модели в веб-браузере MATLAB®.

Итоговый раздел

Сводный файл отображает следующие общие количества производительности.

ЭлементОписание

Общее записанное время

Общее время, требуемое симулировать модель

Количество методов блока

Общее количество вызовов функций блочного уровня (например, Output())

Количество внутренних методов

Общее количество вызовов функций уровня системы (например, ModelExecute)

Количество методов модели

Количество методов вызвано моделью

Количество невиртуальных методов подсистемы

Общее количество вызовов невиртуальных функций подсистемы

Синхронизируйте точность

Точность измерения времени профилировщика

Тактовая частота

Скорость измерения времени профилировщика

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

ЭлементОписание

Имя

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

Время

Общее время потратило выполнение всех вызовов этой функции как абсолютное значение и как процент общего времени симуляции.

Вызовы

Число раз эта функция было вызвано.

Время/Вызов

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

Сам время

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

Местоположение

Задает блок или модель, выполняемую, для которого вызывается эта функция. Этот элемент является гиперссылкой. Кликните по нему, чтобы подсветить соответствующий элемент в диаграмме модели.

Подробный раздел профиля

Этот раздел отчета содержит подробные профили для каждой функции, которую Simulink вызвал, чтобы симулировать модель. В дополнение к информации в итоговом профиле для функции подробный профиль отображает функцию (родительская функция), который вызвал профилируемую функцию и функции (дочерние функции) вызванный профилируемой функцией. Кликните по имени родительского элемента или дочерней функции, чтобы видеть подробный профиль для этой функции.

Примечание

Включение Профилировщика на родительской модели не позволяет профилировать для моделей, на которые ссылаются. Необходимо позволить профилировать отдельно для каждой модели, на которую ссылаются. Профилирование происходит, только если модель, на которую ссылаются, выполняется в Режиме normal mode. Смотрите Режим normal mode для получения дополнительной информации.

Отчеты для моделей, на которые ссылаются, отличаются от той из родительской модели.

Сохраните результаты профилировщика

Можно сохранить Отчет профилирования в переменную в рабочем пространстве MATLAB, и после этого, к mat файл. В более позднее время можно регенерировать и рассмотреть отчет.

Сохраните Отчет профилирования для модели vdp к переменной profile1 и к файлу данных report1.mat.

  1. В окне Simulink Profiler Report, в разделе Summary, щелкают по ссылке click here. Simulink сохраняет данные об отчете к переменной vdpProfileData.

  2. Рассмотрите отчет. В командной строке MATLAB, введите:

    slprofreport(vdpProfileData)
  3. Сохраните данные к переменной под названием profile1 в базовом рабочем пространстве.

    profile1 = vdpProfileData;
  4. Сохраните данные к mat файл с именем report1.

    save report1 profile1

Просмотреть отчет позже, в командной строке MATLAB, введите:

load report1
slprofreport(profile1);

Связанные примеры

Больше о