文档

减少数据复制

调整模型参数以提高代码执行速度和减少内存使用

通过消除生成代码中的数据副本,减少RAM和ROM的消耗并提高代码执行速度。代码生成器消除了一些数据副本。您可以通过调整某些模型参数设置,为MATLAB函数块的输入和输出参数指定相同的名称,以及使用Simulink信号指定重用来消除其他数据副本。金宝app

主题

默认减少数据拷贝

通过将可重用的子系统输出作为单独的参数传递来优化生成的代码

代码生成器通过将可重用的子系统输出作为单独的参数而不是作为指向存储在全局内存中的结构的指针传递,消除了从局部变量返回到全局块I/O结构的数据拷贝。

在块输出中最小化中间结果的计算和存储

代码生成器将块计算折叠到一个表达式中,而不是为模型中的每个块生成单独的代码语句和存储声明。

在生成的代码中重用全局块输出

代码生成器尝试重用全局变量。

在生成的代码中启用和重用本地块输出

在可能的情况下,代码生成器将块输出声明为局部变量,以便它可以潜在地重用这些变量。

将数据拷贝转换为指针赋值

代码生成器通过尝试替换来优化为向量信号分配生成的代码循环控制元素赋值和memcpy带有指针赋值的函数调用。

虚拟化输出端口优化

代码生成器通过存储进入根输出端口的信号作为全局变量来消除与根输出端口相关的代码和数据存储。

内联不变的信号

在生成的代码中使用不变信号的数值而不是它们的符号名。

数据存储读块和数据存储写块的数据拷贝缩减

代码生成器试图消除数据存储读和数据存储写块的数据副本。

减少总线分配块的数据副本

对于包含总线分配块,如果可能的话,代码生成器对块的输入和输出使用相同的变量。

按规格减少数据拷贝

通过对生成代码中的块操作重新排序来删除数据副本

对生成的代码中的块操作重新排序,以消除临时变量和相关的数据副本。

使用信号标签引导缓冲区重用,优化生成的代码

如果您的模型具有删除数据副本的最佳参数设置,那么您可能能够通过使用信号标签删除额外的数据副本。

优化全局变量的使用

选择全局变量引用优化,以满足内存使用和执行速度要求。

在路径中为MATLAB函数块指定缓冲区重用

跨MATLAB函数块重用缓冲区。

使用Simulink指定缓冲区重用。金宝app信号对象

使用Simu金宝applink信号对象为路径中的多个信号指定缓冲区重用,该路径可能包括根输入和输出端口、延迟块和单元延迟块。

为总线信号生成有效代码

模型总线以最大化生成代码的效率。