性能

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

当开发的Simulink金宝app®从车型您打算生成代码,使用模型配置参数,以减少RAM和ROM消费,加快代码执行。如果你想要更多的防御性代码,在某些效率为代价,可以禁用这些参数中的一个或多个。

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

金宝appSimulink的配置参数

话题

代码优化基础知识

提高代码生成速度

改变一个模型,以增加在该代码产生器产生的代码的速度。

优化工具和技术

应用工具,如型号顾问和技术来优化代码生成的模型。

控制编译器优化

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

防御性编程

次正规数执行速度

最大限度地减少由于低于正常的数字计算延迟而导致的执行速度下降或溢出的可能性。

将包装范围外值的代码从浮点转换为整数

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

删除代码映射到的NaN整数零

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

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

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

数据复制还原

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

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

折表达式

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

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

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

为总线信号生成有效的代码

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

内嵌不变的信号

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

使用memcpy函数优化为向量分配生成的代码

码发生器通过替换优化了矢量分配所生成的代码用循环memcpy函数调用。

为总线信号生成有效的代码

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

内存使用情况

矢量运算优化

代码生成器通过与局部变量代替临时本地阵列降低堆栈存储器。

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

减少内存量,其存储状态配置变量和布尔变量。

优化生成的代码用memset功能

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

自定义堆栈空间分配

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

配置循环展开门槛

在5默认值开始,代码生成器开始使用循环,而不是单独的语句将值分配给一个信号或参数数组的元素。

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

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

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

为了产生更有效的代码,匹配参数的数据类型,在更小的数据类型的信号的数据类型或存储参数。

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

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

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

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

执行速度

通过优化用于构建组合多个生成的代码

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

配置循环展开门槛

在5默认值开始,代码生成器开始使用循环,而不是单独的语句将值分配给一个信号或参数数组的元素。

消除了生成的代码死代码路径

代码生成消除死(即,未使用的)从所生成的代码的代码路径。

处理净斜率校正的浮点乘法

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

对计算结果进行块删除代码,没有任何效果

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

块参数的在线数字值

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

使用Simulink®、Stateflow®和MATLAB®的定点数据优化生成的代码金宝app

生成在Simulink,Stateflow的定点代码金宝app®和MATLAB®

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

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

使用条件输入分支执行

开关多端口交换机块,Simuli金宝appnk只执行那些计算控制输入和控制输入选择的数据输入的块。

优化生成的代码复杂信号

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

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

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

加快矩阵运算中的代码从MATLAB功能块生成

产生某些低级别的矩阵运算BLAS电话。指定BLAS库使用。

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

产生在快速傅立叶变换FFTW库调用MATLAB功能块。指定FFTW库。

在MATLAB函数块生成的代码中同步多线程FFTW计划

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

在MATLAB功能块控制存储器分配为可变大小的数组

禁用动态存储器分配或指定用于动态存储器分配的阈值MATLAB功能块。

代码执行分析

执行剖析了生成的代码

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