生成代码的执行时间探查
R2026b通过执行时间探查可以:
确定生成的代码是否满足在目标硬件上实时部署的执行时间要求。
确定需要提高执行速度的代码节。
以下任务代表使用代码执行探查的一般工作流:
使用 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)。 |