Оптимизация генерируемого кода для повышения эффективности выполнения, уменьшения потребления ОЗУ или баланса между эффективностью выполнения и потреблением ОЗУ.
По умолчанию:
Balance RAM and speed
Balance RAM and speedНастройте параметры генерации кода, чтобы сбалансировать ОЗУ и скорость выполнения.
Maximize execution speedПримените параметры генерации кода, чтобы максимизировать скорость выполнения.
Minimize RAMНастройте параметры генерации кода, чтобы минимизировать потребление ОЗУ.
Включите этот параметр, установив для параметра Level значение Maximum.
Для этого параметра требуется лицензия Embedded Coder ®.
Этот параметр отображается только для целевых объектов на основе ERT.
Для каждого значения параметра Priority и Level имеются соответствующие значения параметров в разделе Details. Это некоторые важные различия между этими различными настройками:
Если для параметра Level задано значение Minimum (debugging)параметры в разделе Подробно имеют значение offs. Генератор кода не реализует оптимизации, которые удаляют переменные или код, облегчая отладку сгенерированного кода.
Параметры настройки для Balanced with Readability и Balance RAM and speed являются одинаковыми, за исключением этих трех параметров:
Повторное использование буферов различных размеров и размеров
Оптимизация глобального доступа к данным
Оптимизация порядка работы блока в сгенерированном коде
Вышеуказанные оптимизации могут потенциально повредить читаемости, поскольку они пересекают границы атомной подсистемы, и порядок работы блока в сгенерированном коде может изменить порядок выполнения блока в сгенерированном коде так, чтобы он отличался от того, который используется при моделировании.
Если объем оперативной памяти ограничен, выберите Minimize RAM установка. Этот параметр позволяет оптимизировать ОЗУ за счет возможного замедления скорости выполнения:
Упаковать логические данные в битовые поля
Повторное использование буферов различных размеров и размеров
Использовать битсеты для сохранения конфигурации состояния
Использовать битовые наборы для хранения булевых данных
Этот параметр также изменяет порядок операций «Оптимизировать блок» в сгенерированном коде из Improved Code Execution Speed кому off.
Для каждого значения параметра Приоритет (Priority) и Уровень (Level) в этой таблице перечислены соответствующие значения параметров в разделе Подробно (Details).
| Параметры | Настройки | Пример | ||||
|---|---|---|---|---|---|---|
| Уровень | Minimum (debugging) | Balanced with readability | Maximum | |||
| Приоритет | Неприменимо (Н/Д) | Н/Д | Balance RAM and speed | Maximize execution speed | Minimize RAM | |
| Подробнее | ||||||
| Использовать memcpy для назначения вектора | Off | On | On | On | On | Использование функции memcpy для оптимизации сгенерированного кода для векторных назначений |
| Пороговое значение Memcpy (байт) | Off | 64 | 64 | 64 | 64 | Использование функции memcpy для оптимизации сгенерированного кода для векторных назначений |
| Включить локальные блочные выходы | Off | On | On | On | On | Включение и повторное использование выходных данных локального блока в сгенерированном коде |
| Повторное использование выходных данных локальных блоков | Off | On | On | On | On | Включение и повторное использование выходных данных локального блока в сгенерированном коде |
| Исключение лишних локальных переменных (сворачивание выражений) | Off | On | On | On | On | Минимизация вычислений и хранения промежуточных результатов на блочных выходах |
| Повторное использование глобальных блочных выходов | Off | On | On | On | On | Повторное использование выходных данных глобального блока в сгенерированном коде |
| Обновление по месту для блоков назначения и назначения шины | Off | On | on | On | On | Сокращение количества копий данных для блока назначения шины |
| Повторное использование буферов для блоков чтения и записи хранилища данных | Off | On | On | On | On | Сокращение количества копий данных для блоков чтения и записи в хранилище данных |
| Упрощение индексации массивов | Off | Off | Off | On | Off | Упрощение операций умножения при индексировании массивов |
| Упаковать логические данные в битовые поля | Off | Off | Off | Off | On | Оптимизация сгенерированного кода путем упаковки логических данных в битовые поля |
| Повторное использование буферов различных размеров и размеров | Off | Off | On | Off | On | Повторное использование буферов различных размеров и размеров |
| Оптимизация глобального доступа к данным | None | None | Use global to hold temporary results | None | Use global to hold temporary results | Оптимизация использования глобальных переменных |
| Оптимизация порядка работы блока в сгенерированном коде | Off | Off | Improved Code Execution Speed | Improved Code Execution Speed | Off | Удаление копий данных путем переупорядочивания операций блока в сгенерированном коде |
| Использовать битсеты для сохранения конфигурации состояния | Off | Off | Off | Off | On | Сокращение использования памяти для логических переменных и переменных конфигурации состояния |
| Использовать битовые наборы для хранения булевых данных | Off | Off | Off | Off | On | Сокращение использования памяти для логических переменных и переменных конфигурации состояния |
Если вы планируете обновить программное обеспечение, помните, что:
Установка параметров Уровень (Level) и Приоритет (Priority) позволяет осуществлять последние оптимизации, соответствующие указанным выше параметрам, для каждой последующей версии.
Выбор параметра Задать пользовательские оптимизации (Specify custom optimizations) позволяет выбрать отдельные параметры в разделе Подробно (Details). При загрузке модели в будущем выпуске параметры оптимизации, которые были введены в выпусках после принятия программного обеспечения при обновлении, имеют значение off. Если при обновлении программного обеспечения требуется уменьшить количество изменений в созданном коде, этот вариант может оказаться предпочтительным.
Параметр:
OptimizationPriority |
Значение:
'Balanced' | 'Speed'| 'RAM' |
По умолчанию:
'Balanced' |
| Приложение | Настройка |
|---|---|
| Отладка | Никакого воздействия |
| Отслеживаемость | Никакого воздействия |
| Эффективность | Minimize RAM (ОЗУ), Maximum execution speed (Скорость), Balance RAM and speed (Сбалансированный) |
| Меры безопасности | Никакого воздействия |
Уровень | Укажите пользовательские оптимизации