性能

减少内存使用,提高生成代码的执行速度

当开发仿真软件金宝app®模型,使用模型配置参数来减少RAM和ROM消耗并加速代码执行。如果您想要更多的防御代码,以牺牲一些效率为代价,您可以禁用这些参数中的一个或多个。

您可以配置代码执行概要,以确定生成的代码是否满足目标硬件和需要内存使用或执行速度改进的代码部分的实时需求。您还可以使用代码生成顾问来检查模型的当前配置是否为调试或代码执行进行了优化。

金宝app仿真软件配置参数

主题

代码优化基础

提高代码生成速度

修改模型以提高代码生成器生成代码的速度。

优化工具和技术

应用诸如Model Advisor之类的工具和技术来优化代码生成的模型。

控制编译器优化

在Simulink UI级别控制makefile的编译器优化。金宝app

防御性编程

低于正常的数字执行速度

最小化由于低于正常的数字计算延迟而导致的执行减慢或超出的可能性。

删除包装范围外值的浮点到整型转换代码

如果应用程序中的输入值在输出类型的范围内,则删除超出范围的浮点到整数转换的代码。

删除将NaN映射为整数零的代码

如果输入值为在应用程序中不存在时,指定代码生成器删除映射的代码整数0。

禁用数学函数的非有限检查或内联

使用代码替换库(CRL)自定义条目可以有选择地禁用数学函数的非有限检查和数学函数的内联。

减少数据复制

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

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

褶皱的表情

表达式折叠代码,以最小化块输出时中间结果的计算和在临时缓冲区或变量中存储这些结果。

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

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

为总线信号生成有效代码

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

内联不变的信号

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

使用memcpy函数优化矢量赋值生成的代码

代码生成器通过替换来优化生成的向量赋值代码循环与memcpy函数调用。

为总线信号生成有效代码

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

内存使用情况

向量操作优化

代码生成器通过用局部变量替换临时局部数组来减少堆栈内存。

减少布尔和状态配置变量的内存使用

减少存储状态配置变量的内存数量布尔变量。

使用memset函数优化生成的代码

memset函数将内部存储清除为整数位模式0(即所有位都关闭),无论类型如何。

自定义堆叠空间分配

控制最大允许的堆栈大小,以便对数据是在生成的代码中局部定义还是全局定义提供一些控制。

配置环路展开阈值

从默认值5开始,代码生成器开始使用循环而不是单独的语句来为信号或参数数组的元素赋值。

为嵌入式应用程序指定单精度数据类型

生成浮点数数据类型仅为单精度的代码,例如,针对单精度处理器。

通过为块参数指定数据类型生成高效代码

要生成更有效的代码,请将参数数据类型与信号数据类型匹配,或将参数存储在较小的数据类型中。

使用逻辑信号的布尔数据优化生成的代码

代码生成器通过存储逻辑信号来优化生成的代码布尔数据类型。

优化时间计数器的内存使用

优化代码生成器为运行时间或绝对时间分配的内存。

执行速度

通过组合多个构造来优化生成的代码

代码生成器使用数据依赖分析进行组合构造以减少静态代码大小和运行时分支。

配置环路展开阈值

从默认值5开始,代码生成器开始使用循环而不是单独的语句来为信号或参数数组的元素赋值。

在生成的代码中消除死代码路径

代码生成器从生成的代码中消除无用的(即未使用的)代码路径。

浮点乘法处理净斜率修正

对于支持高效乘法的处理器,通过使用浮点乘金宝app法来处理净斜率校正来提高代码效率。

删除对计算结果没有影响的块的代码

代码生成器通过删除不影响计算结果的代码来提高执行速度并减少ROM消耗。

块参数的内联数值

通过内联块参数的文字数值值来减少全局RAM的使用。

使用Simulink®,statflow®和MATLAB®使用定点数据优化生成代码金宝app

在Simulink中生成定点代码,statflow金宝app®, MATLAB®

在算法代码中生成目标优化

使用特定目标优化定制生成的算法代码。

使用条件输入分支执行

开关多端口切换块,Simuli金宝appnk只执行计算控件输入和控件输入选择的数据输入的块。

为复杂信号优化生成的代码

代码生成器对生成代码中表示信号的结构执行各种优化。

在MATLAB函数块生成的代码中加速线性代数

在MATLAB函数块中生成特定线性代数函数的LAPACK调用。指定LAPACK库要使用。

在MATLAB函数块生成的代码中加速矩阵运算

为某些低级矩阵操作生成BLAS调用。指定要使用的BLAS库。

在MATLAB函数块生成的代码中加速快速傅里叶变换

生成FFTW库调用的快速傅里叶变换MATLAB函数块。指定FFTW库。

同步多线程FFTW规划从MATLAB函数块生成的代码

实现FFT库回调类方法,并提供支持C代码,以防止并发访问FFTW计划。金宝app

在MATLAB函数块中控制可变大小数组的内存分配

禁用动态内存分配或指定动态内存分配阈值MATLAB函数块。

代码执行分析

生成代码的执行分析

使用代码执行分析来观察代码执行速度。