exponenta event banner

Распределение стека и производительность

По умолчанию локальные переменные назначаются в стеке. Большие переменные, которые не помещаются в стек, статически выделяются в памяти.

Распределение стека обычно использует память более эффективно, чем статическое распределение. Однако иногда пространство стека ограничено, как правило, во встроенных процессорах. MATLAB ® Coder™ позволяет вручную установить ограничение на использование пространства стека, чтобы созданный код подходил для целевого оборудования. Вы можете выбрать это ограничение в зависимости от конфигурации целевого оборудования. Дополнительные сведения см. в разделе Использование пространства в стеке управления.

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

Выделение пространства кучи из командной строки

  1. Создайте объект конфигурации. Задайте свойство, MultiInstanceCodeКому true.

    cfg = coder.config('exe');
    cfg.MultiInstanceCode = true;

  2. Создание кода с помощью этого объекта конфигурации.

Выделение пространства кучи с помощью приложения кодера MATLAB

  1. С помощью приложения MATLAB Coder в диалоговом окне параметров проекта на вкладке «Память» установите флажок Генерировать код повторного входа.

  • Создать код.

См. также

|