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

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


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