生成代码的执行时间分析
使用执行时分析来:
确定生成的代码是否满足在目标硬件上实时部署的执行时间要求。
确定需要提高执行速度的代码部分。
以下任务代表使用代码执行分析的一般工作流程:
使用 Simulink® 模型,设计并仿真您的算法。
配置模型以进行代码执行分析,生成代码,并在目标硬件上执行生成的代码。有关选择仿真模式的信息,请参阅下表。
使用代码执行分析图和报告来分析执行速度。例如,您可以:
检查任务或算法代码是否满足执行时间要求。
确定影响性能并需要优化的代码部分。
了解哪些硬件资源仍可用于添加更多功能。
尽早发现调度问题并研究如何在可用的处理器核心之间分配算法代码的执行。
检测由于功能变化而导致的性能下降。
调查功能、速度和资源之间的权衡是否会影响性能。
如果需要,优化模型并返回步骤 2。
当您有足够数量的测试用例时,可以使用
coder.profile.test.runTests来自动分析任务执行时间。对于每个任务,确定最长执行时间和相应的测试用例。
下表提供了有关使用 Simulink 产品进行执行时间分析的信息。
| 执行类型 | 目标 | 相关产品 | 目标 |
|---|---|---|---|
| 软件在环 (SIL) | 开发计算机 | Embedded Coder® | 在您的开发计算机上运行生成的代码。尽管您的开发计算机可能与目标硬件不同,但 SIL 分析可以提供有关性能趋势的指示。例如,如果 SIL 仿真中的执行时间加倍,则目标硬件上的执行时间也可能会增加。 在开发过程中,使用 SIL 分析来:
请参阅Create Execution-Time Profile for Generated Code和View and Compare Code Execution Times。 在 Linux® 开发计算机上,您可以使用来自计算机性能监控单元 (PMU) 的度量生成配置文件。请参阅Generate Profiles Using PMU Metrics。 |
| 处理器在环 (PIL) | 嵌入式硬件或指令集仿真器 | Embedded Coder | 在目标硬件上运行生成的代码,并确定生成的代码是否满足实时部署的执行时间要求。 您可以使用 PIL 分析来执行与开发期间使用 SIL 分析执行的相同任务。通过 PIL 分析您可以获得更准确的结果。请参阅Create Execution-Time Profile for Generated Code和View and Compare Code Execution Times。 在开发的发布阶段,您可以使用 PIL 分析来评估性能。当您有足够数量的测试用例时,您可以使用 模拟器和最终目标硬件之间的 PIL 结果可能有所不同。然而,目标硬件越确定,PIL 结果就越可重复。 尽管检测会增加开销,但在高度确定的目标硬件(小缓存大小)上,您可以过滤开销,从而提供准确的结果。请参阅Remove Instrumentation Overheads from Execution Time Measurements。 在 Linux 硬件上,您可以使用来自硬件性能监控单元 (PMU) 的度量生成配置文件。请参阅Generate Profiles Using PMU Metrics。 |
| XCP 外部模式 | 开发计算机或自定义硬件 | Embedded Coder | 实时运行生成的代码并执行执行时间分析。请参阅Create Execution-Time Profile for Generated Code和分析代码执行数据。 使用 XCP 外部模式分析进行任务分析。您可以:
虽然您可以启用函数分析,但在外部模式仿真期间不会过滤检测开销,并且其开销高于 PIL 仿真的开销。如果要获得准确的函数执行时间,请使用 PIL 仿真。 |
| 实时执行 | Simulink Real-Time™ | Simulink Coder™、Simulink Real-Time | 对生成的代码进行执行时间分析,在 Speedgoat® 计算机上实时运行。请参阅实时应用程序的执行分析 (Simulink Real-Time)。 |