使用KUPL PROF进行全量的函数时序统计
KUPL对外提供 profile和trace两个工具,来提供运行时的时序统计,通过动态链接到prof对应的动态链接库来使能profile和trace功能。
- 通过setvars.sh --kupl_mode=prof链接到 prof 动态链接库。
- 运行程序时额外添加 KUPL_PROF_LEVEL=statistic来开启特定的函数累计计时,KUPL_PROF_LEVEL=trace来开启全量的函数时序统计。
- 程序运行结束时,如果开启了 KUPL_PROF_LEVEL=statistic或 KUPL_PROF_LEVEL=trace则会在结尾生成 “函数累计计时报告“,如果开启了 KUPL_PROF_LEVEL=trace 还可以在程序运行目录下生成 ptrace 文件,其中包含各个进程中各个线程运行情况的统计文件(以.json文件保存),该文件可以通过chrome://tracing网页(请使用chrome 94以上版本的Chrome浏览器运行)来观看可视化版本报告(即把想要观看的文件导入进网页)。
表1 profile的msg字段说明: 信息名称
描述
pthread_executor_get_sched
获取调度表
parallel_for_static_submit_taskbase
静态并行for循环提交任务库
parallel_for_info_destroy_create
并行for循环信息销毁并创建
task_execute
执行任务
task_finish
任务完成
ult_execute
用户级线程执行
ult_finish
用户级线程结束
sched_add_taskbase
添加任务库
sched_get_taskbase
获取任务库
通过网页观看可视化版本报告建议使用Chrome浏览器。
父主题: 使用指导