此示例演示如何为可变大小数组指定动态内存分配阈值。动态内存分配优化了可变大小数组的存储需求,但会导致生成代码的执行速度变慢。您可以禁用小于特定大小的数组的动态内存分配,而不是禁用所有可变大小数组的动态内存分配。
当您想:
为较小的数组禁用动态内存分配。对于较小的数组,静态内存分配可以加速生成代码。静态内存分配可能导致未使用的存储空间。但是,您可以确定,对于较小的数组,未使用的存储空间不是一个重要的考虑因素。
为较大的阵列启用动态内存分配。对于较大的数组,当使用动态内存分配时,可以显著减少存储需求。
打开生成对话框上的生成代码页面,点击生成箭头。
点击更多的设置。
在内存选项卡中,选择使适应复选框。
集动态内存分配来用于最大大小在阈值或以上的数组
。
集动态内存分配阈值到你想要的值。
的动态内存分配阈值值以字节为单位度量。根据来自目标硬件设置的信息,软件估计阵列的大小,该大小为某个值DynamicMemoryAllocationThreshold
可以容纳。这个估计排除了可能的C编译器优化,比如在寄存器中放置变量。
创建用于代码生成的配置对象。使用coder.config
使用参数“自由”
,“dll”
,或exe”
(取决于你的要求)。例如:
cfg = coder.config(“自由”);
集DynamicMemoryAllocation
来“阈值”
。
cfg.DynamicMemoryAllocation =“阈值”;
设置属性,DynamicMemoryAllocationThreshold
,达到你想要的价值。
cfg。DynamicMemoryAllocationThreshold = 40000;
存储在DynamicMemoryAllocationThreshold
以字节为单位。根据来自目标硬件设置的信息,软件估计阵列的大小,该大小为某个值DynamicMemoryAllocationThreshold
可以容纳。这个估计排除了可能的C编译器优化,比如在寄存器中放置变量。