主要内容

查看和比较代码执行时间

您可以运行一个在循环中的软件(SIL)或在循环中的处理器(PIL)模拟,在生成的代码中生成任务和函数的执行时间度量。在模拟期间,您可以使用simulation Data Inspector来观察流执行时间。在模拟的最后,你可以:

  • 查看Imililed Model组件的执行时间指标。

  • 打开所有被分析组件的执行时度量的报告。例如,通过报表图标,您可以查看概要代码部分和每个概要函数的执行时分布。

  • 使用模拟数据检查器来绘制和比较不同模拟的执行时间。

运行生成执行时度量的SIL模拟

打开rtwdemo_sil_topmodel模型,它有两个子系统抵制反型.在命令行中,输入rtwdemo_sil_topmodel

运行生成执行时度量的SIL模拟银/公益诉讼标签:

  1. 模式部分,选择仅限SIL / PIL模拟

  2. 准备节,指定这些设置:

    1. 正在测试的系统-顶级模特

    2. SIL / PIL模式-Software-in-the-Loop(银)

  3. 要测量子系统的代码执行时间,请在准备部分:

    1. 点击设置

    2. 在下面分析

      • 单击任务分析按钮。此操作选择测量任务执行时间配置参数,它为从顶部模型生成的任务提供执行时间指标rtwdemo_sil_topmodel

      • 单击保存选项按钮,直到显示所有的数据.此操作设置了保存选项配置参数所有的数据

      • 单击职能按钮,直到显示.此操作设置了度量函数执行时间配置参数粗糙(仅参考模型和子系统),它为子系统生成的函数提供了执行时度量抵制反型

    3. 在下面报道,单击覆盖收藏按钮关闭,这将禁用代码覆盖分析。收集代码覆盖率数据与分析数据是分开的。

    4. 单击设置按钮打开配置参数对话框。在这方面数据导入/导出窗格,清楚单仿真输出

  4. 要查看模拟期间的流执行时间,请打开仿真数据检查器。在结果部分,点击

  5. 部分,点击运行SIL / PIL

在MATLAB®基本工作区,模拟生成一个具有默认名称的变量,executionProfile,它存储执行分析数据。属性指定可选名称工作空间变量配置参数。

笔记

如果您选择数据导入/导出>单仿真输出复选框,模拟在指定中创建变量金宝appsimulink.simulationOutput.对象。

当模拟完成时,被分析的模型组件是蓝色的,代码视图显示生成的代码。要查看已分析组件的执行时间度量,请单击该组件。例如,子系统反型

对于顶级模型或PIL模拟,Simulink金宝app®编辑器的背景也是蓝色的。当您单击后台时,显示窗口将显示顶层任务的执行时间指标。

您可以从模型组件跟踪到代码视图中被分析的代码部分。在Profiling显示窗口中,在代码段行上单击图标.例如,如果您单击模型背景,然后单击rtwdemo_sil_topmodel_initialize任务中,您可以看到SIL应用程序中调用站点周围的度量探测。要查看组件的分析指标,请将光标放在调用站点上方的省略号上。

初始化函数调用与工具提示显示代码分析指标表。

如果单击函数的图标,则突出显示呼叫站点。代码视图显示代码行左侧的平均执行时间和函数调用数。在此示例中,最大和平均次数是相同的,因为初始化函数仅调用一次。

突出显示了CounterTypeA函数的函数调用站点。

Profiling显示窗口也有链接到:

  • 完整的分析报告,它为所有分析的代码部分提供了执行时间指标。

  • 仿真数据检查器,它允许您绘制和比较概要代码部分的执行时间度量。

  • 概要代码部分的执行时分布。

  • 饼图显示呼叫者的相对执行时间和称为函数

如果关闭模型或显示窗口,则可以使用此行命令重新打开彩色模型和显示窗口:

> >注释(executionProfile)

代码执行分析报告

在模拟结束时,您可以通过Profiling显示窗口或使用下面的行命令打开该报告:

> >报告(executionProfile)

第1部分提供了一个摘要。第2部分包含关于已分析代码部分的信息。通过单击[+]和[-]分别展开和折叠第2部分中的剖面部分。这个图形显示了完全展开的部分。

该报告包含以下时间度量:

  • 模型初始化函数初始化

  • 一步函数表示的任务步骤0.1 [0]

  • 由子系统生成的函数抵制反型

从代码执行分析报告中,您可以跟踪生成一组指标的模型组件。例如,在部分列,如果单击抵制超链接时,Simulink编辑金宝app器标识子系统。

默认情况下,报告显示纳秒的时间(10-9秒)。您可以指定时间单位和数字显示格式。例如,以微秒(10-6秒),使用以下命令:

报告(executionProfile,......“单位”'秒'......'比例因子''1E-06'......“NumericFormat”' % 0.3 f '的)

只有当计时器经过校准(即已知每秒计时器滴答数)时,报表才会以秒为单位显示时间。在Windows®机器时,软件为SIL模拟确定此值。在Linux®机器手动校准定时器。例如,如果您的处理器速度为1 GHz,请指定每秒定时器滴答数:

