Советы и ограничения

Инициированный блок Model

Рассмотрите случай, где инициированный блок 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. ...
Например, программное обеспечение может сгенерировать это предупреждение, что если не все взаимное исключение берет системные вызовы (сопоставленный с переходами уровня), оснащены. В случае Simulink® Real-Time™ может возникнуть эта ситуация, если вы генерируете код для иерархии модели - ссылки, не включая профилирование функции для всех моделей, на которые ссылаются (set_param(model, 'CodeProfilingInstrumentation', 'on')). Если взаимное исключение берет системный вызов, не оснащен, контекстное переключение задачи может произойти, который не отображается к выполнению профильным анализом.

В других случаях, несмотря на то, что программное обеспечение не может точно определить поведение, программное обеспечение не генерирует предупреждение.

Повторное использование кода подсистемы

Вы не можете сгенерировать профили времени выполнения для сайтов вызова функции в рамках кода подсистемы, который снова используется через или многоуровневые модели модели. Для получения информации о повторном использовании кода подсистемы смотрите, Генерируют Повторно используемый код от Подсистем Библиотеки, Разделяемых Через Модели (Simulink Coder).

Не может загрузить измерения времени выполнения от предыдущего релиза

Вы не можете загрузить измерения времени выполнения, сохраненные с предыдущим релизом. Например, с помощью 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.