优化生成的查找表的代码块
删除代码,检查输入超出范围
默认情况下,生成的代码的查找表块包括检查超出范围的条件语句断点或索引输入:
生成更高效的代码,您可以删除的条件语句,防止超出范围的输入值。
块 | 复选框选择 |
---|---|
一维查找表 | 移除保护对超出范围的输入生成的代码 |
二维查找表 | |
一天的查找表 | |
Prelookup | |
插值使用Prelookup | 移除保护超出范围指数生成的代码 |
选择复选框的代码块对话框可以提高效率,因为有更少的语句来执行。然而,如果你为高安全性的应用程序时,生成的代码不应该删除范围检查代码。
验证使用复选框,运行以下模型顾问检查和执行推荐的操作。
模型顾问检查 | 当运行检查 |
---|---|
通过产品>嵌入式编码器>确定生成的查找表块昂贵的超出范围检查代码 |
代码效率 |
通过产品>金宝app仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查使用查找表的块 |
对于安全性至关重要的应用程序 |
关于顾问模式的更多信息,请参阅检查你的模型使用模型的顾问在仿真软件金宝app®文档。
在查找表优化断点间距
断点在查找表可调时,间距不影响效率或内存使用生成的代码。当断点不可调,间距的类型会影响以下因素。
因素 |
即使是2的幂间隔的数据 |
均匀间隔的数据 |
不均匀间隔的数据 |
---|---|---|---|
执行速度 |
执行速度是最快的。位置搜索和插值为等间隔数据是一样的。然而,增加速度一点定点类型,有点转变取代了位置搜索和面具取代了插值。 |
unevenly-spaced数据的执行速度比这更快,因为位置搜索更快,插值使用一个简单的部门。 |
不同间距的执行速度是最慢的,因为位置搜索慢,和插值需要更多的操作。 |
错误 |
unevenly-spaced数据的误差可以大于,因为与非均匀曲率近似函数需要更多的点来达到相同的精度。 |
unevenly-spaced数据的误差可以大于,因为与非均匀曲率近似函数需要更多的点来达到相同的精度。 |
错误可以用非均匀曲率较小,因为近似函数需要少点来达到相同的精度。 |
罗的使用 |
ROM命令罗少,但更多的数据。 |
ROM命令罗少,但更多的数据。 |
罗罗使用更多的命令,但是更少的数据。 |
内存使用情况 |
不显著。 |
不显著。 |
不显著。 |
遵循这些指导方针:
对于定点数据类型,甚至使用断点,2的幂间距。
non-fixed-point数据类型,甚至使用断点和间距。
识别机会提高代码效率查找表块,运行以下模型顾问检查和执行推荐的操作:
通过产品>嵌入式编码器>识别可疑定点操作
通过产品>嵌入式编码器>确定产生昂贵的饱和度和舍入的代码块
关于顾问模式的更多信息,请参阅检查你的模型使用模型的顾问在仿真软件文档金宝app。
减少数据拷贝的查找表
当你使用工作空间变量来存储表和断点查找表的数据块,然后配置这些变量的可调性,可以避免数据拷贝通过使用相同的数据类型的块参数和变量。工作空间变量包括数字MATLAB®变量和金宝appSimulink.Parameter
对象存储在一个工作区,如基本工作空间,或在数据字典。如果变量的数据类型小于物体的数据类型参数,生成的代码隐式转换的数据类型变量的数据类型参数。这种隐含的演员需要一个数据副本可以显著增加内存消耗和降低代码的执行速度大向量或矩阵。
有关更多信息,请参见参数数据类型在生成的代码中(嵌入式编码)和在生成的代码创建可调校准参数(金宝app仿真软件编码器)。
高效的代码行阵列布局
为行数组生成高效的代码布局,选择模型配置参数数学和数据类型>使用算法优化存储阵列布局。最好的行算法执行速度和内存使用上操作时表数据与存储阵列布局。同样,默认列为主与列为主的阵列布局算法表现最好。考虑使用指定数组的算法优化布局达到最佳性能。例如,使用行算法当阵列布局设置为行存储在代码生成。
阵列布局 | 算法 | 缓存友好算法 |
---|---|---|
列为主 | 列为主 | 推荐 |
行 | 行 | 推荐 |
行 | 列为主 | 不推荐 |
列为主 | 行 | 不推荐 |
有关更多信息,请参见列为主的布局与查找表行布局模型的转换(金宝app仿真软件编码器)。
另请参阅
一天的查找表|Prelookup|插值使用Prelookup
相关的话题
- 检查你的模型使用模型的顾问
- 编辑查找表
- 选择一个查找表的指导方针
- 列为主的布局与查找表行布局模型的转换(金宝app仿真软件编码器)