executionProfile。TimerTicksPerSecond = 1 e9;

若要在“命令窗口”中查看任务或函数的执行时间指标,请单击对应行的

> >重燃(executionProfile) .Sections (5) ExecutionTimeCodeSection属性:名称:“CounterTypeA”数量:5 ExecutionTimeInTicks:[1×101 uint64] SelfTimeInTicks:[1×101 uint64] TurnaroundTimeInTicks:[1×101 uint64] TotalExecutionTimeInTicks: 24332 TotalSelfTimeInTicks: 24332 TotalTurnaroundTimeInTicks: 24332 MaximumExecutionTimeInTicks:502 MaximumExecutionTimeCallNum: 10 MaximumSelfTimeInTicks: 502 maximumselftimeecallnum: 10 MaximumTurnaroundTimeInTicks: 502 maximumturnaroundtimeecallnum: 10 NumCalls: 101 ExecutionTimeInSeconds: [1×101 double] Time: [101×1 double]

要在仿真数据检查器中显示测量的执行时间,请单击图标.使用模拟数据检查器管理和比较各种模拟的图。

要显示执行时间分布,单击图标

在本例中,要创建直方图,软件使用以下命令:

节= executionProfile.Sections (5);数据= section.ExecutionTimeInSeconds;30岁的直方图(数据“归一化”“概率”);
只有当呼叫数大于1时,该软件才会创建直方图。

如果为模型生成的代码包含嵌套函数,模拟将生成饼图,显示调用者和被调用函数的相对执行时间。要显示饼图,单击图标对于来电功能。例如,步骤0.1 [0]

显示平均和最大执行时间分布的饼图可以帮助您识别代码执行中是瓶颈的函数。

返回到报告中的摘要。下表描述了代码部分概要文件中提供的信息。

描述
部分

任务名称、顶级模型、子系统或模型块。单击链接以转到模型。

使用任务,在任务名称旁边列出了样本周期和样本偏移量。例如,RTWDEMO_SIL_TOPMODEL_STEP [0.1 0]采样周期为0.1秒,采样偏移量为0。

最大周转时间(金宝app仿真软件实时™以及实时金宝app模式下的支持包) 代码段开始和结束之间的最长时间。包括抢占时间。
平均周转时间(金宝appSimulink实时以及实时金宝app模式下的支持包) 代码部分的开始和结尾之间的平均时间。包括抢占时间。
最大执行时间 代码段开始和结束之间的最长时间。
平均执行时间 代码部分的开始和结尾之间的平均时间。
最大的自我时间 最大执行时间,不包括子节的时间。
平均自我时间 平均执行时间,不包括子节的时间。
呼叫 对代码段的调用数。

您单击以查看SIL / Pil App的代码视图中的图标。代码部分可以是任务或函数。

指定的工作区变量,例如,executionProfile,必须存在于基础工作区中。

您单击以在命令窗口中显示分布式代码部分的图标。等同于执行命令executionProfile。部分(一世的)

指定的工作区变量,例如,executionProfile,必须存在于基础工作区中。

单击该图标可显示模拟数据检查器测量的执行时间。

指定的工作区变量,例如,executionProfile,必须存在于基础工作区中。

图标,单击该图标可显示已分析代码部分的执行时分布。

指定的工作区变量,例如,executionProfile,必须存在于基础工作区中。

单击该图标可显示饼图,该饼图显示生成代码中调用者和被调用函数的相对执行时间。

为了帮助您决定是否可以在目标硬件上运行生成的代码,代码执行分析报告的第3部分提供了CPU工作负载信息:

  • 在样本期间每个任务所需的平均值和最大CPU时间。

  • 样本期间的CPU总使用量。

该软件通过将任务执行时间除以样本时间计算分配给任务的CPU时间百分比。

软件生成CPU利用率只有指定了每秒的定时器滴定数。

比较代码执行时与基线的性能

您可以创建一个代码执行分析报告,该报告将生成的代码的性能与参考版本的性能进行比较。例如,假设您要使用当前的执行时间指标executionProfile作为基线rtwdemo_sil_topmodel

  1. 在Workspace浏览器中,重命名executionProfileexecutionProfileBaseline

  2. 运行另一个SIL模拟。

  3. 要创建一个对比较基线的最新性能的报告,请运行:

    报告(executionProfile,“基线”executionProfileBaseline)

第3部分(与基准性能的比较)及第四部份(CPU利用率),该报告提供了执行时指标的比较。执行时间指标的差异是用颜色编码的:

  • 红色-执行时间或CPU使用率的增加。

  • 绿色 - 执行时间或CPU使用情况下降。

  • 黑色-没有零钱。

可视化任务调度

您可以使用模拟数据检查器可视化任务调度和函数调用的顺序。在模拟结束时,执行其中一个操作:

也可以看看

||

相关例子

更多关于