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

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

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

Примечание

Вы не можете использовать Профилировщик в Быстром Режиме 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. Выберите Analysis> Performance Tools> Show Profiler Report.

  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);

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

Больше о