exponenta event banner

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

Сокращение объема ОЗУ, ПЗУ и стека, используемого генерируемым кодом C/C + +

Определите, как изменить код 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 для быстрых преобразований Фурье. Укажите библиотеку FFTW.

Понятия

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

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

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

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

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

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

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

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

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

Повышение производительности за счет подавления генерации поддерживающего кода для обработки переполнения целых чисел или нефинитов.

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

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