Использование памяти

Уменьшите пространство оперативной памяти, ПЗУ и стека, используемое сгенерированным кодом C/C + +

Определите, как изменить MATLAB® код так, что сгенерированный код использует меньше памяти. При вызове функций управляйте передачей данных с помощью тех же переменных для входа и вывода. Передача по ссылке уменьшает память, используемую в сгенерированном коде. Управляйте выделением памяти путем установки пределов для использования пространства стека и путем определения, когда используется динамическое выделение памяти. Минимизируйте размер кода путем отключения функций, которые генерируют дополнительный код, таких как поддержка целочисленного переполнения.

Для получения дополнительной информации о том, как оптимизировать код для определенных условий, смотрите Стратегии Оптимизации.

Функции

coder.inlineУправляйте встраиванием определенной функции в сгенерированный код
coder.constСложите выражения в константы в сгенерированном коде
coder.cevalВызов внешней функции C/C + +

Классы

coder.ConstantСпецификация постоянного значения для генерации кода
coder.ExternalDependencyИнтерфейс к внешнему коду

Примеры и как

Условные операторы

Предотвратите генерацию кода для неиспользованных путей выполнения

Сделайте переменную потока управления постоянной, чтобы предотвратить генерацию кода неиспользуемых ветвей.

Вызовы функций

Избегайте копий данных входных параметров функции в сгенерированном коде

Сгенерируйте код, который передает входные параметры по ссылке.

Управление инкрустацией для тонкой настройки эффективности и читаемости сгенерированного кода

Inlining устраняет накладные расходы на вызовы функций, но может создать больший код C/C + + и снизить читаемость кода.

Управление использованием пространства стека

Задайте максимальное пространство стека, которое может использовать сгенерированный код.

Сворачивание вызовов функций в константы

Сократите время выполнения путем замены выражения константой в сгенерированном коде.

Массивы

Установите динамический порог выделения памяти

Отключите динамическое выделение памяти для массивов размером меньше определенного.

Повторное использование больших массивов и структур

Задайте переменную повторно использовать, чтобы уменьшить использование памяти.

Численные варианты ребер

Отключите поддержку целочисленного переполнения или нефинитов

Улучшите эффективность путем подавления генерации поддерживающего кода для обработки целочисленного переполнения или нефинитов.

Настраиваемое Интегрирование кода

Интеграция внешнего/пользовательского кода

Улучшите эффективность, интегрировав свой собственный оптимизированный код.

Ускорение линейной алгебры в сгенерированном автономном коде при помощи вызовов LAPACK

Сгенерируйте вызовы LAPACK для определенных линейных алгебр-функций. Укажите библиотеку LAPACK для использования.

Ускорение матричных операций в сгенерированном автономном коде при помощи вызовов BLAS

Сгенерируйте вызовы BLAS для определенных низкоуровневых матричных операций. Укажите библиотеку BLAS для использования.

Ускорение быстрых преобразований Фурье в сгенерированном автономном коде при помощи вызовов библиотеки FFTW

Сгенерируйте вызовы библиотеки FFTW для быстрых преобразований Фурье. Укажите библиотеку FFTW.

Концепции

Стратегии оптимизации

Оптимизируйте скорость выполнения или использование памяти сгенерированного кода.

Исключение неиспользованных путей из сгенерированного кода

Сделайте переменную потока управления постоянной, чтобы предотвратить генерацию кода для неиспользованных ветвей.

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

Выделите большие переменные на куче, когда у вас ограниченное пространство стека.

MATLAB CODER в сгенерированном коде

Чтобы улучшить эффективность сгенерированного кода, генератор кода использует оптимизации.

Отключите поддержку целочисленного переполнения или нефинитов

Улучшите эффективность путем подавления генерации поддерживающего кода для обработки целочисленного переполнения или нефинитов.

Генерация кода для разреженных матриц

Используйте разреженные матрицы в коде MATLAB, предназначенном для генерации кода.