你可以配置一个软件 - 循环(SIL)或循环处理器(PIL)模拟以在生成的代码中生成任务和函数的执行时间指标。该软件从通过添加到SIL或PIL应用程序的代码仪器或所生成的代码来计算从通过代码仪器或已生成的代码获得的数据的执行时间。您可以使用执行时间指标来确定生成的代码是否符合目标硬件上实时部署的要求。
例如,您可以执行以下分析:
找出那些最需要时间的任务。任务是主要的进入点生成的代码。例如,对于一个抽样率或阶梯函数
功能。模型
_初始化
在这些任务,调查需要时间最多的代码段。
识别随时间的步骤的执行时间的变化。
如果您正试图减少执行时间,分析结果帮助你专注于最关键的代码段。观察一个更新的模型性能的变化,重新运行SIL或者PIL模拟和对以往数据进行比较的新指标。
执行时间测量大大依赖于您使用的硬件。有关可靠的结果,请使用您计划部署生成的代码的硬件收集执行时度量标准,即运行目标硬件上的代码的PIL模拟。SIL仿真,在主计算机上执行代码,可能不会产生代表性指标。
当SIL或PIL模拟完成时,您可以:
通过显示窗口或报告查看执行时间指标。
使用模拟数据检查器可以查看并通过仿真比较的执行时间的变化。
分析MATLAB中的测量®环境。
要为SIL或PIL模拟配置代码执行分析:
在您的顶级车型,打开配置参数对话框,然后选择代码生成>确认窗格。
选择测量任务执行时间复选框。
对于功能的执行时间,从测量功能执行时间下拉列表中,选择下列选项之一:
粗(仅引用的模型和子系统)
- 如果要分析主要模型组件的生成功能代码。
详细(所有的函数调用网站)
- 如果要分析生成的函数代码模型中的所有块。
在里面工作区变量字段中,指定一个名称。当您运行仿真,软件生成具有此名称在MATLAB基工作区的变量。变量包含执行时间的测量,并且是类型的对象coder.profile.ExecutionTime
。
如果您选择数据导入/导出>单仿真输出复选框,该软件会在变量金宝appsimulink.simulationOutput.
对象,您指定。
来自保存选项下拉列表中,选择下列之一:
只有汇总数据
- 如果你想只产生一个报告,并减少内存使用,例如,一个长的仿真过程。
所有数据
- 允许您生成的基工作区的报告和店内执行 - 时间曲线。模拟后,您可以使用从方法coder.profile.ExecutionTime
和coder.profile.ExecutionTimeSection
对于在仿真期间,为每个呼叫检索每个呼叫的执行时间测量值。
点击好的。
对于PIL模拟,您必须配置特定于硬件的计时器。设置目标的连接配置时,请创建计时器对象。SIL仿真不需要此操作。
如果你选择所有数据
来自保存选项下拉列表中,该指标显示的窗口和生成的报告显示仿真数据检查的图标。当您单击其中一个图标时,软件将仿真结果导入模拟数据检查器。然后,您可以绘制执行时间并管理和比较各种仿真的图。
您可以控制执行时间分析的粒度,即防止将代码仪器添加到特定的函数调用站点。通过控制仿形粒度,您可以:
专注于需要改进的模型组件的性能。例如,在初始运行之后,禁用需要很少处理时间的块的分析。此操作减少了分析报告显示的项目数。
减少代码执行开销。例如,对于简单的功能,该代码检测开销可以比函数代码的执行时间越大。
为仅生成任务的执行时间指标代码生成>确认配置参数对话框的窗格中,选择测量任务执行时间复选框并设置测量功能执行时间到离开
。
在顶部模型中生成用于引用的模型和原子子系统的函数执行数据,请执行代码生成>确认窗格,选择测量任务执行时间复选框并设置测量功能执行时间到粗(仅引用的模型和子系统)
。
功能执行数据的生成需要测量探头插入到生成的代码。该软件会插入原子子系统的测量探头仅当您设置功能包装场(在代码生成函数块参数对话框的选项卡)不可用的功能
或者可重复使用的功能
。如果该字段设置为汽车
,然后插入探针取决于由此产生的包装选择汽车
环境。如果该字段设置为排队
,该软件不会插入探头。
在生成的代码,该软件包的每个函数调用与测量探针时除外:
调用位置不会因表达折叠包裹(参见最小化计算和存储在模块输出的中间结果(金宝app编码器的Simulink))。
呼叫站点位于共享公用代码(见共享实用程序代码(金宝app编码器的Simulink))。
要为模型引用层次结构生成函数执行时间:
在顶部模型中,打开“配置参数”对话框,然后选择代码生成>确认窗格。
选择测量任务执行时间复选框
对于每一个人模型块要分析,指定测量功能执行时间只对您所需要的功能执行时间的参考电平。
例如,假定有一个顶级模特模型块A,又包含模型B座。
如果你想生成的执行时间从B型功能,请选择测量任务执行时间对于顶级模型并指定测量功能执行时间对于模型B.
顶部模型的这些参数覆盖引用模型的相应参数:
测量任务执行时间。如果禁用此参数的顶级车型,您也禁用功能剖析的参考模型。
工作区变量
保存选项
要控制模型中的块的代码执行配置文件,例如,子系统块,使用CodeProfilingOverride
块参数:
在Simuli金宝appnk.®编辑器,选择块。
在命令窗口中,运行:
set_param(GCB, 'CodeProfilingOverride',blockparametervalue.)
blockparametervalue.
:
'离开'
- 禁用块的分析。
'在'
- 如果分析是对父模型启用启用配置的块。
'继承'
(默认) - 应用父块的分析设置。
改变块文件配置的配置不会导致生产代码再生。
如果您的顶级模型具有Pill块,则应用于Pill块的执行配置文件设置是您用于创建Pilloct的原始模型的设置。看使用子系统的块模拟。你不能使用CodeProfilingOverride
控制Pillock的分析。