Определите, как изменить код MATLAB ® таким образом, чтобы созданный код использовал меньше памяти. При вызове функций управляйте передачей данных с помощью одних и тех же переменных для ввода и вывода. Передача по ссылке уменьшает объем памяти, используемой в сгенерированном коде. Управление распределением памяти путем установки пределов использования пространства стека и указания времени использования динамического выделения памяти. Минимизируйте размер кода, отключив функции, генерирующие дополнительный код, например поддержку переполнения целых чисел.
Дополнительные сведения об оптимизации кода для определенных условий см. в разделе Стратегии оптимизации.
coder.inline | Управление вложением определенной функции в сгенерированный код |
coder.const | Сворачивание выражений в константы в сгенерированном коде |
coder.ceval | Вызов внешней функции C/C + + |
coder.Constant | Спецификация постоянного значения для генерации кода |
coder.ExternalDependency | Интерфейс с внешним кодом |
Запретить создание кода для неиспользуемых путей выполнения
Сделайте переменную control-flow постоянной, чтобы предотвратить генерацию кода неиспользуемых ветвей.
Избегайте копирования данных входных данных функций в сгенерированном коде
Создать код, передающий входные аргументы по ссылке.
Встраивание устраняет накладные расходы на вызовы функций, но может создавать больший код C/C + + и снижать читаемость кода.
Использование пространства стека элементов управления
Укажите максимальное пространство стека, которое может использоваться созданным кодом.
Вызовы функции сворачивания в константы
Сократите время выполнения, заменив выражение константой в созданном коде.
Установить порог динамического выделения памяти
Отключите динамическое выделение памяти для массивов, размер которых меньше определенного.
Повторное использование больших массивов и структур
Укажите переменное повторное использование, чтобы уменьшить использование памяти.
Отключить поддержку переполнения целых чисел или нефинитов
Повышение производительности за счет подавления генерации поддерживающего кода для обработки переполнения целых чисел или нефинитов.
Интеграция внешнего/пользовательского кода
Повысьте производительность за счет интеграции собственного оптимизированного кода.
Ускорение линейной алгебры в сгенерированном автономном коде с помощью вызовов LAPACK
Создание вызовов LAPACK для определенных функций линейной алгебры. Укажите библиотеку LAPACK для использования.
Ускорение операций матрицы в сгенерированном автономном коде с помощью вызовов BLAS
Создание вызовов BLAS для определенных операций матрицы низкого уровня. Укажите библиотеку BLAS для использования.
Создание вызовов библиотеки FFTW для быстрых преобразований Фурье. Укажите библиотеку FFTW.
Оптимизируйте скорость выполнения или использование памяти сгенерированного кода.
Исключение неиспользуемых путей из сгенерированного кода
Сделать переменную control-flow постоянной, чтобы предотвратить генерацию кода для неиспользуемых ветвей.
Распределение стека и производительность
Выделение больших переменных в куче при ограниченном пространстве стека.
Оптимизация кодера MATLAB в сгенерированном коде
Для повышения производительности генерируемого кода генератор кода использует оптимизации.
Отключить поддержку переполнения целых чисел или нефинитов
Повышение производительности за счет подавления генерации поддерживающего кода для обработки переполнения целых чисел или нефинитов.
Создание кода для разреженных матриц
Используйте разреженные матрицы в коде MATLAB, предназначенном для генерации кода.