减少数据拷贝
调整模型参数以提高代码执行速度和减少内存使用
减少RAM和ROM消耗,并通过消除生成代码中的数据副本来提高代码执行速度。代码生成器消除了一些数据副本。您可以通过调整某些模型参数设置,为MATLAB函数块的输入和输出参数指定相同的名称,以及使用Simulink信号指定重用来消除其他数据副本。金宝app
主题
默认减少数据拷贝
代码生成器通过将可重用的子系统输出作为单独的参数传递,而不是作为存储在全局内存中的结构的指针,消除了从局部变量返回到全局块I/O结构的数据拷贝。
代码生成器将块计算折叠成单个表达式,而不是为模型中的每个块生成单独的代码语句和存储声明。
代码生成器尝试重用全局变量。
在可能的情况下,代码生成器将块输出声明为局部变量,这样它就可以重用这些变量。
代码生成器通过尝试替换来优化矢量信号分配的生成代码为
循环控制的元素赋值和memcpy
使用指针赋值的函数调用。
代码生成器通过将进入根输出端口的信号存储为全局变量来消除与根输出端口相关的代码和数据存储。
在生成的代码中使用不变信号的数值,而不是它们的符号名称。
代码生成器试图消除数据存储读和写块的数据副本。
对于包含总线分配块,如果可能的话,代码生成器对块的输入和输出使用相同的变量。
按规格减少数据拷贝
重新对生成代码中的块操作排序,以消除临时变量和相关数据副本。
如果您的模型具有删除数据副本的最佳参数设置,则可以使用信号标签删除其他数据副本。
选择全局变量引用优化来满足您的内存使用和执行速度要求。
跨MATLAB函数块重用缓冲区。
使用Simu金宝applink信号对象为路径中的多个信号指定缓冲区重用,该路径可能包括根输入和输出端口、延迟块和单元延迟块。
建模总线以最大化所生成代码的效率。