Генератор кода увеличивает скорость выполнения сгенерированного кода, если это возможно, заменяя глобальные переменные на локальные переменные, удаляя копии данных, с помощью memset
и функций memcpy
, и уменьшая объем памяти для того, чтобы хранить данные. Можно увеличить скорость выполнения сгенерированного кода путем реализации компилятора и процессора определенная оптимизация, определения буферного повторного использования и удаления кода, в котором вы не можете нуждаться.
Управляйте данными и функциональным размещением в памяти вставкой прагм
Увеличьте эффективность кода на своем оборудовании путем вставки прагм в сгенерированный код. Прагмы задают местоположения в памяти, чтобы хранить данные и функции.
Замените булевскую переменную на Определенный Целочисленный тип данных
Улучшите скорость выполнения сгенерированного кода, заменив boolean
встроенный тип данных на определенный целочисленный тип данных.
Субнормальная скорость выполнения номера
Минимизируйте возможность выполнения, замедляется или переполняется из-за субнормальной задержки вычисления номера.
Умножение с плавающей точкой, чтобы обработать сетевое наклонное исправление
Для процессоров, которые поддерживают эффективное умножение, повысьте эффективность кода при помощи умножения с плавающей точкой, чтобы обработать сетевое наклонное исправление.
Сгенерируйте фиксированную точку в Simulink®, Stateflow® и MATLAB®.
Сгенерируйте целевую оптимизацию в коде алгоритма
Настройте сгенерированный код алгоритма с целевой оптимизацией.
Установите параметры аппаратной реализации
Задайте характеристики устройства целевого компьютера, которые могут быть очень важными в разработке встраиваемых систем (такой как размеры слова для char
, short
, int
и типов данных long
, или желал округлить поведения в целочисленных операциях).
Управляйте оптимизацией компилятора
Управляйте оптимизацией компилятора для своего make-файла на уровне пользовательского интерфейса Simulink.
Оптимизируйте использование глобальной переменной
Выберите оптимизацию ссылки глобальной переменной, чтобы удовлетворить ваши требования к скорости использования памяти и выполнения.
Повысьте эффективность выполнения путем переупорядочения блочных операций в сгенерированном коде
Генератор кода может изменить порядок выполнения блока, чтобы повысить эффективность выполнения.
Оптимизируйте сгенерированный код путем объединения нескольких для построений
Генератор кода использует анализ зависимости по данным, чтобы объединить построения for
, чтобы уменьшать статический размер кода и ветвление во время выполнения.
Оптимизируйте сгенерированный код для комплексных сигналов
Генератор кода выполняет различную оптимизацию на структурах, которые представляют сигналы в сгенерированном коде.
Сконфигурируйте порог развертывания цикла
Начиная в значении по умолчанию 5, генератор кода начинает использовать цикл for
вместо отдельных операторов, чтобы присвоить значения элементам или массива параметров сигнала.
Упростите умножают операции в индексации массива
Генератор кода уменьшает число раз a, умножаются, операция выполняется в индексе массива, заменяя умножить операцию на временную переменную.
Оптимизируйте Сгенерированный код Используя Функцию memset
Функция memset
очищает внутреннюю память, независимо от типа, к целочисленной комбинации двоичных разрядов 0 (то есть, все биты выключены).
Используйте Функцию memcpy, чтобы Оптимизировать Сгенерированный код для Векторных Присвоений
Генератор кода оптимизирует сгенерированный код для векторных присвоений, заменяя циклы for
на вызовы функции memcpy
.
Используйте условное входное выполнение ответвления
Для Переключателя и Многопортовых блоков switch, Simulink выполняет только блоки, которые вычисляют вход управления и ввод данных, который выбирает вход управления.
Оптимизируйте сгенерированный код для операций данных фиксированной точки
Генератор кода оптимизирует операции фиксированной точки, заменяя дорогие операции деления на высокоэффективные операции продукта.
Выделение управляющей памяти для массивов Переменного Размера в блоке MATLAB function
Отключите динамическое выделение памяти или задайте порог динамического выделения памяти для блоков MATLAB function.
Ускорьте линейную алгебру в коде, сгенерированном от блока MATLAB function
Сгенерируйте призывы LAPACK к определенным функциям линейной алгебры в блоке MATLAB function. Задайте библиотеку LAPACK, чтобы использовать.
Ускорьте Матричные операции в коде, сгенерированном от блока MATLAB function
Сгенерируйте призывы BLAS к определенным низкоуровневым операциям над матрицей. Задайте библиотеку BLAS, чтобы использовать.
Ускорьте быстрые преобразования Фурье в коде, сгенерированном от блока MATLAB function
Сгенерируйте библиотеку FFTW, призывает к быстрым преобразованиям Фурье в блоке MATLAB function. Задайте библиотеку FFTW.
Синхронизируйте многопоточный FFTW, планирующий в коде, сгенерированном от блока MATLAB function
Реализуйте методы класса коллбэка библиотеки FFT и обеспечьте код С поддержки, чтобы предотвратить параллельный доступ к планированию FFTW.
Ускорьте Реализацию цикла for в Коде, Сгенерированном при помощи parfor
Реализуйте параллельные циклы for в сгенерированном коде для блока MATLAB Function и MATLAB System с помощью parfor.