Рассмотрите случай, где инициированный блок Model сконфигурирован, чтобы запуститься в режиме PIL симуляции или SIL симуляции. Программное обеспечение генерирует одно измерение времени выполнения каждый раз, когда модель, на которую ссылаются, инициирована, чтобы запуститься. Если существует несколько триггеров в одном временном шаге, программное обеспечение генерирует несколько измерений для инициированного блока Model. С другой стороны, если нет никакого триггера в данном временном шаге, программное обеспечение не генерирует измерений времени.
Когда вы запускаете SIL симуляцию с включенным профилированием времени выполнения, вы можете видеть скачки в измерениях времени выполнения.
Скачки происходят из-за вытеснения процесса, которое происходит с многозадачной хостовой операционной системой. Если операционная система вытесняет процесс SIL и запускает другой процесс, измеренное время выполнения включает время, в течение которого приостановлен процесс SIL. С PIL симуляцией вы не видите скачки, потому что выполнение кода на цели не вытесняется.
Встречный перенос производит измерения времени выполнения, которые меньше, чем ожидалось. Для SIL переносится счетчик, когда период времени выполнения больше 264 метки деления (232 метки деления, если компилятор MEX является LCC). Для PIL переносящаяся точка зависит от таймера, который вы задаете и можете быть 28, 216, 232, или 264 метки деления.
Рассмотрите пример PIL, где частота таймера составляет 20 МГц. Для 32-битного таймера происходит перенос, когда период времени выполнения больше 1/(20e6)*(2^32-1)
, то есть, 214,7 с. Однако для 16-битного таймера, точка, в которой происходит перенос, составляет 0,0033 с.
Для многожильного приложения в реальном времени программное обеспечение вмещает несоответствия синхронизации при записи значений таймера для различных ядер, который эффективно уменьшает область значений измерения таймера.
Если ваша целевая настройка уже не задает таймер, создает объект - таймер, который предоставляет подробную информацию специфичного для оборудования таймера и сопоставленных исходных файлов:
Для SIL симуляции размер слова таймера составляет 64 бита.
Для PIL симуляции задайте 8-без знака, 16-, 32-, или 64-битный таймер. Для получения дополнительной информации смотрите, Задают Аппаратный Таймер.
Код инструментирования увеличивает объем кода, чтобы запуститься и может привести к центральному процессору, требующему, чтобы больше циклов выбирало блоки кода из памяти. Это - один из эффектов кода инструментирования по этапу выборки и зависит от того, как код выравнивается в памяти. Если оснащенный код не помещается в то же количество блоков как код, который не оснащен, устройство предварительной выборки должно передать больше блоков.
Профильное инструментирование навязчиво и влияет на количество, которое оно предназначается, чтобы измерить. Поэтому цель проекта состоит в том, чтобы максимизировать код, понимающий с минимумом инструментирования. Например, с системой реального времени, могут быть контекстные переключения задачи из-за вытеснения. Эти контекстные переключения явным образом не оснащены. Чтобы записать начало и конец каждой задачи, программное обеспечение должно вывести контекстные переключения из инструментирования. В результате программное обеспечение сообщает о поведении, которое является оценкой. Оценка подвергается ошибке из-за неполного инструментирования в ядре.
В некоторых случаях, когда программное обеспечение не может точно определить поведение, программное обеспечение генерирует предупреждение:
Warning: Analysis unsuccessful for one or more profiling data points. ...
set_param(model, 'CodeProfilingInstrumentation', 'on')
). Если взаимное исключение берет системный вызов, не оснащен, контекстное переключение задачи может произойти, который не отображается к выполнению профильным анализом.В других случаях, несмотря на то, что программное обеспечение не может точно определить поведение, программное обеспечение не генерирует предупреждение.
Вы не можете сгенерировать профили времени выполнения для сайтов вызова функции в рамках кода подсистемы, который снова используется через или многоуровневые модели модели. Для получения информации о повторном использовании кода подсистемы смотрите, Генерируют Повторно используемый код от Подсистем Библиотеки, Разделяемых Через Модели.
Вы не можете загрузить измерения времени выполнения, сохраненные с предыдущим релизом. Например, с помощью R2014a, вы сохраняете переменные рабочей области в MAT-файл. Одна из переменных рабочей области содержит измерения времени выполнения. В R2015b, при попытке загрузить MAT-файл, вы видите эту ошибку:
Format of execution profiling data is invalid. This error can occur if you load data from a previous release. Loading data from a previous release is not supported.