选择要应用于生成代码的优化级别。
默认值:最大
最低(调试)
配置用于调试的代码生成设置。
平衡与可读性
应用代码生成优化,以平衡RAM效率和执行速度与生成代码的可读性。例如,选择此值将禁用跨原子子系统边界的优化。
最大
根据您的代码效率目标配置代码生成设置。选择此设置将启用优先级参数。设置优先级参数设置为以下值之一:
平衡RAM和速度(默认设置)
最大的执行速度
最小化内存
此参数仅出现在基于ert的目标中。
在生成代码时,此参数需要一个嵌入式编码器®许可证。
为每一个优先级和水平参数值中,有相应的参数值细节部分。以下是这些不同设置之间的一些重要区别:
如果你设置水平参数最低(调试)
的参数细节部分设置为off。代码生成器不会实现删除变量或代码的优化,从而更容易调试生成的代码。
的参数设置平衡与可读性
和平衡RAM和速度
除了这三个参数外都是相同的:
重用不同大小和尺寸的缓冲区
优化全局数据访问
在生成的代码中优化块操作顺序
上面的优化可能会损害可读性,因为它们跨越了原子子系统的边界在生成的代码中优化块操作顺序可能会更改生成代码中的块执行顺序,使其与模拟中不同。
如果您的内存有限,请选择最小化内存
设置。这个设置启用了这些优化,以降低内存的执行速度为代价:
将布尔数据打包成位域
重用不同大小和尺寸的缓冲区
使用bitset存储状态配置
使用bitset存储布尔数据
此设置还更改在生成的代码中优化块操作顺序从改进的代码执行速度
来从
.
为每一个优先级和水平参数值时,该表列出了对应的值细节部分。
参数 | 设置 | 例子 | ||||
---|---|---|---|---|---|---|
水平 | 最低(调试) |
平衡与可读性 |
最大 |
|||
优先级 | 不适用(N / A) | N/A | 平衡RAM和速度 |
最大限度地提高执行速度 |
最小化内存 |
|
细节 | ||||||
使用memcpy进行向量赋值 | 从 |
在 |
在 |
在 |
在 |
使用memcpy函数优化生成的向量赋值代码 |
Memcpy阈值(字节) | 从 |
64 |
64 |
64 |
64 |
使用memcpy函数优化生成的向量赋值代码 |
启用本地块输出 | 从 |
在 |
在 |
在 |
在 |
在生成代码中启用和重用本地块输出 |
重用本地块输出 | 从 |
在 |
在 |
在 |
在 |
在生成代码中启用和重用本地块输出 |
消除多余的局部变量(表达式折叠) | 从 |
在 |
在 |
在 |
在 |
最小化块输出中间结果的计算和存储 |
重用全局块输出 | 从 |
在 |
在 |
在 |
在 |
在生成的代码中重用全局块输出 |
对分配块和总线分配块执行就地更新 | 从 |
在 |
在 |
在 |
在 |
减少总线分配块的数据复制 |
重用数据存储读块和数据存储写块的缓冲区 | 从 |
在 |
在 |
在 |
在 |
数据存储读块和写块的数据拷贝缩减 |
简化数组索引 | 从 |
从 |
从 |
在 |
从 |
简化数组索引中的乘法操作 |
将布尔数据打包成位域 | 从 |
从 |
从 |
从 |
在 |
优化生成的代码包装布尔数据到Bitfields |
重用不同大小和尺寸的缓冲区 | 从 |
从 |
在 |
从 |
在 |
重用不同大小和尺寸的缓冲区 |
优化全局数据访问 | 没有一个 |
没有一个 |
使用全局保存临时结果 |
没有一个 |
使用全局保存临时结果 |
优化全局变量的使用 |
在生成的代码中优化块操作顺序 | 从 |
从 |
改进的代码执行速度 |
改进的代码执行速度 |
从 |
通过在生成的代码中重新排序块操作来删除数据副本 |
使用bitset存储状态配置 | 从 |
从 |
从 |
从 |
在 |
减少布尔和状态配置变量的内存使用 |
使用bitset存储布尔数据 | 从 |
从 |
从 |
从 |
在 |
减少布尔和状态配置变量的内存使用 |
如果你计划升级你的软件,请注意:
设置水平和优先级参数为每个后续版本启用与上述参数设置对应的最新优化。
选择指定自定义优化参数使您能够在细节部分。当您在将来的版本中加载模型时,当您升级时,在您采用软件后的版本中引入的优化参数将被设置为从
.如果您希望在升级软件时减少生成代码中的更改数量,那么这个选项可能是一个不错的选择。
参数:OptimizationLevel |
值:“level0” |“使” |“二级” |
默认值:“二级” |
命令行参数值 | 用户界面参数设置 |
---|---|
level0 | 最低(调试) |
使有效 | 平衡与可读性 |
二级 | 最大 |
应用程序 | 设置 |
---|---|
调试 | 最低(调试) |
可追溯性 | 最低(调试) |
效率 | 根据你的目标,选择平衡与可读性 或最大 .如果你选择最大 ,设置优先级参数。 |
安全预防措施 | 没有影响 |