1# FileSystem 的抓取和展示说明 2 3FileSystem 分析文件系统的信息和活动,比如读和写操作等。 4 5## FileSystem 的抓取 6 7### FileSystem 抓取配置参数 8 9 10配置项说明: 11 12- Start FileSystem Record:配置项的总开关。 13- Process:默认配置的是整个系统的,也可选择单进程抓取。 14- Max Unwind Level:配置抓取调用栈的最大深度。 15 16再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_filesystem.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 17 18点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 19 20输入 hdc_std shell,进入设备,执行命令。 21 22执行完成后,进入指定目录查看,在/data/local/tmp 下就会生成 trace 文件。 23 24 25### FileSystem 展示说明 26 27将抓取的 trace 文件导入 smartperf 界面查看。 28 29 30界面布局介绍:FileSystem 整体界面布局分为 3 个部分: 31 32- 红色区域:泳道图。 33- 绿色区域:详细信息。 34- 黄色区域:辅助信息(Callstack)。 35 36### FileSystem 泳道图展示 37 38FileSystem 泳道图按照读操作和写操作展示,鼠标移动都泳道图上,悬浮框会以 10ms 为周期展示读,写类型系统调用的次数。 39 40按住 w 键放大界面,悬浮框会显示当前时刻的文件读写次数。 41 42 43### FileSystem 泳道图的框选功能 44 45可以对读写操作泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有五个 tab 页。 46FileSystem statistics 的 Tab 页如图: 47 48 49- Syscall/Process: 按照数据类型,进程分类显示。 50- Count: 系统调用的数量。 51- Logical Writes:写数据统计。 52- Logical Reads:读数据统计。 53- Other Filesystem Bytes:其他数据量。 54- Duration:总时长。 55- Min Duration:最小时长。 56- Avg Duration: 平均时长。 57- Max Duration:最大时长。 58 FileSystem Calltree 的 Tab 页如图: 59  60- Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 61- Local:为该调用方法自身占用的CPU时间。 62- Weight:调用方法的执行占比。 63 FileSystem Events 的 Tab 页如图: 64  65- Start: 起始时间。 66- Duration:时长。 67- Process:进程名。 68- Thread:线程名。 69- First Argument:系统调用的第一个参数。 70- Second Argument:系统调用的第二个参数。 71- Third Argument:系统调用的第三个参数。 72- Fourth Argument:系统调用的第四个参数。 73- Return:系统调用的返回值。 74- Error:错误码。 75- Backtrace:调用栈顶部函数,并显示调用栈深度。 76 File Descriptor History 的 Tab 页如图: 77  78- Start: 起始时间。 79- Duration:时长。 80- Process:进程名。 81- Type:操作类型。 82- File Descriptor:fd。 83- Backtrace:调用栈顶部函数,并显示调用栈深度。 84 File Descriptor Time Slice 的 Tab 页如图: 85  86- Open Time: 打开的起始时间。 87- Open Duration:打开的时长。 88- Process:进程名。 89- File Descriptor:fd。 90- Backtrace:调用栈顶部函数,并显示调用栈深度。 91 92### FileSystem 支持多种 Options 展示风格 93 94点击 FileSystem Calltree 的 Tab 页底部的 Options,会有两个 CheckBox 复选框。 95 96 97- Invert:反向输出调用树。 98- Hide System so:隐藏系统库文件。 99 100### FileSystem 支持过滤调用栈调用次数的展示风格 101 102点击 FileSystem Calltree 的 Tab 页底部的 Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 103 104 105### FileSystem 功能的调用栈 Group 展示-数据分析支持剪裁功能 106 107 108 109- 裁剪 Callstack,点击 Callstack 上一个节点符号,再点击底部 Symbol Filter 按钮,则该符号自动被裁剪掉,同时将该节点往下所有的 Callstack 内容裁剪掉。 110 111- 裁剪 Library,点击 Library Filter 按钮,则该库文件符号下所有的子节点也被裁剪。 112- 点击 Reset 按钮,将恢复选中的裁剪内容。 113 114### FileSystem 功能的调用栈 Group 展示支持按条件过滤 115 116在 Input Filter 输入关键字,会显示出带有该关键字的展示信息。 117 118 119### FileSystem 辅助信息区展示调用栈 120 121当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的 Heaviest Stack Trace: 122 123 124### FileSystem 的事件类型的过滤 125 126通过选择可以过滤是 Open 类型,还是 Close 类型事件。 127 128 129### FileSystem 的火焰图功能 130 131点击 FileSystem Calltre 左下角的柱状图的图标,会切换到火焰图页面。 132 133进入到火焰图页面,火焰图的展示跟 Callinfo 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和 Duration 时长。 134 135鼠标左键火焰图,会进入下一级界面,右键回到上一级。 136 137