设置动态内存分配阈值

此示例演示如何为可变大小数组指定动态内存分配阈值。动态内存分配优化了可变大小数组的存储需求,但会导致生成代码的执行速度变慢。您可以禁用小于特定大小的数组的动态内存分配,而不是禁用所有可变大小数组的动态内存分配。

当您想:

  • 为较小的数组禁用动态内存分配。对于较小的数组,静态内存分配可以加速生成代码。静态内存分配可能导致未使用的存储空间。但是,您可以确定,对于较小的数组,未使用的存储空间不是一个重要的考虑因素。

  • 为较大的阵列启用动态内存分配。对于较大的数组,当使用动态内存分配时,可以显著减少存储需求。

属性设置动态内存分配阈值MATLAB编码器应用程序

  1. 打开生成对话框上的生成代码页面,点击生成箭头

  2. 点击更多的设置

  3. 内存选项卡中,选择使适应复选框。

  4. 动态内存分配用于最大大小在阈值或以上的数组

  5. 动态内存分配阈值到你想要的值。

    动态内存分配阈值值以字节为单位度量。根据来自目标硬件设置的信息,软件估计阵列的大小,该大小为某个值DynamicMemoryAllocationThreshold可以容纳。这个估计排除了可能的C编译器优化,比如在寄存器中放置变量。

在命令行设置动态内存分配阈值

  1. 创建用于代码生成的配置对象。使用coder.config使用参数“自由”,“dll”,或exe”(取决于你的要求)。例如:

    cfg = coder.config(“自由”);
  2. DynamicMemoryAllocation“阈值”

    cfg.DynamicMemoryAllocation =“阈值”;
  3. 设置属性,DynamicMemoryAllocationThreshold,达到你想要的价值。

    cfg。DynamicMemoryAllocationThreshold = 40000;

    存储在DynamicMemoryAllocationThreshold以字节为单位。根据来自目标硬件设置的信息,软件估计阵列的大小,该大小为某个值DynamicMemoryAllocationThreshold可以容纳。这个估计排除了可能的C编译器优化,比如在寄存器中放置变量。

相关的例子

更多关于