Локальная оптимизация является методом оптимизации памяти, который использует один буфер, то есть ту же память для хранения входных и выходных данных. Каждый раз, когда в алгоритме существует промежуточное выходное значение, один и тот же буфер перезаписывается, чтобы хранить это значение. Этот метод оптимизирует использование памяти и генерирует код, который использует очень меньше памяти.
Эти следующие функции в DSP System Toolbox™ поддерживают оптимизацию оперативной памяти.
Чтобы проиллюстрировать метод оптимизации по месту, рассмотрим эту модель, которая содержит последовательность из трех, связанных Discrete FIR Filter блоков. Каждый блок фильтрует вход, который он получает, и генерирует выход того же размера, что и вход.

Когда вы генерируете код из такой модели, вы можете увидеть локальную оптимизацию в сгенерированном коде.
В этом разделе показан оптимизированный по месту сгенерированный код. Три for циклы с индексом итерации n соответствовать соответствующему блоку Discrete FIR Filter в Simulink® модель. В каждом из этих трех for циклы, выходы фильтра вычисляются и сохраняются в буфере m3fir_Y.Output[]. Буфер m3fir_Y.Output[] перезаписывает свое значение каждый раз, когда блок Discrete FIR Filter имеет обновленный выход.


Сгенерированный код повторно использует выходной буфер и, следовательно, эффективен и использует меньше памяти.
Когда вы генерируете код из MATLAB® алгоритм, содержащий последовательность dsp.FIRFilter объекты, вы видите подобную оптимизацию в сгенерированном коде.
codegen (MATLAB Coder)