堆栈分配和性能
默认情况下,局部变量在堆栈上分配。大变量不适合在堆栈上的静态分配的内存中。
堆栈分配通常比静态的更有效地使用内存分配。然而,堆栈空间有时是有限的,通常在嵌入式处理器。MATLAB®编码器™允许你手动设置堆栈空间限制使用生成的代码让你适合你的目标硬件。你可以选择这个限制基于目标硬件配置。有关更多信息,请参见控制堆栈空间的使用。
对于有限的堆栈空间,您可以选择在堆上分配大的变量,而不是使用静态分配。堆分配是慢但比静态的更节约内存分配。在堆上分配大变量,做以下之一:
从命令行分配的堆空间
创建一个配置对象。设置属性,
MultiInstanceCode
,真正的
。cfg = coder.config (exe”);cfg。MultiInstanceCode = true;
使用此配置对象生成代码。
分配堆空间使用MATLAB编码器应用程序
使用MATLAB编码器应用程序,在“项目设置”对话框中内存选项卡中,选择生成可重入的代码复选框。
生成的代码。