В этом примере показано, как задать порог динамического выделения памяти для массивов переменного размера. Динамическое выделение памяти оптимизирует требования к хранению для массивов переменного размера, но приводит к более медленному выполнению сгенерированного кода. Вместо отключения динамического выделения памяти для всех массивов переменного размера можно отключить динамическое выделение памяти для массивов менее определенного размера.
Укажите этот порог, если необходимо:
Отключите динамическое выделение памяти для небольших массивов. Для небольших массивов статическое выделение памяти может ускорить создание кода. Статическое выделение памяти может привести к неиспользуемому пространству памяти. Однако можно решить, что неиспользуемое пространство хранения не является важным фактором для небольших массивов.
Включите динамическое выделение памяти для больших массивов. Для больших массивов при использовании динамического выделения памяти можно значительно снизить требования к хранилищу.
Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».![]()
Щелкните Дополнительные параметры.
На вкладке Память (Memory) установите флажок Включить переменный размер (Enable variable-size).
Установить динамическое выделение памяти в For arrays with max size at or above threshold.
Установите для параметра Динамический порог выделения памяти нужное значение.
Пороговое значение динамического выделения памяти измеряется в байтах. На основе информации из настроек целевого оборудования программное обеспечение оценивает размер массива, который имеет определенное значение DynamicMemoryAllocationThreshold может вмещать. Эта оценка исключает возможные оптимизации компилятора C, такие как помещение переменных в регистры.
Создайте объект конфигурации для создания кода. Использовать coder.config с аргументами 'lib','dll', или 'exe' (в зависимости от ваших требований). Например:
cfg = coder.config('lib');Набор DynamicMemoryAllocation кому 'Threshold'.
cfg.DynamicMemoryAllocation='Threshold';Задайте свойство, DynamicMemoryAllocationThreshold, к желаемому значению.
cfg.DynamicMemoryAllocationThreshold = 40000;
Значение, сохраненное в DynamicMemoryAllocationThreshold измеряется в байтах. На основе информации из настроек целевого оборудования программное обеспечение оценивает размер массива, который имеет определенное значение DynamicMemoryAllocationThreshold может вмещать. Эта оценка исключает возможные оптимизации компилятора C, такие как помещение переменных в регистры.