文档

配置文件代码执行速度

通过分析生成代码的执行速度,您可以帮助验证代码是否满足执行速度要求。

分析在开发周期的早期特别重要,因为它可以识别潜在的体系结构问题,在开发过程的后期处理这些问题可能会花费更大的代价。分析还可以识别瓶颈和过程问题,这些问题表明需要优化,例如,使用内部循环或内联代码。

请注意

如果你有嵌入式编码器®许可证,看到代码执行分析(Embedded Coder)提供了一种基于软件在环(SIL)或处理器在环(PIL)模拟的替代和更简单的方法。

使用Profile钩子函数接口

通过使用目标语言编译器(TLC)钩子函数接口,您可以分析使用代码生成技术生成的代码。

使用profile钩子函数接口:

  1. 对于您的系统目标文件,创建一个定义以下钩子函数的TLC文件。编写函数,以便它们指定分析代码。代码生成器将钩子函数代码添加到为模型中的原子系统生成的代码中。

    函数 输入参数 输出类型 描述
    ProfilerHeaders 无效 头文件名数组 返回将包含在生成的代码中的头文件名的数组。
    ProfilerTypedefs 无效 typedef 为分析器类型定义生成代码语句。
    ProfilerGlobalData 系统 的全局数据系统 生成声明全局数据的代码语句。
    ProfilerExternDataDecls 系统 走读生指定的系统 生成创建全局的代码语句走读生声明。
    ProfilerSystemDecls 系统functionType 指定的系统对于指定的functionType 在原子子系统的范围内为所需的变量声明生成代码输出更新OutputUpdate,或衍生品函数。
    ProfilerSystemStart 系统functionType 指定的分析器启动命令系统而且functionType 生成在原子子系统范围内启动分析器的代码输出更新OutputUpdate,或衍生品函数。
    ProfilerSystemFinish 系统functionType 指定的分析器结束命令系统而且functionType 属性范围内停止分析器的代码输出更新OutputUpdate,或衍生品原子子系统的功能。
    ProfilerSystemTerminate 系统 指定的分析器终止代码系统 为原子子系统生成终止分析(并可能报告结果)的代码。
  2. 在你的目标.tlc文件中,定义以下全局变量。

    定义……

    ProfileGenCode

    TLC_TRUE或1打开剖析(TLC_FALSE或0关闭剖析)

    ProfilerTLC

    在步骤1中创建的TLC文件的名称

    方法定义全局变量的一种快速方法是使用——一个选择。方法应用此选项set_param命令,设置模型配置参数TLCOptions.例如,

    >> set_param(gcs,'TLCOptions',…“-aProfileGenCode = 1 -aProfilerTLC =“rtwdemo_profile_hook.tlc”)
  3. 考虑为生成代码生成报告设置配置参数。然后,您可以在为模型生成的代码的上下文中检查分析代码。

  4. 构建模型。构建过程将分析代码嵌入到为模型生成的代码中的钩子函数位置。

  5. 运行生成的可执行文件。在MATLAB命令窗口中输入模型名称.您将看到您在创建的分析TLC文件中编写的分析报告。例如,概要报告可以列出对模型中每个系统的调用次数,以及在每个系统中花费的CPU周期数。

有关编程的详细信息a.tlc文件和定义TLC配置变量,请参见目标语言编译器

接口限制

用于分析代码执行速度的TLC钩子函数接口不支持s函数系统目标文件(金宝apprtwsfcn.tlc).

相关的话题