更多信息请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com1.Bytrace简介Bytrace是使用的工具开发人员跟踪流程轨迹并查看性能。主要是对内核ftrace进行封装扩展,支持用户态管理。该工具主要分为API和命令行两部分:1.Bytrace将打点API暴露给应用开发者,开发应用过程中可以在关键代码处调用相应的API进行打点;2、命令行部分启用相应标签获取打点信息。通过这个工具,你可以打开你想要查看的用户态和内核标签(使用命令行“bytrace-l”可以查看所有支持的标签),然后使用命令行将trace信息捕获到指定的文件中。下面是具体的使用指南。2.架构图3.Bytrace工具指令命令行列表选项说明-h,--help查看选项帮助-bn,--buffer_sizen指定访问跟踪日志的n(KB)内存大小,默认2048KB-tn,--timen用于指定trace的运行时间(单位:s),取决于分析过程的时间--trace_clockclocktrace输出的时钟类型,一般设备支持boot,global,mono,uptime,perf等,默认为boot--trace_begin开始抓取trace--trace_dump输出数据到指定位置(默认console)--trace_finish停止抓取trace,并输出数据到指定位置(默认console)-l,--list_categories输出手机可以支持trace模块--overwrite当缓冲区满时会丢弃最新的信息。(默认丢弃最早的日志)-ofilename,--outputfilename指定输出目标文件名-z抓取trace然后压缩4.工具使用示例@echooffhdcshell"echo>/sys/kernel/debug/tracing/trace"hdcshell"echo4096>/sys/kernel/debug/tracing/saved_cmdlines_size"hdcshell"bytrace-t10-b4096--overwriteohoszimagezmediazcamerazaudio能力distributeddatamgrgraphicfreqirqmdfsworkqmmcidlepagecnotaceapp>/data/mynewtrace.ftrace"hdcshell"echo>/sys/kernel/debug/tracing/trace"hdcshell"sed-i'1,2d'/data/mynewtrace.ftrace"hdcfilerecv/data/mynewtrace.ftrace%cd%pausehdc是hdc.exe文件,可以连接hdc,执行上面的命令,在当前目录下得到mynewtrace.ftrace文件echo>/sys/kernel/debug/tracing/trace清除系统trace数据,方便捕获新数据echo4096>/sys/kernel/debug/tracing/saved_cmdlines_size保存trace数据个数,4096-t10-b4096要捕获10秒的数据,请为访问跟踪日志指定4096(KB)内存大小ohoszimagezmediazcamerazaudioabilitydistributeddatamgrgraphicfreqirqmdfsworkqmmcidlenotificationsyncpagecacheaceapp是一个抓取数据的模块sed-i'1,2d'/data/mynewtrace.ftrace删除前两行不需要的数据内容hdc文件recv/data/mynewtrace.ftrace%cd%hdc下载内容ftrace文件的调度到本地当前目录5.ftrace数据调度跟踪数据entries-in-buffer/entries-written:42335/42335#P:2##_------=>irqs-off#/_----=>需要-resched#|/_---=>硬中断/软中断#||/_--=>抢占深度#|||/delay#TASK-PIDTGIDCPU#||||时间戳函数#||||||||||bytrace-542(542)[001]....4811.090453:mm_filemap_add_to_page_cache:dev179:7inoe1page=05202a4apfn=587751ofs=0<空闲>-0(-------)[001]d...4811.090585:cpu_idle:state=1cpu_id=1
