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

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

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

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

Функции

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

Классы

coder.ConstantПредставляйте набор, содержащий одно значение MATLAB
coder.ExternalDependencyИнтерфейс к внешнему коду

Примеры и руководства

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

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

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

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

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

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

Встроенный код

Встраивание устраняет издержки вызова функции, заменяя вызов функции на тело функции.

Управляйте встраиванием

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

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

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

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

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

Массивы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Концепции

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

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

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

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

Сложите выделение и производительность

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

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

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

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

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

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

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