Повторно используемый код

Повторно используемый код является допускающей повторное использование стандартной программой программирования, которую несколько программ могут использовать одновременно. Операционные системы и другое системное программное обеспечение, которые используют многопоточность, чтобы обработать параллельные события, используют повторно используемый код. В параллельной среде несколько потоков или процессов могут попытаться считать и записать статические данные одновременно. Поэтому совместное использование кода, который использует персистентные или статические данные, является трудным. Повторно используемый код не содержит статические данные. Программы вызова поддерживают свои переменные состояния и передают их в функцию. Поэтому любое количество потоков или процессов может совместно использовать одну копию повторно используемой стандартной программы.

Сгенерируйте повторно используемый код когда это необходимо к:

  • Разверните свой код в многопоточных средах.

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

  • Скомпилируйте код, который использует функциональные переменные, которые являются слишком большими, чтобы соответствовать на стеке.

Если вы не задаете повторно используемый код, MATLAB® Coder™ генерирует код, который использует статически выделенную память для:

  • Функциональные переменные, которые являются слишком большими, чтобы соответствовать на стеке

  • Глобальные переменные

  • Персистентные переменные

Если сгенерированный код использует выделение статического ЗУ для этих переменных, вы не можете развернуть сгенерированный код в средах, которые требуют повторно используемого кода. Если вы не можете настроить размер выделения статического ЗУ, сгенерированный код может привести к переполнению размера статического ЗУ.

Когда вы генерируете повторно используемый код, MATLAB CODER создает структуры входных данных для:

  • Функциональные переменные, которые являются слишком большими, чтобы соответствовать на стеке

  • Персистентные переменные

  • Глобальные переменные

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

Похожие темы

Была ли эта тема полезной?