优先级
基于优先级的优化控制应用
型号配置窗格:代码生成/优化
描述
的优先级参数优化生成的代码,以提高执行效率,减少RAM消耗,或在执行效率和RAM消耗之间取得平衡。
依赖关系
该参数通过设置水平参数最大
.
设置
平衡内存和速度
(默认)|最大化执行速度
|最小化内存
-
平衡内存和速度
-
配置代码生成设置以平衡RAM和执行速度。
-
最大化执行速度
-
应用代码生成设置以最大化执行速度。
-
最小化内存
-
配置代码生成设置以最小化RAM消耗。
提示
为每一个优先级而且水平参数值时,参数中有对应的值细节部分。以下是这些不同设置之间的一些重要区别:
如果你设置水平参数
最低(调试)
的参数细节部分设置为关闭。代码生成器不会实现删除变量或代码的优化,从而更容易调试生成的代码。的参数设置
与可读性相平衡
而且平衡内存和速度
除了这三个参数外是相同的:重用不同大小和维度的缓冲区
优化全局数据访问
优化生成代码中的块操作顺序
上述优化可能会潜在地损害可读性,因为它们跨越了原子子系统边界和优化生成代码中的块操作顺序可能会改变生成代码中的块执行顺序,使其与模拟中的不同。
如果内存有限,请选择
最小化内存
设置。此设置启用了这些以降低执行速度为代价减少RAM的优化:将布尔数据打包到位字段中
重用不同大小和维度的缓冲区
使用bitset存储状态配置
使用bitset存储布尔数据
此设置还更改优化生成代码中的块操作顺序从
提高代码执行速度
来从
.
为每一个优先级而且水平参数值时,该表列出了细节部分。
参数 | 设置 | 例子 | ||||
---|---|---|---|---|---|---|
水平 | 最低(调试) |
与可读性相平衡 |
最大 |
|||
优先级 | 不适用(N/A) | N/A | 平衡内存和速度 |
最大化执行速度 |
最小化内存 |
|
细节 | ||||||
使用memcpy进行向量赋值 | 从 |
在 |
在 |
在 |
在 |
使用memcpy函数优化生成的矢量赋值代码 |
Memcpy阈值(字节) | 从 |
64 |
64 |
64 |
64 |
使用memcpy函数优化生成的矢量赋值代码 |
启用本地块输出 | 从 |
在 |
在 |
在 |
在 |
在生成的代码中启用和重用本地块输出 |
重用局部块输出 | 从 |
在 |
在 |
在 |
在 |
在生成的代码中启用和重用本地块输出 |
消除多余的局部变量(表达式折叠) | 从 |
在 |
在 |
在 |
在 |
最小化块输出中中间结果的计算和存储 |
重用全局块输出 | 从 |
在 |
在 |
在 |
在 |
在生成的代码中重用全局块输出 |
执行分配和总线分配块的就地更新 | 从 |
在 |
在 |
在 |
在 |
总线分配块的数据拷贝减少 |
为数据存储读和写块重用缓冲区 | 从 |
在 |
在 |
在 |
在 |
数据存储读写块的数据减拷贝 |
简化数组索引 | 从 |
从 |
从 |
在 |
从 |
简化数组索引中的乘法操作 |
将布尔数据打包到位字段中 | 从 |
从 |
从 |
从 |
在 |
通过将布尔数据打包到位字段中优化生成的代码 |
重用不同大小和维度的缓冲区 | 从 |
从 |
在 |
从 |
在 |
重用不同大小和尺寸的缓冲区 |
为Model块重用缓冲区 | 从 |
从 |
从 |
从 |
从 |
减少包含引用模型的模型的内存使用 |
优化全局数据访问 | 没有一个 |
没有一个 |
使用global保存临时结果 |
没有一个 |
使用global保存临时结果 |
优化全局变量的使用 |
优化生成代码中的块操作顺序 | 从 |
从 |
提高代码执行速度 |
提高代码执行速度 |
从 |
通过重新排序生成代码中的块操作来删除数据副本 |
使用bitset存储状态配置 | 从 |
从 |
从 |
从 |
在 |
减少布尔和状态配置变量的内存使用 |
使用bitset存储布尔数据 | 从 |
从 |
从 |
从 |
在 |
减少布尔和状态配置变量的内存使用 |
如果你打算升级你的软件,请注意:
设置水平而且优先级参数为每个后续版本启用与上述参数设置相对应的最新优化。
选择指定自定义优化参数使您可以在细节部分。当您在未来的版本中加载模型时,在您采用软件升级后的版本中引入的优化参数将被设置为
从
.如果您希望在升级软件时减少生成代码中的更改数量,这个选项可能是一个很好的选择。
推荐设置
应用程序 | 设置 |
---|---|
调试 | 没有影响 |
可追溯性 | 没有影响 |
效率 | 最小化内存 (RAM),最大执行速度 (速度)平衡内存和速度 (平衡) |
安全预防措施 | 没有影响 |
编程使用
参数:OptimizationPriority |
类型特征向量 |
值:“平衡” |“速度” |“内存” |
默认值:“平衡” |
版本历史
在R2018a中引入