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

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

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

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

Функции

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

Классы

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

Темы

Оптимизация сгенерированного кода

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

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

Сложите выделение и эффективность

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

Оптимизация MATLAB Coder в сгенерированном коде

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Массивы

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

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

Большие массивы повторного использования и структуры

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

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

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

Числовые случаи ребра

Отключите поддержку Integer Overflow или Nonfinites

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

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

Объединяйтесь Внешний / Пользовательский код

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

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

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

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

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

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

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

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

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