实时应用程序的执行分析
本示例演示了如何对在多核 Speedgoat® 目标计算机上运行的多速率实时应用程序的任务执行时间和函数执行时间进行性能探查。探查器可帮助您验证任务是否在分配的时间预算内完成,并在潜在的 CPU 超时导致生产环境出现故障之前及时发现问题。
例如,一个包含多个被引用的子系统的模型被分配到各个处理器核心上。您收集探查数据,以衡量每个任务和函数的执行时间,然后下载结果进行分析。
对实时应用程序进行分析:
构建多速率模型并将其部署到目标计算机上。
启动探查器并运行应用程序,以收集执行时间数据。
将探查器数据下载为
.perf文件,以便进行离线分析。
生成实时应用程序执行配置文件
在多核目标计算机上为模型 slrt_ex_mds_and_tasks 生成配置文件数据。
1.打开、构建并下载模型。
tg = slrealtime; connect(tg); model = 'slrt_ex_mds_and_tasks'; open_system(model); modelSTF = getSTFName(tg); set_param(model,"SystemTargetFile",modelSTF); open_system('slrt_ex_mds_subsystem1'); set_param('slrt_ex_mds_subsystem1',"SystemTargetFile",modelSTF); open_system('slrt_ex_mds_subsystem2'); set_param('slrt_ex_mds_subsystem2',"SystemTargetFile",modelSTF); evalc('slbuild(model)'); load(tg,model); setStopTime(tg,20);



2.启动探查器,然后启动实时应用程序。
startProfiler(tg); start(tg); pause(5); stopProfiler(tg); stop(tg);
3.下载探查器数据。
getProfilerData(tg,model,"slrt_ex_mds_and_tasks_profiler_data");
Processing data on target computer ...
该函数从目标计算机下载原始探查器数据,并将其作为 .perf 文件保存在当前工作文件夹中。.perf 文件采用 Linux perf 格式,可使用标准的 Linux perf 工具进行分析。.perf 文件包含采样得到的性能数据,包括调用堆栈和函数采样。您可以处理这些数据,以可视化执行概况、确定哪些函数消耗了最多的执行时间、分析调用堆栈,并识别 CPU 热点。
bdclose(model); bdclose('slrt_ex_mds_subsystem1'); bdclose('slrt_ex_mds_subsystem2');
另请参阅
schedule (Embedded Coder) | stopProfiler | startProfiler | resetProfiler | getProfilerData | getAvailableProfile | deleteProfilerData
主题
- Simulink Real-Time 上的并发执行
- 代码探查分析器 (Embedded Coder)