主要内容

生成代码的执行时间探查

R2026b

通过执行时间探查可以:

  • 确定生成的代码是否满足在目标硬件上实时部署的执行时间要求。

  • 确定需要提高执行速度的代码节。

以下任务代表使用代码执行探查的一般工作流:

  1. 使用 Simulink® 模型,设计并仿真您的算法。

  2. 为代码执行探查配置模型,生成代码,并在目标硬件上执行生成代码。有关选择仿真模式的信息,请参阅下表。

  3. 使用代码执行探查图和报告分析执行速度。例如,您可以:

    • 检查任务或算法代码是否满足执行时间要求。

    • 识别影响性能且需要优化的代码部分。

    • 了解还有哪些硬件资源可用于添加更多功能。

    • 尽早检测调度问题,并研究如何将算法代码的执行分配在可用的处理器核上。

    • 检测由于功能更改而导致的性能下降。

    • 研究功能、速度和资源之间的权衡是否影响性能。

  4. 如果需要,请细化模型并返回到步骤 2。

  5. 当您有足够数量的测试用例时,可以使用 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 探查评估性能。当您有足够数量的测试用例时,您可以使用 coder.profile.test.runTests 自动化模型执行并确定所用输入的最长任务执行时间。

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)。

另请参阅

主题