diff --git a/ide/src/TraceRowConfig.ts b/ide/src/TraceRowConfig.ts index 60e6c73da91335562cfabec8ac0548df778595cf..1542ccba1e447f89602e8411d03e4f97feff30eb 100644 --- a/ide/src/TraceRowConfig.ts +++ b/ide/src/TraceRowConfig.ts @@ -311,7 +311,7 @@ export class TraceRowConfig extends BaseElement { this.spSystemTrace!.selectFlag = undefined; } - initElements(): void { } + initElements(): void {} connectedCallback(): void { this.sceneTable = this.shadowRoot!.querySelector('#scene-select'); diff --git a/ide/src/base-ui/checkbox/LitCheckBox.ts b/ide/src/base-ui/checkbox/LitCheckBox.ts index e4bede79354ba489007431b7e9b01a89dd62eab0..3a808a64a851dd1375ed27e9a1ba6a5c7fa1c47a 100644 --- a/ide/src/base-ui/checkbox/LitCheckBox.ts +++ b/ide/src/base-ui/checkbox/LitCheckBox.ts @@ -20,7 +20,7 @@ export class LitCheckBox extends BaseElement { private checkbox: HTMLInputElement | undefined; static get observedAttributes() { - return ['checked', 'value','disabled']; + return ['checked', 'value', 'disabled']; } get disabled() { diff --git a/ide/src/base-ui/icon.svg b/ide/src/base-ui/icon.svg index 5524fca98e5054aa8e4d7fc42259163beca1ecfb..e93c2d8b1e100e23558c6809eea7f93d80128607 100644 --- a/ide/src/base-ui/icon.svg +++ b/ide/src/base-ui/icon.svg @@ -477,12 +477,15 @@ - + - + @@ -493,14 +496,17 @@ - + - - + + @@ -510,7 +516,8 @@ - + @@ -518,7 +525,8 @@ - + @@ -528,12 +536,16 @@ - + - + diff --git a/ide/src/base-ui/menu/LitMainMenu.ts b/ide/src/base-ui/menu/LitMainMenu.ts index 8a6f3760b64f5941914fd9f74eda7063910f0eec..8c3d7cbdff0cbe27148f68a20da01cacff4313f5 100644 --- a/ide/src/base-ui/menu/LitMainMenu.ts +++ b/ide/src/base-ui/menu/LitMainMenu.ts @@ -61,18 +61,19 @@ export class LitMainMenu extends BaseElement { if (item.second) { secondGroup.setAttribute('second', ''); } else { - secondGroup.removeAttribute('second') + secondGroup.removeAttribute('second'); } if (item.collapsed) { - secondGroup.setAttribute('collapsed', '') + secondGroup.setAttribute('collapsed', ''); } else { - secondGroup.removeAttribute('collapsed') + secondGroup.removeAttribute('collapsed'); } - group?.appendChild(secondGroup) + group?.appendChild(secondGroup); item.children?.forEach((v: any) => { let th = new LitMainMenuItem(); th.setAttribute('icon', v.icon || ''); - th.setAttribute('title', v.title || '');if (this.getAttribute('main_menu') === '1' && window.localStorage.getItem('Theme') === 'dark') { + th.setAttribute('title', v.title || ''); + if (this.getAttribute('main_menu') === '1' && window.localStorage.getItem('Theme') === 'dark') { groupName.style.color = 'white'; groupDescribe.style.color = 'white'; th!.style.color = 'white'; @@ -99,8 +100,8 @@ export class LitMainMenu extends BaseElement { if (v.disabled != undefined) { th.disabled = v.disabled; } - secondGroup.appendChild(th) - }) + secondGroup.appendChild(th); + }); } else { let th = new LitMainMenuItem(); th.setAttribute('icon', item.icon || ''); @@ -134,7 +135,6 @@ export class LitMainMenu extends BaseElement { } group?.appendChild(th); } - }); }); } @@ -144,7 +144,7 @@ export class LitMainMenu extends BaseElement { st?.addEventListener('slotchange', (e) => { this.slotElements = st?.assignedElements(); this.slotElements?.forEach((it) => { - it.querySelectorAll('lit-main-menu-item').forEach((cell) => { }); + it.querySelectorAll('lit-main-menu-item').forEach((cell) => {}); }); }); let versionDiv: HTMLElement | null | undefined = this.shadowRoot?.querySelector('.version'); @@ -253,4 +253,4 @@ export interface MenuItem { fileChoose?: boolean; clickHandler?: Function; fileHandler?: Function; -} \ No newline at end of file +} diff --git a/ide/src/base-ui/select/LitSelect.ts b/ide/src/base-ui/select/LitSelect.ts index d010c17e3f76eed8e9302acac9d29ed0ffcc79c7..bd3d15afeb55bbca296189b01df30aebb465d4c3 100644 --- a/ide/src/base-ui/select/LitSelect.ts +++ b/ide/src/base-ui/select/LitSelect.ts @@ -231,8 +231,8 @@ export class LitSelect extends BaseElement {
+ this.showSearch || this.canInsert ? '' : 'readonly' + } tabindex="0">
diff --git a/ide/src/base-ui/table/LitPageTable.ts b/ide/src/base-ui/table/LitPageTable.ts index 48b8aec440a5f70237c94bfb4c596231c708b0b8..163789be2107b4d83c420114d766913b207e0c67 100644 --- a/ide/src/base-ui/table/LitPageTable.ts +++ b/ide/src/base-ui/table/LitPageTable.ts @@ -477,7 +477,7 @@ export class LitPageTable extends BaseElement { tables: this.ds, fileName: date.getTime() + '', columnFormatter: this.itemTextHandleMap, - exportFormatter: this.exportTextHandleMap + exportFormatter: this.exportTextHandleMap, }).then((res) => { this.exportLoading = false; this.exportProgress!.loading = false; @@ -915,7 +915,10 @@ export class LitPageTable extends BaseElement { if (reduce == 0) { return; } - while (reduce <= this.tableElement!.clientHeight && (this.currentRecycleList.length + skip) < visibleObjects.length) { + while ( + reduce <= this.tableElement!.clientHeight && + this.currentRecycleList.length + skip < visibleObjects.length + ) { let newTableElement = this.createNewTableElement(visibleObjects[skip]); this.tbodyElement?.append(newTableElement); this.currentRecycleList.push(newTableElement); diff --git a/ide/src/base-ui/table/lit-table.ts b/ide/src/base-ui/table/lit-table.ts index a71e36461da600e00029593ef4d657c9a7330751..631053607339dad4446fe0925a9393cf2570a292 100644 --- a/ide/src/base-ui/table/lit-table.ts +++ b/ide/src/base-ui/table/lit-table.ts @@ -475,7 +475,7 @@ export class LitTable extends HTMLElement { tables: this.ds, fileName: `${date.getTime()}`, columnFormatter: this.itemTextHandleMap, - exportFormatter: this.exportTextHandleMap + exportFormatter: this.exportTextHandleMap, }).then((res) => { this.exportLoading = false; this.exportProgress!.loading = false; diff --git a/ide/src/base-ui/tree/LitTreeNode.ts b/ide/src/base-ui/tree/LitTreeNode.ts index f33ce5193311cf7d97cdd328bb0e2ea872f434a3..1b00ad969b2abfb315d83b79245fa0b3b07dccf0 100644 --- a/ide/src/base-ui/tree/LitTreeNode.ts +++ b/ide/src/base-ui/tree/LitTreeNode.ts @@ -22,7 +22,7 @@ import { type TreeItemData } from './LitTree'; export class LitTreeNode extends BaseElement { private arrowElement: HTMLSpanElement | null | undefined; private itemElement: HTMLDivElement | null | undefined; - private checkboxElement: HTMLInputElement | null | undefined; + private checkboxElement: HTMLInputElement | null | undefined; private iconElement: LitIcon | null | undefined; private _data: TreeItemData | null | undefined; diff --git a/ide/src/base-ui/utils/CSVFormater.ts b/ide/src/base-ui/utils/CSVFormater.ts index dd8d966532d7ae4dcccc4186cf7eb32d3969b7ae..a4305f0e3345ec3c3328b9d6d84ae82edbdf0f22 100644 --- a/ide/src/base-ui/utils/CSVFormater.ts +++ b/ide/src/base-ui/utils/CSVFormater.ts @@ -52,11 +52,11 @@ export class JSONToCSV { // 如果存在自定义key值 if (columns.key.length) { columns.key.map(function (m: any, idx: number) { - let strItem : any = ''; + let strItem: any = ''; if (obj.exportFormatter && obj.exportFormatter.has(m)) { - strItem = (obj.exportFormatter.get(m)?.(n) || n[m]) + strItem = obj.exportFormatter.get(m)?.(n) || n[m]; } else if (obj.formatter && obj.formatter.has(m)) { - strItem = (obj.formatter.get(m)?.(n[m]) || n[m]) + strItem = obj.formatter.get(m)?.(n[m]) || n[m]; } else { strItem = n[m]; } @@ -136,16 +136,16 @@ export class JSONToCSV { (has = agent.indexOf('edge') !== -1 ? (type.edge = 'edge') : agent.match(/rv:([\d.]+)\) like gecko/)) ? (type.ie = has[1]) : (has = agent.match(/msie ([\d.]+)/)) - ? (type.ie = has[1]) - : (has = agent.match(/firefox\/([\d.]+)/)) - ? (type.firefox = has[1]) - : (has = agent.match(/chrome\/([\d.]+)/)) - ? (type.chrome = has[1]) - : (has = agent.match(/opera.([\d.]+)/)) - ? (type.opera = has[1]) - : (has = agent.match(/version\/([\d.]+).*safari/)) - ? (type.safari = has[1]) - : 0; + ? (type.ie = has[1]) + : (has = agent.match(/firefox\/([\d.]+)/)) + ? (type.firefox = has[1]) + : (has = agent.match(/chrome\/([\d.]+)/)) + ? (type.chrome = has[1]) + : (has = agent.match(/opera.([\d.]+)/)) + ? (type.opera = has[1]) + : (has = agent.match(/version\/([\d.]+).*safari/)) + ? (type.safari = has[1]) + : 0; return type; } @@ -219,7 +219,7 @@ export class JSONToCSV { data: resultArr, fileName: `${dataSource.fileName}_${childIndex}`, columns: columns, - formatter: dataSource.columnFormatter + formatter: dataSource.columnFormatter, }); }); } else { @@ -229,7 +229,7 @@ export class JSONToCSV { fileName: dataSource.fileName, columns: columns, formatter: dataSource.columnFormatter, - exportFormatter: dataSource.exportFormatter + exportFormatter: dataSource.exportFormatter, }); } } diff --git a/ide/src/doc/compile_trace_streamer.html b/ide/src/doc/compile_trace_streamer.html index c418fb39aa1ce7c6c8d9f27bfbfd106dd9712bfe..08b3de97f97826c5e075cc691ac4990db8172895 100644 --- a/ide/src/doc/compile_trace_streamer.html +++ b/ide/src/doc/compile_trace_streamer.html @@ -1,4 +1,4 @@ - + compile_trace_streamer @@ -805,33 +805,33 @@

- - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
系统工具版本号
系统工具版本号
linuxclang/clang++(Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
macxclang/clang++14.0.3
windowsgcc.exe/g++.exe(i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
wasm(linux下编译)emcc/em++3.1.12
linuxclang/clang++(Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
macxclang/clang++14.0.3
windowsgcc.exe/g++.exe(i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
wasm(linux下编译)emcc/em++3.1.12

对于wasm环境(目前只支持linux下编译),build.sh会自行配置环境。

@@ -846,38 +846,38 @@

- - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +
系统release版本debug版本生成二进制名称
系统release版本debug版本生成二进制名称
linuxout/linuxout/linux_debugtrace_streamer
macxout/macxout/macx_debugtrace_streamer
windowsout/windowsout/windows_debugtrace_streamer
wasm(linux下编译)-out/wasmtrace_streamer_builtin.wasm和trace_streamer_builtin.js
linuxout/linuxout/linux_debugtrace_streamer
macxout/macxout/macx_debugtrace_streamer
windowsout/windowsout/windows_debugtrace_streamer
wasm(linux下编译)-out/wasmtrace_streamer_builtin.wasm和trace_streamer_builtin.js

快速编译WebAssembly版本

@@ -889,24 +889,24 @@

WebAssembly版本目前只支持在linux平台下编译。

- + }; + diff --git a/ide/src/doc/des_binder.html b/ide/src/doc/des_binder.html index 0c9e8cbacdf7a1720cb75fb9d459317a1364e63d..623e2a3ed3e76e8c88f9a6a205c4c1863d66f4e6 100644 --- a/ide/src/doc/des_binder.html +++ b/ide/src/doc/des_binder.html @@ -1,4 +1,4 @@ - + des_binder diff --git a/ide/src/doc/des_stat.html b/ide/src/doc/des_stat.html index df51e09f71fedb8fd9e93e84b075841c9f28095f..9bef69217de5e827c15a7dbb7e1eeaead141f0dc 100644 --- a/ide/src/doc/des_stat.html +++ b/ide/src/doc/des_stat.html @@ -1,4 +1,4 @@ - + des_stat diff --git a/ide/src/doc/des_support_event.html b/ide/src/doc/des_support_event.html index d4b448540f894c856f5ba9512c8c03b30dc5d90c..dd1f2e773a2d72e9d9fc9351c976f68689f334b4 100644 --- a/ide/src/doc/des_support_event.html +++ b/ide/src/doc/des_support_event.html @@ -1,4 +1,4 @@ - + des_support_event diff --git a/ide/src/doc/des_tables.html b/ide/src/doc/des_tables.html index 99f02531a260c5ecba1ba13583b97c3b32a8f16c..2321cd77da124dc9efd433c92102e6455211dff7 100644 --- a/ide/src/doc/des_tables.html +++ b/ide/src/doc/des_tables.html @@ -1,4 +1,4 @@ - + @@ -791,4092 +791,4092 @@
-

TraceStreamer数据表概述

- -

- TraceStreamer可以将trace数据源转化为易于理解和使用的数据库。用户可以通过SmartPerf界面直观的研究系统跟踪数据,也可在理解TraceStreamer生成的数据库的基础上,在TraceStreamer的交互模式或者Smartperf的数据库查询模式下,使用SQL查询语句自由组装查看用户关心的数据。下文将对TraceStreamer生成的数据库进行详细描述,给用户使用SQL查询系统跟踪数据提供帮助。 -

-

TraceStreamer输出的数据表分类

- -
    -
  • - 常规泳道图数据表
    - GitHub Logo -
  • -
  • - native memory数据源相关表
    - GitHub Logo -
  • -
  • - perf相关数据表
    - GitHub Logo -
  • -
  • - hisysevent相关数据表
    - GitHub Logo -
  • -
-

TraceStreamer输出数据库包含以下表格

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
表名称作用
animation记录动效的响应时延和完成时延
app_name记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系
app_startup记录了应用启动相关数据
args记录方法参数集合
bio_latency_sample记录IO操作相关方法调用,及调用栈数据
callstack - 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号 -
clk_event_filter记录时钟相关的信息
clock_event_filter此结构用来维护时钟事件,cpu与唯一的ID做关联
clock_snapshot时钟号和时间,时钟名的映射表
cpu_measure_filtercpu事件过滤器表
cpu_usage记录CPU使用率事件
datasource_clockid数据源和时钟号的映射表
data_dict记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据
data_type记录数据类型和typeId的关联关系
device_info记录设备分辨率和帧率
device_state记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息
diskio记录磁盘读写数据事件
dynamic_frame记录动效帧的分辨率和结束时间等
ebpf_callstack记录了采样相关信息
file_system_sample记录了调用栈的相关信息
frame_maps记录应用到RS的帧的映射关系
frame_slice记录RS(RenderService)和应用的帧渲染
gpu_slice记录RS的帧对应的gpu渲染时长
hidump记录FPS(Frame Per Second)数据
hisys_event_measure记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件
instant记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用
irq记录中断相关事件
js_config记录了arkTs数据采集的相关配置
js_cpu_profiler_node记录了cpu profiler中node节点的数据
js_cpu_profiler_sample记录了cpu profiler中sample节点的数据
js_heap_edges记录了js内存数据类对象对应的成员的信息
js_heap_files记录了js内存数据的名称和时间
js_heap_info记录了js内存数据类型,如nodes和edges的字段类型和数据总数
js_heap_location记录了js内存location节点相关数据
js_heap_nodes记录了js内存类对象和其成员的对应关系
js_heap_sample记录了timeline模式下的时间轴信息
js_heap_string记录了js内存数据中的字符串
js_heap_trace_function_info记录了timeline模式下的调用栈的每个函数信息
js_heap_trace_node记录了timeline模式下的调用栈信息
live_process记录了一些实时的进程中执行的一些数据
log记录hilog打印日志数据
measure记录所有的计量值
measure_filter - 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录 -
memory_ashmem记录了进程所占用的ashmem相关信息
memory_dma记录了进程占用的DMA内存相关信息
memory_process_gpu记录进程占用GPU内存相关信息
memory_window_gpu记录窗口占用GPU内存相关信息
meta记录执行解析操作相关的基本信息
native_hook记录堆内存申请与释放相关的数据
native_hook_frame记录堆内存申请与释放相关的调用栈
native_hook_statistic记录堆内存申请与释放相关的统计信息
network抓取网络信息传输时产生的一些相关信息
paged_memory_sample记录内存操作相关方法调用,及调用栈数据
perf_callchain记录Hiperf采样数据的调用栈信息
perf_files记录Hiperf工具采集到的函数符号表和文件名
perf_report记录Hiperf工具采集数据时的配置信息。包括
perf_sample记录Hiperf工具的采样信息
perf_thread记录Hiperf工具采集到的进程和线程数据
process记录所有的进程信息
process_filter过滤进程
process_measure保存进程的所有计量值
process_measure_filter将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id
raw此数据结构主要作为ThreadState的上下文使用,这张表是sched_waking,sched_wakup, cpu_idle事件的原始记录
sched_slice此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录
smaps记录进程的内存消耗的相关信息采样
stat - 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 -
static_initalize记录了so初始化相关数据
symbols记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间
syscall记录用户空间函数与内核空间函数相互调用记录
sys_event_filter记录所有的filter
sys_mem_measure记录了所有的系统内存相关的测量信息
task_pool记录任务池相关数据,与callstack表相关联
thread记录所有的线程信息
thread_filter过滤线程
thread_state记录线程状态信息
trace_config记录trace数据源,proto的事件-plugin与其process_name
trace_range记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用
-

表与事件来源

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
表名称事件源插件名备注
animation-ftrace-plugin记录动效的响应时延和完成时延
app_name-hisysevent-pluginJSON数据源
args-ftrace-plugin配合callstack使用
bio_latency_sample--IO操作相关方法调用,及调用栈数据
callstack-ftrace-plugin异步或非异步的调用
cpu_measure_filter-ftrace-plugincpu跟踪器,cpu频率等
cpu_usage-cpu-plugincpu使用率
data_dict通用的-所有字符串的记录
data_type通用的-辅助表
device_info-ftrace-plugin记录设备分辨率和帧率
device_state通用的hisysevent-plugin记录设备屏幕亮度,蓝牙,位置等信息
dynamic_frame-ftrace-plugin动效帧的分辨率和结束时间等
ebpf_callstack--磁盘读写相关的数据
file_system_callstack--ebpf文件系统
file_system_sample--ebpf文件系统
frame_maps-ftrace-plugin帧渲染数据,app到RS的映射
frame_slice-ftrace-plugin帧渲染数据
gpu_slice-ftrace-plugingpu渲染时长
hidump-hidump-pluginFPS数据
hisys_event_measure-hisysevent-pluginJSON数据源
instant-ftrace-pluginwaking和wakeup事件
irq-ftrace-plugin记录中断事件
js_config-arkts-pluginarkTs数据采集的配置
js_cpu_profiler_node-arkts-plugin记录了cpu profiler中node节点的数据
js_cpu_profiler_sample-arkts-plugin记录了cpu profiler中sample节点的数据
js_heap_edges-arkts-pluginjs内存数据
js_heap_files-arkts-pluginjs内存数据
js_heap_info-arkts-pluginjs内存数据
js_heap_location-arkts-pluginjs内存数据
js_heap_nodes-arkts-pluginjs内存数据
js_heap_sample-arkts-pluginjs内存数据
js_heap_string-arkts-pluginjs内存数据
js_heap_trace_function_info-arkts-pluginjs内存数据
js_heap_trace_node-arkts-pluginjs内存数据
app_startup-ftrace-plugin应用启动数据
static_initalize-ftrace-pluginso初始化数据
live_process-process-pluginMonitor数据
network-network-pluginMonitor数据
diskio-diskio-pluginMonitor数据
log-hilog-plugin系统日志
measure通用的-系统中的计量值(数值型)
measure_filter通用的-计量值的查询辅助表
memory_ashmem-memory-plugin进程所占用ashmem相关信息
memory_dma-memory-plugin进程占用的DMA内存相关信息
memory_process_gpu-memory-plugin进程占用GPU内存相关信息
memory_window_gpu-memory-plugin窗口占用GPU内存相关信息
meta通用的-记录解析现场数据(解析时间,数据类型,解析工具等)
native_hook-nativehook/hookdaemonmalloc && mmap内存数据
native_hook_frame-nativehook/hookdaemonnative_hook调用栈数据
native_hook_statistic-nativehook/hookdaemonmalloc && mmap统计数据
paged_memory_sample--网络数据传输相关的信息
perf_callchain-perf-pluginperf数据(非插件模式)
perf_files--perf数据(非插件模式)
perf_report--perf数据(非插件模式)
perf_sample--perf数据(非插件模式)
perf_thread--perf数据(非插件模式)
process-ftrace-plugin进程信息
process_filter-ftrace-plugin进程计量表的辅助表
process_measure-ftrace-plugin进程内存
process_measure_filter-ftrace-pluginprocess_measure的辅助表
raw-ftrace-plugin线程唤醒信息
sched_slice-ftrace-plugin配合现场状态表使用,dsched_switch的原始数据
smaps-memory-plugin进程的内存消耗
stat通用的-记录不同种类数据的数据量
symbols-ftrace-plugin符号表(地址到字符串的映射)
syscall-ftrace-plugin系统调用 sys_enter/exit
sys_event_filter-ftrace-plugin
sys_mem_measure-memory-plugin系统内存
thread通用的-线程信息(常用)
thread_state通用的ftrace-plugin线程调度图(常用)
trace_config通用的hisysevent-plugin记录trace数据源
trace_range通用的-trace数据的时长
thread_filter通用的ftrace-plugin线程计量跟踪表(比较少用)
clock_snapshot通用的通用的时钟号和时间,时钟名的映射表
datasource_clockid通用的通用的数据源和时钟号的映射表
task_pool--任务池数据
-

- 表格关系图 -

- -
-

进程表与线程表关系

- -

- 当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。
- Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。
- thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。
- GitHub Logo -

-

查询举例

- -
    -
  • - 已知pid = 123,查看当前进程下的所有线程信息,可以使用如下SQL语句:
    - select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id -
  • -
-

线程表与线程运行状态表关系图

-

- thread_state表记录所有线程的运行状态信息,包含ts(状态起始时间),dur(状态持续时间),cpu, itid, - state(线程状态)。 thread表的id字段与thread_state表的itid字段相关联。
- GitHub Logo -

-

查询举例

-
    -
  • - 已知tid = 123, 查看当前线程的所有运行状态信息,可以使用如下SQL语句:
    - select thread_state.* from thread, thread_state where thread.tid = 123 and thread.id = - thread_state.itid -
  • -
-

堆内存数据变化表关系图

- -

- native_hook表记录堆内存申请(AllocEvent)和释放(FreeEvent)数据。native_hook表通过ipid和itid字段分别与process和thread表的id字段关联,通过callChainId与native_hook_frame表的callChainId字段相关联。
- native_hook表字段解释如下: -

-
    -
  • - callChainId:唯一标识一次堆内存申请或释放, - 通过与native_hook_frame表关联可以拿到当前申请或释放的函数调用堆栈。 -
  • -
  • addr:堆内存申请/释放的地址。
  • -
  • native_hook_size:堆内存申请/释放的大小。
  • -
-

- native_hook_frame表记录内存申请/释放的调用堆栈。通过callChainId区分一组调用堆栈,depth为堆栈深度,depth为0时,表示当前行为栈顶数据。
- GitHub Logo -

-

- native_hook_statistic表记录内存申请/释放的统计信息。通过callChainId区分一组调用堆栈。每个统计事件将记录当前事件的callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。
- GitHub Logo -

-

查询举例

- -
    -
  • - 已知tid = 123,查看当前线程的所有堆内存变化信息,可以使用如下SQL语句:
    - select native_hook.* from thread, native_hook where thread.tid = 123 and thread.id = native_hook.itid -
  • -
  • - 已知callchainid = 1, 查看当前内存变化调用堆栈
    - select * from native_hook_frame where callchain_id = 1 -
  • -
  • - 已知callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息
    - select * from native_hook_statistic where callchain_id = 1 -
  • -
-

日志表与进程线程表关系图

-

- log表记录日志信息。可以根据seq字段的连续性,来判断是否存在日志丢失的情况。
- GitHub Logo -

-

查询举例

-
    -
  • - 已知tid = 123,查看当前线程的所有error级别的日志,可以使用如下SQL语句:
    - select * from log where tid = 123 and level = "error" -
  • -
-

perf表之间关系图

- -
    -
  • perf_report:此表记录Hiperf工具采集数据时的配置信息。
  • -
  • perf_thread:此表记录hiperf采集到的进程和线程数据。
  • -
  • - perf_sample:此表中记录Hiperf工具的采样信息。sample_id唯一表识一次采样记录,与perf_callchain表中的sample_id字段相关联。thread_id为线程号。与perf_thread表中的thread_id字段相关联。event_type_id为当前采样的事件类型id,与perf_report表中的id字段相关联。 -
  • -
  • perf_callchain:此表格记录的是调用栈信息。
  • -
  • - Perf_files:此表格主要存放着获取到的函数符号表和文件信息。file_id唯一表识一个文件,与perf_callchain表中的file_id字段相关联。 -
  • -
-

GitHub Logo

-

查询举例

- -
    -
  • +

    TraceStreamer数据表概述

    + +

    + TraceStreamer可以将trace数据源转化为易于理解和使用的数据库。用户可以通过SmartPerf界面直观的研究系统跟踪数据,也可在理解TraceStreamer生成的数据库的基础上,在TraceStreamer的交互模式或者Smartperf的数据库查询模式下,使用SQL查询语句自由组装查看用户关心的数据。下文将对TraceStreamer生成的数据库进行详细描述,给用户使用SQL查询系统跟踪数据提供帮助。 +

    +

    TraceStreamer输出的数据表分类

    + +
      +
    • + 常规泳道图数据表
      + GitHub Logo +
    • +
    • + native memory数据源相关表
      + GitHub Logo +
    • +
    • + perf相关数据表
      + GitHub Logo +
    • +
    • + hisysevent相关数据表
      + GitHub Logo +
    • +
    +

    TraceStreamer输出数据库包含以下表格

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    表名称作用
    animation记录动效的响应时延和完成时延
    app_name记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系
    app_startup记录了应用启动相关数据
    args记录方法参数集合
    bio_latency_sample记录IO操作相关方法调用,及调用栈数据
    callstack + 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号 +
    clk_event_filter记录时钟相关的信息
    clock_event_filter此结构用来维护时钟事件,cpu与唯一的ID做关联
    clock_snapshot时钟号和时间,时钟名的映射表
    cpu_measure_filtercpu事件过滤器表
    cpu_usage记录CPU使用率事件
    datasource_clockid数据源和时钟号的映射表
    data_dict记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据
    data_type记录数据类型和typeId的关联关系
    device_info记录设备分辨率和帧率
    device_state记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息
    diskio记录磁盘读写数据事件
    dynamic_frame记录动效帧的分辨率和结束时间等
    ebpf_callstack记录了采样相关信息
    file_system_sample记录了调用栈的相关信息
    frame_maps记录应用到RS的帧的映射关系
    frame_slice记录RS(RenderService)和应用的帧渲染
    gpu_slice记录RS的帧对应的gpu渲染时长
    hidump记录FPS(Frame Per Second)数据
    hisys_event_measure记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件
    instant记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用
    irq记录中断相关事件
    js_config记录了arkTs数据采集的相关配置
    js_cpu_profiler_node记录了cpu profiler中node节点的数据
    js_cpu_profiler_sample记录了cpu profiler中sample节点的数据
    js_heap_edges记录了js内存数据类对象对应的成员的信息
    js_heap_files记录了js内存数据的名称和时间
    js_heap_info记录了js内存数据类型,如nodes和edges的字段类型和数据总数
    js_heap_location记录了js内存location节点相关数据
    js_heap_nodes记录了js内存类对象和其成员的对应关系
    js_heap_sample记录了timeline模式下的时间轴信息
    js_heap_string记录了js内存数据中的字符串
    js_heap_trace_function_info记录了timeline模式下的调用栈的每个函数信息
    js_heap_trace_node记录了timeline模式下的调用栈信息
    live_process记录了一些实时的进程中执行的一些数据
    log记录hilog打印日志数据
    measure记录所有的计量值
    measure_filter + 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录 +
    memory_ashmem记录了进程所占用的ashmem相关信息
    memory_dma记录了进程占用的DMA内存相关信息
    memory_process_gpu记录进程占用GPU内存相关信息
    memory_window_gpu记录窗口占用GPU内存相关信息
    meta记录执行解析操作相关的基本信息
    native_hook记录堆内存申请与释放相关的数据
    native_hook_frame记录堆内存申请与释放相关的调用栈
    native_hook_statistic记录堆内存申请与释放相关的统计信息
    network抓取网络信息传输时产生的一些相关信息
    paged_memory_sample记录内存操作相关方法调用,及调用栈数据
    perf_callchain记录Hiperf采样数据的调用栈信息
    perf_files记录Hiperf工具采集到的函数符号表和文件名
    perf_report记录Hiperf工具采集数据时的配置信息。包括
    perf_sample记录Hiperf工具的采样信息
    perf_thread记录Hiperf工具采集到的进程和线程数据
    process记录所有的进程信息
    process_filter过滤进程
    process_measure保存进程的所有计量值
    process_measure_filter将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id
    raw此数据结构主要作为ThreadState的上下文使用,这张表是sched_waking,sched_wakup, cpu_idle事件的原始记录
    sched_slice此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录
    smaps记录进程的内存消耗的相关信息采样
    stat + 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 +
    static_initalize记录了so初始化相关数据
    symbols记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间
    syscall记录用户空间函数与内核空间函数相互调用记录
    sys_event_filter记录所有的filter
    sys_mem_measure记录了所有的系统内存相关的测量信息
    task_pool记录任务池相关数据,与callstack表相关联
    thread记录所有的线程信息
    thread_filter过滤线程
    thread_state记录线程状态信息
    trace_config记录trace数据源,proto的事件-plugin与其process_name
    trace_range记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用
    +

    表与事件来源

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    表名称事件源插件名备注
    animation-ftrace-plugin记录动效的响应时延和完成时延
    app_name-hisysevent-pluginJSON数据源
    args-ftrace-plugin配合callstack使用
    bio_latency_sample--IO操作相关方法调用,及调用栈数据
    callstack-ftrace-plugin异步或非异步的调用
    cpu_measure_filter-ftrace-plugincpu跟踪器,cpu频率等
    cpu_usage-cpu-plugincpu使用率
    data_dict通用的-所有字符串的记录
    data_type通用的-辅助表
    device_info-ftrace-plugin记录设备分辨率和帧率
    device_state通用的hisysevent-plugin记录设备屏幕亮度,蓝牙,位置等信息
    dynamic_frame-ftrace-plugin动效帧的分辨率和结束时间等
    ebpf_callstack--磁盘读写相关的数据
    file_system_callstack--ebpf文件系统
    file_system_sample--ebpf文件系统
    frame_maps-ftrace-plugin帧渲染数据,app到RS的映射
    frame_slice-ftrace-plugin帧渲染数据
    gpu_slice-ftrace-plugingpu渲染时长
    hidump-hidump-pluginFPS数据
    hisys_event_measure-hisysevent-pluginJSON数据源
    instant-ftrace-pluginwaking和wakeup事件
    irq-ftrace-plugin记录中断事件
    js_config-arkts-pluginarkTs数据采集的配置
    js_cpu_profiler_node-arkts-plugin记录了cpu profiler中node节点的数据
    js_cpu_profiler_sample-arkts-plugin记录了cpu profiler中sample节点的数据
    js_heap_edges-arkts-pluginjs内存数据
    js_heap_files-arkts-pluginjs内存数据
    js_heap_info-arkts-pluginjs内存数据
    js_heap_location-arkts-pluginjs内存数据
    js_heap_nodes-arkts-pluginjs内存数据
    js_heap_sample-arkts-pluginjs内存数据
    js_heap_string-arkts-pluginjs内存数据
    js_heap_trace_function_info-arkts-pluginjs内存数据
    js_heap_trace_node-arkts-pluginjs内存数据
    app_startup-ftrace-plugin应用启动数据
    static_initalize-ftrace-pluginso初始化数据
    live_process-process-pluginMonitor数据
    network-network-pluginMonitor数据
    diskio-diskio-pluginMonitor数据
    log-hilog-plugin系统日志
    measure通用的-系统中的计量值(数值型)
    measure_filter通用的-计量值的查询辅助表
    memory_ashmem-memory-plugin进程所占用ashmem相关信息
    memory_dma-memory-plugin进程占用的DMA内存相关信息
    memory_process_gpu-memory-plugin进程占用GPU内存相关信息
    memory_window_gpu-memory-plugin窗口占用GPU内存相关信息
    meta通用的-记录解析现场数据(解析时间,数据类型,解析工具等)
    native_hook-nativehook/hookdaemonmalloc && mmap内存数据
    native_hook_frame-nativehook/hookdaemonnative_hook调用栈数据
    native_hook_statistic-nativehook/hookdaemonmalloc && mmap统计数据
    paged_memory_sample--网络数据传输相关的信息
    perf_callchain-perf-pluginperf数据(非插件模式)
    perf_files--perf数据(非插件模式)
    perf_report--perf数据(非插件模式)
    perf_sample--perf数据(非插件模式)
    perf_thread--perf数据(非插件模式)
    process-ftrace-plugin进程信息
    process_filter-ftrace-plugin进程计量表的辅助表
    process_measure-ftrace-plugin进程内存
    process_measure_filter-ftrace-pluginprocess_measure的辅助表
    raw-ftrace-plugin线程唤醒信息
    sched_slice-ftrace-plugin配合现场状态表使用,dsched_switch的原始数据
    smaps-memory-plugin进程的内存消耗
    stat通用的-记录不同种类数据的数据量
    symbols-ftrace-plugin符号表(地址到字符串的映射)
    syscall-ftrace-plugin系统调用 sys_enter/exit
    sys_event_filter-ftrace-plugin
    sys_mem_measure-memory-plugin系统内存
    thread通用的-线程信息(常用)
    thread_state通用的ftrace-plugin线程调度图(常用)
    trace_config通用的hisysevent-plugin记录trace数据源
    trace_range通用的-trace数据的时长
    thread_filter通用的ftrace-plugin线程计量跟踪表(比较少用)
    clock_snapshot通用的通用的时钟号和时间,时钟名的映射表
    datasource_clockid通用的通用的数据源和时钟号的映射表
    task_pool--任务池数据
    +

    + 表格关系图 +

    + +
    +

    进程表与线程表关系

    + +

    + 当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。
    + Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。
    + thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。
    + GitHub Logo +

    +

    查询举例

    + +
      +
    • + 已知pid = 123,查看当前进程下的所有线程信息,可以使用如下SQL语句:
      + select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id +
    • +
    +

    线程表与线程运行状态表关系图

    +

    + thread_state表记录所有线程的运行状态信息,包含ts(状态起始时间),dur(状态持续时间),cpu, itid, + state(线程状态)。 thread表的id字段与thread_state表的itid字段相关联。
    + GitHub Logo +

    +

    查询举例

    +
      +
    • + 已知tid = 123, 查看当前线程的所有运行状态信息,可以使用如下SQL语句:
      + select thread_state.* from thread, thread_state where thread.tid = 123 and thread.id = + thread_state.itid +
    • +
    +

    堆内存数据变化表关系图

    + +

    + native_hook表记录堆内存申请(AllocEvent)和释放(FreeEvent)数据。native_hook表通过ipid和itid字段分别与process和thread表的id字段关联,通过callChainId与native_hook_frame表的callChainId字段相关联。
    + native_hook表字段解释如下: +

    +
      +
    • + callChainId:唯一标识一次堆内存申请或释放, + 通过与native_hook_frame表关联可以拿到当前申请或释放的函数调用堆栈。 +
    • +
    • addr:堆内存申请/释放的地址。
    • +
    • native_hook_size:堆内存申请/释放的大小。
    • +
    +

    + native_hook_frame表记录内存申请/释放的调用堆栈。通过callChainId区分一组调用堆栈,depth为堆栈深度,depth为0时,表示当前行为栈顶数据。
    + GitHub Logo +

    - 已知同步后的时间戳为28463134340470,查询采样数据
    - select * from perf_sample where timestamp_trace = 28463134340470 + native_hook_statistic表记录内存申请/释放的统计信息。通过callChainId区分一组调用堆栈。每个统计事件将记录当前事件的callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。
    + GitHub Logo

    -
  • -
  • +

    查询举例

    + +
      +
    • + 已知tid = 123,查看当前线程的所有堆内存变化信息,可以使用如下SQL语句:
      + select native_hook.* from thread, native_hook where thread.tid = 123 and thread.id = native_hook.itid +
    • +
    • + 已知callchainid = 1, 查看当前内存变化调用堆栈
      + select * from native_hook_frame where callchain_id = 1 +
    • +
    • + 已知callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息
      + select * from native_hook_statistic where callchain_id = 1 +
    • +
    +

    日志表与进程线程表关系图

    - 已知同步后的时间戳为28463134340470,查询采样数据对应的的调用栈信息
    - select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and - A.sample_id = B.sample_id + log表记录日志信息。可以根据seq字段的连续性,来判断是否存在日志丢失的情况。
    + GitHub Logo

    -
  • -
  • +

    查询举例

    +
      +
    • + 已知tid = 123,查看当前线程的所有error级别的日志,可以使用如下SQL语句:
      + select * from log where tid = 123 and level = "error" +
    • +
    +

    perf表之间关系图

    + +
      +
    • perf_report:此表记录Hiperf工具采集数据时的配置信息。
    • +
    • perf_thread:此表记录hiperf采集到的进程和线程数据。
    • +
    • + perf_sample:此表中记录Hiperf工具的采样信息。sample_id唯一表识一次采样记录,与perf_callchain表中的sample_id字段相关联。thread_id为线程号。与perf_thread表中的thread_id字段相关联。event_type_id为当前采样的事件类型id,与perf_report表中的id字段相关联。 +
    • +
    • perf_callchain:此表格记录的是调用栈信息。
    • +
    • + Perf_files:此表格主要存放着获取到的函数符号表和文件信息。file_id唯一表识一个文件,与perf_callchain表中的file_id字段相关联。 +
    • +
    +

    GitHub Logo

    +

    查询举例

    + +
      +
    • +

      + 已知同步后的时间戳为28463134340470,查询采样数据
      + select * from perf_sample where timestamp_trace = 28463134340470 +

      +
    • +
    • +

      + 已知同步后的时间戳为28463134340470,查询采样数据对应的的调用栈信息
      + select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and + A.sample_id = B.sample_id +

      +
    • +
    • +

      + 已知同步后的时间戳为28463134277762,查询采样数据的函数名及文件路径
      + select A.*, B.name, C.path from perf_sample as A, perf_callchain as B, perf_files as C where + A.timestamp_trace = 28463134277762 and B.sample_id = A.sample_id and B.callchain_id = 0 and B.file_id = + C.file_id and C.serial_id = 0 +

      +
    • +
    • +

      + 已知线程号为6700,查询所有的采样记录
      + select * from perf_sample where thread_id = 6700 +

      +
    • +
    • +

      + 已知进程号为7863,查询所有的采样记录
      + select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = + B.thread_id +

      +
    • +
    • +

      + 查询所有采样对应的事件类型
      + select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id +

      +
    • +
    +

    帧渲染表之间的关系图

    + +

    + frame_slice: 记录RS(RenderService)和应用的帧渲染。
    + gpu_slice: 记录RS的帧对应的gpu渲染时长。
    + frame_maps:记录应用到RS的帧的映射关系。
    + GitHub Logo +

    +

    查询示例

    + +
      +
    • +

      + 已知进程,查询进程对应的实际渲染帧
      + select * from frame_slice where ipid = 1 +

      +
    • +
    • +

      + 已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧
      + select * from frame_slice where id = 12 +

      +
    • +
    • +

      + 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长
      + select * from gpu_slice where frame_row = 14 +

      +
    • +
    +

    JS内存数据表关系图

    +

    js_heap_files:记录js内存数据的文件名和文件索引

    +

    +

    + js_heap_nodes:记录js内存类对象数据
    + js_heap_edges:记录js内存类对象的成员数据
    + js_heap_trace_node:记录timeline的调用栈信息
    + js_heap_sample:记录timeline的时间轴信息
    + +

    +

    TraceStreamer输出数据库表格详细介绍

    +

    app_name表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    flagINT
    app_nameINT
    app_keyINT
    +

    表描述

    +

    记录HiSysevent上报事件中的IDE相关事件中APPNAME的表关联信息。

    +

    字段详细描述

    +
      +
    • id:用于与表hisys_event_measure表中的key_id字段做对应
    • +
    • app_name:对应的事件的信息ID
    • +
    • app_key:对应的事件的APPNAME字段的信息ID
    • +
    +

    args表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    keyINT
    datatypeINT
    valueINT
    argsetINT
    +

    表描述

    +

    记录方法的参数集合。

    +

    字段详细描述

    +
      +
    • key:键
    • +
    • datatype:数据类型
    • +
    • value:取值
    • +
    • argset:参数集合
    • +
    +

    bio_latency_sample表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    datatypeINT
    typeINT
    ipidINT
    itidINT
    start_tsINT
    end_tsINT
    latency_durINT
    tierINT
    sizeINT
    block_numberTEXT
    pathTEXT
    dur_per_4kINT
    +

    表描述

    +

    记录IO操作相关方法调用,及调用栈数据。

    +

    字段详细描述

    +
      +
    • callchain_id:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联
    • +
    • + type:事件类型其取值为枚举类型(DATA_READ,DATA_WRITE,METADATA_READ,- METADATA_WRITE,PAGE_IN,PAGE_OUT) +
    • +
    • ipid:TS内部进程号
    • +
    • itid:TS内部线程号
    • +
    • start_ts:开始时间
    • +
    • end_ts:结束时间
    • +
    • latency_dur:总延迟
    • +
    • tier:优先级
    • +
    • size:文件大小
    • +
    • block_number:数据量大小(一般为4K)
    • +
    • path:路径id
    • +
    • dur_per_4k:每4k数据的平均延迟
    • +
    +

    callstack表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    tsINT
    durINT
    callidINT
    catTEXT
    identifyINT
    nameTEXT
    depthINT
    cookieINT
    parent_idINT
    argsetidINT
    chainIdTEXT
    spanIdTEXT
    parentSpanIdTEXT
    flagTEXT
    argsTEXT
    +

    表描述

    +

    + 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步的调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号。 +

    +

    字段详细描述

    +
      +
    • dur:调用时长
    • +
    • callid:调用者的ID,比如针对线程表里面的id
    • +
    • identify:调用栈的名字,与表dataDict相关联能够取出其string值
    • +
    • name:调用名称
    • +
    • depth:调用深度
    • +
    • parent_id:父调用的id
    • +
    • spanId:分布式调用关联关系
    • +
    • flag:C表示分布式调用发送方,S表示接受方
    • +
    • args:分布式调用函数参数
    • +
    +

    clk_event_filter表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    nameTEXT
    cpuINT
    +

    表描述

    +

    记录时钟信息。

    +

    字段详细描述

    +
      +
    • Type:时钟事件类型
    • +
    • Name:时钟事件名称
    • +
    +

    clock_event_filter表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    nameTEXT
    cpuINT
    +

    表描述

    +

    此结构用来维护时钟事件,cpu与唯一的ID做关联。

    +

    主要字段描述

    +
      +
    • Type:时钟事件类型
    • +
    • Name:时钟事件名称
    • +
    +

    cpu_measure_filter表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    nameTEXT
    cpuINT
    +

    表描述

    +

    将cpu号作为key1,cpu的频率,空闲等状态作为key2,唯一确定一个filter_id。

    +

    主要字段描述

    +
      +
    • Id(filterid), cpu:事件名称,cpu号
    • +
    +

    cpu_usage表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    tsINT
    durINT
    total_loadREAL
    user_loadREAL
    system_loadREAL
    process_numINT
    +

    表描述

    +

    记录了与CPU使用率相关的数据。

    +

    主要字段描述

    +
      +
    • total_load:总负荷
    • +
    • user_load:用户负载
    • +
    • system_load:系统负载
    • +
    • process_num:线程数
    • +
    +

    data_dict表

    +

    表结构

    + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    dataTEXT
    +

    表描述

    +

    此表记录了一个数据类型ID和字符串的映射。

    +

    主要字段描述

    +
      +
    • id:索引值
    • +
    • data:字符串
    • +
    +

    data_type表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeIdINT
    descTEXT
    +

    表描述

    +

    此表记录了一个数据类型ID和数据描述的映射。

    +

    主要字段描述

    +
      +
    • typeId::数据类型id
    • +
    • Desc:数据类型描述
    • +
    +

    diskio表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    tsINT
    durINT
    rdINT
    wrINT
    rd_speedREAL
    wr_speedREAL
    rd_countINT
    wr_countINT
    rd_count_speedREAL
    wr_count_speedREAL
    +

    表描述

    +

    记录了与磁盘读写相关的数据。

    +

    主要字段描述

    +
      +
    • rd_sectors_kb:读数据的速度
    • +
    • wr_sectors_kb:写入数据的速度
    • +
    • ts:时间戳
    • +
    +

    ebpf_callstack表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    depthTEXT
    ipTEXT
    symbols_idINT
    file_path_idINT
    +

    表描述

    +

    记录了与磁盘读写相关的数据。

    +

    主要字段描述

    +
      +
    • callchain_id:调用栈的唯一标识
    • +
    • depth:调用栈深度。取值为零时表示栈顶
    • +
    • ip:调用栈ip
    • +
    • symbols_id:调用栈函数名称, 与data_dict中的id字段关联
    • +
    • file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联
    • +
    +

    file_system_sample表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    callchain_idINT
    typeINT
    ipidINT
    itidINT
    start_tsINT
    end_tsINT
    durINT
    return_valueTEXT
    error_codeTEXT
    fdINT
    file_idINT
    sizeINT
    first_argumentTEXT
    second_argumentTEXT
    third_argumentTEXT
    fourth_argumentTEXT
    +

    表描述

    +

    记录了调用栈的相关信息。

    +

    主要字段描述

    +
      +
    • callchain_id:调用栈信息ID与file_system_callstack表中call_chain_id字段相关联
    • +
    • type:对应文件操作open,close,read,write
    • +
    • ipid:线程所属的进程ID
    • +
    • start_ts:开始时间
    • +
    • end_ts:结束时间
    • +
    • dur:耗时
    • +
    • return_value:文件操作的返回值
    • +
    • error_code:文件操作发生错误时的错误码
    • +
    • fd:文件描述符fd
    • +
    • file_id:当type为open,close时为其操作的文件路径,当type为read,write时为固定字段(null)
    • +
    • size:在type为read,write时对应的文件的读或者写的大小
    • +
    • first_argument:参数一
    • +
    • second_argument:参数二
    • +
    • third_argument:参数三
    • +
    • fourth_argument:参数四
    • +
    +

    hidump表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    tsINT
    fpsINT
    +

    表描述

    +

    此表记录了设备的帧率信息,fps。

    +

    相关字段描述

    +
      +
    • fps:帧率值
    • +
    +

    hisys_event_measure表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    serialINT
    tsINT
    name_idINT
    key_idINT
    typeINT
    int_valueREAL
    string_valueTEXT
    +

    表描述

    +

    记录所有的system event事件的相关数据,及其相关表的映射信息。

    +

    相关字段描述

    +
      +
    • serial:每条数据过来携带唯一一条id作为标识
    • +
    • name_id:存放事件对应的ID,与data_dict表相关联可以取出对应的字段
    • +
    • + key_id:存放事件包含的字段的ID,与表app_name的id字段相关联,找到app_name表的 + id字段对应行的app_key字段与表data_dict表相关联取出对应的字段 +
    • +
    • type:存放事件所包含的字段的值所属的类型为int型还是string(0为int,1为string)
    • +
    • int_value:存放本事件所包含的字段的int型的值
    • +
    • string_value:存放本事件所包含的字段的string型的值
    • +
    +

    instant表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    tsINT
    nameTEXT
    refINT
    wakeup_fromINT
    ref_typeTEXT
    valueREAL
    +

    表描述

    +

    记录了系统中的waking和wakeup事件。

    +

    字段描述

    +
      +
    • ts:唤醒时间
    • +
    • name:唤醒事件的名称
    • +
    • ref:索引号
    • +
    • wakeup_from:唤醒当前线程的内部线程号(itid)
    • +
    • ref_type:描述了value字段的类型(一般取值为itid)
    • +
    • value:一般为当前线程的内部线程号取值
    • +
    +

    irq表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    tsINT
    durINT
    callidINT
    catTEXT
    nameTEXT
    depthINT
    cookieINT
    parent_idINT
    argsetidINT
    chainIdTEXT
    spanIdTEXT
    parentSpanIdTEXT
    flagTEXT
    argsTEXT
    +

    表描述

    +

    记录中断相关事件。

    +

    相关字段描述

    +
      +
    • dur:调用中断时长
    • +
    • callid:调用中断者的ID,比如针对线程表里面的id
    • +
    • cat:调用栈数据类型(取值范围:irq,softirq...)
    • +
    • name:调用中断的名称
    • +
    • depth:中断调用的深度
    • +
    • parent_id:父调用中断的id
    • +
    • spanId:分布式调用中断关联关系
    • +
    +

    js_config表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    pidINT
    typeINT
    intervalINT
    capture_numeric_valueINT
    trace_allocationINT
    enable_cpu_profilerINT
    cpu_profiler_intervalINT
    +

    表描述

    +

    记录arkTs数据采集的相关配置。

    +

    相关字段描述

    +
      +
    • pid:目标进程ID。
    • +
    • + type:JS数据类型,取值与枚举HeapType对应,0表示JS内存数据为snapshot类型,1表示JS内存数据为timeline类型,-1表示没有JS内存数据。 +
    • +
    • interval:当type=0时生效,单位是秒,表示一次snapshot事件和下一次snapshot事件之间的间隔。
    • +
    • capture_numeric_value:当type=0时生效,表示是否同时抓取numeric。
    • +
    • track_allocation:当type=1时生效,表示是否抓取allocations。
    • +
    • enable_cpu_profiler:表示是否存在cpuprofiler的数据。
    • +
    • cpu_profiler_interval:表示cpuprofiler数据的采集间隔。
    • +
    +

    js_cpu_profiler_node表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    function_idINT
    function_indexINT
    script_idINT
    url_indexINT
    line_numberINT
    column_numberINT
    hit_countINT
    childrenINT
    parent_idINT
    +

    表描述

    +

    记录cpu profiler中node节点的数据。

    +

    相关字段描述

    +
      +
    • function_id: 函数的ID号。
    • +
    • function_index:函数名称在data_dict中的索引号。
    • +
    • script_id:关联到的类对象所在文件的绝对路径ID。
    • +
    • url_index:关联到的类对象所在文件的绝对路径名称在data_dict中的索引号。
    • +
    • line_number:类对象所在文件的行号。
    • +
    • column_number:类对象所在文件的列号。
    • +
    • hit_count:采样次数。
    • +
    • children:子节点的id号。
    • +
    • parent_id:父节点的id号。
    • +
    +

    js_cpu_profiler_sample表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    function_idINT
    start_timeINT
    end_timeINT
    durINT
    +

    表描述

    +

    记录了cpu profiler 中sample节点的数据。

    +

    相关字段描述

    +
      +
    • id: ts内部ID号。
    • +
    • function_id:函数的ID号。
    • +
    • start_time:数据上报的起始时间。
    • +
    • end_time:数据上报的终止时间。
    • +
    • dur:数据上报的间隔时间。
    • +
    +

    js_heap_edges表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    edge_indexINT
    typeINT
    name_or_indexINT
    to_nodeINT
    from_node_idINT
    to_node_idINT
    +

    表描述

    +

    记录js内存数据类对象对应的成员的信息。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • edge_index:成员的索引号
    • +
    • type:成员的类型,取值范围为js_heap_info表中的edge_types
    • +
    • name_or_index:数据名称,取值为js_heap_string表中的下标索引
    • +
    • to_node:此成员指向的类对象在nodes数组中的索引
    • +
    • from_node_id:类对象ID,该类对象指向此成员数据
    • +
    • to_node_id:此成员指向到的类对象nodes数组中的ID
    • +
    +

    js_heap_files表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    file_nameTEXT
    start_timeINT
    end_timeINT
    pidINT
    +

    表描述

    +

    记录了js内存数据的文件名称和时间。

    +

    相关字段描述

    +
      +
    • id:文件ID
    • +
    • file_name:文件名称
    • +
    • start_time:数据抓取的起始时间
    • +
    • end_time:数据抓取的终止时间
    • +
    • pid:进程号
    • +
    +

    js_heap_info表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    keyTEXT
    typeINT
    int_valueINT
    str_valueTEXT
    +

    表描述

    +

    记录了js内存数据类型,如nodes和edges的字段类型和数据总数。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • key:类型名称
    • +
    • type:数据类型索引
    • +
    • int_value:int类型的数据值,如count类型数据
    • +
    • str_value:string类型的数据值,如typename
    • +
    +

    js_heap_location表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    object_indexINT
    script_idINT
    lineINT
    columnINT
    +

    表描述

    +

    记录了js内存location节点相关数据,此表目前无抓取到的数据。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引
    • +
    • script_id:关联到的类对象所在文件的绝对路径ID
    • +
    • line:在类对象所在的文件中的行号
    • +
    • column:在类对象所在的文件中的列号
    • +
    +

    js_heap_nodes表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    node_indexTEXT
    typeINT
    nameINT
    idTEXT
    self_sizeINT
    edge_countINT
    trace_node_idINT
    detachednessINT
    +

    表描述

    +

    记录了js内存数据中类对象的数据。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • node_index:类对象的索引
    • +
    • type:类对象的类型
    • +
    • name:类对象的名称
    • +
    • id:类对象的唯一ID
    • +
    • self_size:该类对象所有成员的大小(以字节为单位)
    • +
    • edge_count:该类对象指向的类成员的个数
    • +
    • trace_node_id:该类对象关联到js_heap_trace_node表中的调用栈ID
    • +
    • detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否
    • +
    +

    js_heap_sample表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    timestamp_usINT
    last_assigned_idINT
    +

    表描述

    +

    记录了timeline模式下的时间轴信息。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • timestamp_us:时间信息
    • +
    • last_assigned_id:当前时间点的id
    • +
    +

    js_heap_string表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    file_indexINT
    stringTEXT
    +

    表描述

    +

    记录了js内存数据中的字符串。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • file_index:索引
    • +
    • string:对应的字符串信息
    • +
    +

    js_heap_trace_function_info表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    function_indexINT
    function_idINT
    nameINT
    script_nameINT
    script_idINT
    lineINT
    columnINT
    +

    表描述

    +

    记录了timeline模式下的调用栈的每个函数信息。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • function_index:函数索引
    • +
    • function_id:函数ID
    • +
    • name:函数名称
    • +
    • script_name:关联到的类对象所在文件的绝对路径名称
    • +
    • script_id:关联到的类对象所在文件的绝对路径ID
    • +
    • line:在类对象所在的文件中的行号
    • +
    • column:在类对象所在的文件中的列号
    • +
    +

    js_heap_trace_node表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    file_idINT
    idINT
    function_info_indexINT
    countINT
    sizeINT
    parent_idINT
    +

    表描述

    +

    记录了timeline模式下的调用栈的信息。

    +

    相关字段描述

    +
      +
    • file_id:文件ID
    • +
    • id:调用栈节点索引
    • +
    • function_info_index:函数信息索引
    • +
    • count:调用栈个数
    • +
    • size:调用栈大小
    • +
    • parent_id:调用栈父节点
    • +
    +

    app_startup表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    call_idINT
    ipidINT
    tidINT
    start_timeINT
    end_timeINT
    start_nameINT
    packed_nameINT
    +

    表描述

    +

    记录了应用启动的相关信息。

    +

    相关字段描述

    +
      +
    • call_id:调用者的ID,比如针对线程表里面的id
    • +
    • ipid:内部进程号
    • +
    • tid:内部线程号
    • +
    • start_time:阶段开始时间
    • +
    • end_time:阶段结束时间
    • +
    • start_name:阶段名称
    • +
    • packed_name:应用名称
    • +
    +

    static_intialize表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    call_idINT
    ipidINT
    tidINT
    start_timeINT
    end_timeINT
    so_nameINT
    depthINT
    +

    表描述

    +

    记录了so初始化的相关信息。

    +

    相关字段描述

    +
      +
    • call_id:调用者的ID,比如针对线程表里面的id
    • +
    • ipid:内部进程号
    • +
    • tid:内部线程号
    • +
    • start_time:阶段开始时间
    • +
    • end_time:阶段结束时间
    • +
    • so_name:so文件名称
    • +
    • depth:泳道图的深度
    • +
    +

    live_process表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    tsINT
    durINT
    cpu_timeINT
    process_idINT
    process_nameTEXT
    parent_process_idINT
    uidINT
    user_nameTEXT
    cpu_usageREAL
    pss_infoINT
    thread_numINT
    disk_writesINT
    disk_readsINT
    +

    表描述

    +

    记录了一些实时的进程中执行的一些数据(Monitor)。

    +

    主要字段描述

    +
      +
    • process_id:进程id
    • +
    • process_name:进程名
    • +
    • parent_process_id:父进程的id
    • +
    • uid:用户id
    • +
    • user_name:用户名
    • +
    • cpu_usage:cpu使用率
    • +
    • pss_info:进程信息
    • +
    • thread_num:线程数量
    • +
    • disk_writes:磁盘写量
    • +
    • disk_reads:磁盘读量
    • +
    +

    log表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    seqINT
    tsINT
    pidINT
    tidINT
    levelTEXT
    tagTEXT
    contextTEXT
    origintsINT
    +

    表描述

    +

    记录日志信息。

    +

    关键字段描述

    +
      +
    • Seq:日志序号,保证日志解析的准确性
    • +
    • Ts:打印日志时间
    • +
    • Pid:日志的进程号
    • +
    • Tid:日志的线程号
    • +
    • Level:日志级别
    • +
    • Tag:日志标签
    • +
    • Context:日志内容
    • +
    +

    measure表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    typeTEXT
    tsINT
    durINT
    valueINT
    filter_idINT
    +

    表描述

    +

    记录所有的计量值。

    +

    关键字段描述

    +
      +
    • type:固定字段(measure)
    • +
    • ts:事件时间
    • +
    • dur:该值持续的时长
    • +
    • value:数值
    • +
    • filter_id:对应filter表中的ID
    • +
    +

    measure_filter表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    nameTEXT
    source_arg_set_idINT
    +

    表描述

    - 已知同步后的时间戳为28463134277762,查询采样数据的函数名及文件路径
    - select A.*, B.name, C.path from perf_sample as A, perf_callchain as B, perf_files as C where - A.timestamp_trace = 28463134277762 and B.sample_id = A.sample_id and B.callchain_id = 0 and B.file_id = - C.file_id and C.serial_id = 0 + 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录。

    -
  • -
  • +

    字段详细描述

    - 已知线程号为6700,查询所有的采样记录
    - select * from perf_sample where thread_id = 6700 + 过滤分类(type),过滤名称(key2),数据ID(key1)。
    + 数据ID在process_measure_filter, sys_event_filter中作为id。

    -
  • -
  • +

    meta表

    +

    表结构

    + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    nameTEXT
    valueTEXT
    +

    表描述

    - 已知进程号为7863,查询所有的采样记录
    - select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = - B.thread_id + 此表记录了数据解析或导出时的一些现场数据,比如使用的TraceStreamer版本, + 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。

    -
  • -
  • +

    主要字段描述

    +
      +
    • Name:指定元数据的key
    • +
    • Value:指定元数据的value
    • +
    +

    native_hook表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callChainIdINT
    ipidINT
    itidINT
    event_typeTEXT
    sub_type_idNUM
    start_tsINT
    end_tsINT
    durINT
    addrINT
    heap_sizeINT
    all_heap_sizeINT
    current_size_durINT
    last_lib_idINT
    +

    表描述

    +

    记录native_hook抓取的某个进程的堆内存,内存映射相关数据。

    +

    关键字段描述

    +
      +
    • callChainId:唯一标识一条native_hook数据
    • +
    • event_type:事件类型取值范围(AllocEvent,FreeEvent,MmapEvent, MunmapEvent)
    • +
    • sub_type_id:子事件类型(只有sub_type字段为MmapEvent时,该字段才会有值)
    • +
    • start_ts:申请内存开始时间
    • +
    • end_ts:释放内存时间
    • +
    • Dur:申请内存活跃时间
    • +
    • Addr:申请内存地址
    • +
    • mem_size:申请或释放内存大小
    • +
    • + all_mem_size:从采集数据开始到当前时刻,申请并活跃的内存总量。 + event_type为AllocEvent或者FreeEvent时,表示活跃的堆内存总量。当event_type为MmapEvent或者MunmapEvent时,表示活跃的映射内存总量 +
    • +
    • current_size_dur:表示当前活跃内存总量的持续时间
    • +
    • last_lib_id:函数调用栈他最后一个函数所属的文件路径,除了文件名中带musl和libc++
    • +
    +

    native_hook_frame表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    depthINT
    symbol_idINT
    file_idINT
    offsetINT
    symbol_offsetINT
    +

    表描述

    +

    记录了内存的申请和释放的堆栈。

    +

    相关字段描述

    +
      +
    • callchain_id:标识一组调用堆栈
    • +
    • depth:调用栈深度
    • +
    • symbol_id:函数名
    • +
    • file_id:函数所属文件
    • +
    +

    native_hook_statistic表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    ipidINT
    tsINT
    typeINT
    apply_countINT
    release_countINT
    apply_sizeINT
    release_sizeINT
    +

    表描述

    +

    该表记录了内存申请/释放的统计信息。

    +

    关键字段描述

    +
      +
    • callchain_id:内存分配的回调链id
    • +
    • ipid:进程id
    • +
    • ts:统计数据上报时间
    • +
    • type:事件类型,0代表malloc事件,1代表mmap事件
    • +
    • apply_count:当前调用栈内存分配总次数
    • +
    • release_count:当前调用栈内存释放总次数
    • +
    • apply_size:当前调用栈累计分配总大小
    • +
    • release_size:当前调用栈累计释放总大小
    • +
    +

    network表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    tsINT
    durINT
    txINT
    rxINT
    tx_speedREAL
    rx_speedREAL
    packet_inINT
    packet_in_secREAL
    packet_outINT
    packet_out_secREAL
    net_typeTEXT
    +

    表描述

    +

    记录了网络数据传输相关的信息。

    +

    主要字段描述

    +
      +
    • tv_sec:时间,秒为单位
    • +
    • tv_nsec:时间,纳秒为单位
    • +
    • tx_bytes:网络数据的写入量
    • +
    • rx_bytes:网络数据的读取量
    • +
    +

    paged_memory_sample表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    typeINT
    ipidINT
    start_tsINT
    end_tsINT
    durINT
    sizeINT
    addrTEXT
    itidINT
    +

    表描述

    +

    记录了网络数据传输相关的信息。

    +

    主要字段描述

    +
      +
    • callchain_id: 取值相同的一组数据,表示一个完整的调用栈
    • +
    • type:事件类型
    • +
    • ipid:TS内部进程号
    • +
    • start_ts:开始时间
    • +
    • end_ts:结束时间
    • +
    • dur:持续时间
    • +
    • size:操作页数
    • +
    • itid:TS内部线程号
    • +
    +

    perf_callchain表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    depthINT
    vaddr_in_fileINT
    file_idINT
    symbol_idINT
    nameTEXT
    +

    表描述

    +

    记录了Hiperf采样数据的调用栈信息。

    +

    主要字段描述

    +
      +
    • callchain_id:标识一组调用堆栈
    • +
    • depth:调用栈深度
    • +
    • vaddr_in_file:函数在文件中的虚拟地址
    • +
    • file_id:与PerfFiles中的file_id字段相关联
    • +
    • symbol_id:与PerfFiles中的symbol_id相关联
    • +
    • name:函数名
    • +
    +

    perf_files表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    file_idINT
    serial_idINT
    symbolTEXT
    pathTEXT
    +

    表描述

    +

    记录Hiperf工具采集到的函数符号表和文件名。

    +

    主要字段描述

    +
      +
    • file_id:文件编号
    • +
    • serial_id:一个文件中可能有多个函数,serial_id表示函数的编号
    • +
    • symbol:函数名
    • +
    • path:文件路径
    • +
    +

    perf_report表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    report_typeTEXT
    report_valueTEXT
    +

    表描述

    - 查询所有采样对应的事件类型
    - select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id + 记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。

    -
  • -
-

帧渲染表之间的关系图

- -

- frame_slice: 记录RS(RenderService)和应用的帧渲染。
- gpu_slice: 记录RS的帧对应的gpu渲染时长。
- frame_maps:记录应用到RS的帧的映射关系。
- GitHub Logo -

-

查询示例

- -
    -
  • +

    主要字段描述

    +
      +
    • + report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), + cmdline(抓取命令) +
    • +
    • report_value:对应类型的取值
    • +
    +

    perf_sample表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    callchain_idINT
    timestampINT
    thread_idINT
    event_countINT
    event_type_idINT
    timestamp_traceINT
    cpu_idINT
    thread_stateTEXT
    +

    表描述

    +

    记录Hiperf工具的采样信息。

    +

    主要字段描述

    +
      +
    • timestamp:未进行时钟源同步的时间戳
    • +
    • thread_id:线程号
    • +
    • event_count:采样统计
    • +
    • event_type_id:事件类型编号。与PerfReport表的id字段相关联
    • +
    • timestamp_trace:时钟源同步后的时间戳
    • +
    • cpu_id:cpu核编号
    • +
    • + thread_state:线程状态。采样对应Sched_Waking事件时,为Runing;对应Sched_Switch事件时,为Suspend。其余事件类型,为“-” +
    • +
    +

    perf_thread表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    thread_idINT
    process_idINT
    thread_nameTEXT
    +

    表描述

    +

    记录Hiperf工具采集到的进程和线程数据。

    +

    主要字段描述

    +
      +
    • thread_id:线程号
    • +
    • process_id:进程号
    • +
    • thread_name:线程名
    • +
    +

    process表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    ipidINT
    typeTEXT
    pidINT
    nameTEXT
    start_tsINT
    switch_countINT
    thread_countINT
    slice_countINT
    mem_countINT
    +

    表描述

    +

    记录了进程相关数据。

    +

    关键字段描述

    +
      +
    • id:进程在数据库重新重新定义的id,从0开始序列增长
    • +
    • ipid:TS内部进程id
    • +
    • type:固定取值:process
    • +
    • pid:进程的真实id
    • +
    • name:进程名字
    • +
    • start_ts:开始时间
    • +
    • switch_count:统计内部有多少个线程有切换
    • +
    • thread_count:统计其线程个数
    • +
    • slice_count:进程内有多个线程有slice数据
    • +
    • mem_count:进程是否有内存数据
    • +
    +

    process_filter表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    nameTEXT
    ipidINT
    +

    表描述

    - 已知进程,查询进程对应的实际渲染帧
    - select * from frame_slice where ipid = 1 + 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, + filter_id同时被记录在filter表中。

    -
  • -
  • +

    主要字段描述

    +
      +
    • id:进程id
    • +
    • type:固定取值:process_filter
    • +
    • name:进程名
    • +
    • ipid:该进程表中的id与process表中的id相关联
    • +
    +

    process_measure表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    typeTEXT
    tsINT
    valueNUM
    filter_idINT
    +

    表描述

    +

    保存进程的内存,堆栈值等所有计量值信息。

    +

    字段详细描述

    +
      +
    • ts:事件时间
    • +
    • value:数值
    • +
    • filter_id:对应process_measure_filter表中的ID
    • +
    +

    process_measure_filter表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    nameTEXT
    ipidINT
    +

    表描述

    - 已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧
    - select * from frame_slice where id = 12 + 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, + filter_id同时被记录在measure_filter表中。

    -
  • -
  • +

    字段详细描述

    +
      +
    • type:固定取值:process_measure_filter
    • +
    • name:cpu状态名
    • +
    • ipid:进程内部编号
    • +
    +

    raw表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    tsINT
    nameTEXT
    cpuINT
    itidINT
    +

    表描述

    +

    记录了系统中的waking、wakup、cpu_idel、cpu_frequency数据。

    +

    相关字段描述

    +
      +
    • type:固定字段(raw)
    • +
    • name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking)
    • +
    • cpu:事件发生在哪个CPU
    • +
    • itid:时间对应哪个utid
    • +
    +

    sched_slice表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    typeTEXT
    tsINT
    durINT
    ts_endINT
    cpuINT
    itidINT
    end_stateTEXT
    priorityINT
    +

    表描述

    +

    此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录。

    +

    主要字段描述

    +
      +
    • ts:事件发生事件
    • +
    • type:固定字段(sched_slice)
    • +
    • dur:状态持续时长
    • +
    • ts_end:状态结束时长
    • +
    • cpu:事件发生在哪个cpu
    • +
    • itid:事件对应哪个utid
    • +
    • end_state:线程的终结状态
    • +
    +

    smaps表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    idINT
    timestampINT
    start_addrTEXT
    end_addrTEXT
    dirtyINT
    swapperINT
    resident_sizeINT
    pssINT
    virtaul_sizeINT
    resideREAL
    protection_idINT
    path_idINT
    +

    表描述

    +

    记录进程的内存消耗的相关信息采样。

    +

    主要字段描述

    +
      +
    • id:状态持续时长
    • +
    • timestamp:事件发生事件
    • +
    • start_addr:内存段地址的起始位置
    • +
    • end_addr:内存段地址的结束位置
    • +
    • dirty:其他进程共享的被写的页的大小 + 已被改写的私有页面的大小
    • +
    • swapper:存在于交换分区的数据大小
    • +
    • resident_size:实际分配的内存大小
    • +
    • pss:平摊计算后的实际物理使用内存
    • +
    • virtaul_size:虚拟内存空间的大小
    • +
    • reside:实际分配的内存大小与虚拟内存空间的大小的比
    • +
    • protection_id:内存段的权限id与表data_dict的id字段相关联
    • +
    • path_id:如果区域是从文件映射的,则这是文件的名称对应的id序号与表data_dict的id字段相关联
    • +
    +

    stat表

    +

    表结构

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Columns NameSQL TYPE
    event_nameTEXT
    stat_typeTEXT
    countINT
    serverityTEXT
    sourceTEXT
    +

    表描述

    - 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长
    - select * from gpu_slice where frame_row = 14 + 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解。

    -
  • -
-

JS内存数据表关系图

-

js_heap_files:记录js内存数据的文件名和文件索引

-

-

- js_heap_nodes:记录js内存类对象数据
- js_heap_edges:记录js内存类对象的成员数据
- js_heap_trace_node:记录timeline的调用栈信息
- js_heap_sample:记录timeline的时间轴信息
- -

-

TraceStreamer输出数据库表格详细介绍

-

app_name表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
flagINT
app_nameINT
app_keyINT
-

表描述

-

记录HiSysevent上报事件中的IDE相关事件中APPNAME的表关联信息。

-

字段详细描述

-
    -
  • id:用于与表hisys_event_measure表中的key_id字段做对应
  • -
  • app_name:对应的事件的信息ID
  • -
  • app_key:对应的事件的APPNAME字段的信息ID
  • -
-

args表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
keyINT
datatypeINT
valueINT
argsetINT
-

表描述

-

记录方法的参数集合。

-

字段详细描述

-
    -
  • key:键
  • -
  • datatype:数据类型
  • -
  • value:取值
  • -
  • argset:参数集合
  • -
-

bio_latency_sample表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
datatypeINT
typeINT
ipidINT
itidINT
start_tsINT
end_tsINT
latency_durINT
tierINT
sizeINT
block_numberTEXT
pathTEXT
dur_per_4kINT
-

表描述

-

记录IO操作相关方法调用,及调用栈数据。

-

字段详细描述

-
    -
  • callchain_id:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联
  • -
  • - type:事件类型其取值为枚举类型(DATA_READ,DATA_WRITE,METADATA_READ,- METADATA_WRITE,PAGE_IN,PAGE_OUT) -
  • -
  • ipid:TS内部进程号
  • -
  • itid:TS内部线程号
  • -
  • start_ts:开始时间
  • -
  • end_ts:结束时间
  • -
  • latency_dur:总延迟
  • -
  • tier:优先级
  • -
  • size:文件大小
  • -
  • block_number:数据量大小(一般为4K)
  • -
  • path:路径id
  • -
  • dur_per_4k:每4k数据的平均延迟
  • -
-

callstack表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
durINT
callidINT
catTEXT
identifyINT
nameTEXT
depthINT
cookieINT
parent_idINT
argsetidINT
chainIdTEXT
spanIdTEXT
parentSpanIdTEXT
flagTEXT
argsTEXT
-

表描述

-

- 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步的调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号。 -

-

字段详细描述

-
    -
  • dur:调用时长
  • -
  • callid:调用者的ID,比如针对线程表里面的id
  • -
  • identify:调用栈的名字,与表dataDict相关联能够取出其string值
  • -
  • name:调用名称
  • -
  • depth:调用深度
  • -
  • parent_id:父调用的id
  • -
  • spanId:分布式调用关联关系
  • -
  • flag:C表示分布式调用发送方,S表示接受方
  • -
  • args:分布式调用函数参数
  • -
-

clk_event_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
cpuINT
-

表描述

-

记录时钟信息。

-

字段详细描述

-
    -
  • Type:时钟事件类型
  • -
  • Name:时钟事件名称
  • -
-

clock_event_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
cpuINT
-

表描述

-

此结构用来维护时钟事件,cpu与唯一的ID做关联。

-

主要字段描述

-
    -
  • Type:时钟事件类型
  • -
  • Name:时钟事件名称
  • -
-

cpu_measure_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
cpuINT
-

表描述

-

将cpu号作为key1,cpu的频率,空闲等状态作为key2,唯一确定一个filter_id。

-

主要字段描述

-
    -
  • Id(filterid), cpu:事件名称,cpu号
  • -
-

cpu_usage表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
durINT
total_loadREAL
user_loadREAL
system_loadREAL
process_numINT
-

表描述

-

记录了与CPU使用率相关的数据。

-

主要字段描述

-
    -
  • total_load:总负荷
  • -
  • user_load:用户负载
  • -
  • system_load:系统负载
  • -
  • process_num:线程数
  • -
-

data_dict表

-

表结构

- - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
dataTEXT
-

表描述

-

此表记录了一个数据类型ID和字符串的映射。

-

主要字段描述

-
    -
  • id:索引值
  • -
  • data:字符串
  • -
-

data_type表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeIdINT
descTEXT
-

表描述

-

此表记录了一个数据类型ID和数据描述的映射。

-

主要字段描述

-
    -
  • typeId::数据类型id
  • -
  • Desc:数据类型描述
  • -
-

diskio表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
durINT
rdINT
wrINT
rd_speedREAL
wr_speedREAL
rd_countINT
wr_countINT
rd_count_speedREAL
wr_count_speedREAL
-

表描述

-

记录了与磁盘读写相关的数据。

-

主要字段描述

-
    -
  • rd_sectors_kb:读数据的速度
  • -
  • wr_sectors_kb:写入数据的速度
  • -
  • ts:时间戳
  • -
-

ebpf_callstack表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
depthTEXT
ipTEXT
symbols_idINT
file_path_idINT
-

表描述

-

记录了与磁盘读写相关的数据。

-

主要字段描述

-
    -
  • callchain_id:调用栈的唯一标识
  • -
  • depth:调用栈深度。取值为零时表示栈顶
  • -
  • ip:调用栈ip
  • -
  • symbols_id:调用栈函数名称, 与data_dict中的id字段关联
  • -
  • file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联
  • -
-

file_system_sample表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
callchain_idINT
typeINT
ipidINT
itidINT
start_tsINT
end_tsINT
durINT
return_valueTEXT
error_codeTEXT
fdINT
file_idINT
sizeINT
first_argumentTEXT
second_argumentTEXT
third_argumentTEXT
fourth_argumentTEXT
-

表描述

-

记录了调用栈的相关信息。

-

主要字段描述

-
    -
  • callchain_id:调用栈信息ID与file_system_callstack表中call_chain_id字段相关联
  • -
  • type:对应文件操作open,close,read,write
  • -
  • ipid:线程所属的进程ID
  • -
  • start_ts:开始时间
  • -
  • end_ts:结束时间
  • -
  • dur:耗时
  • -
  • return_value:文件操作的返回值
  • -
  • error_code:文件操作发生错误时的错误码
  • -
  • fd:文件描述符fd
  • -
  • file_id:当type为open,close时为其操作的文件路径,当type为read,write时为固定字段(null)
  • -
  • size:在type为read,write时对应的文件的读或者写的大小
  • -
  • first_argument:参数一
  • -
  • second_argument:参数二
  • -
  • third_argument:参数三
  • -
  • fourth_argument:参数四
  • -
-

hidump表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
fpsINT
-

表描述

-

此表记录了设备的帧率信息,fps。

-

相关字段描述

-
    -
  • fps:帧率值
  • -
-

hisys_event_measure表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
serialINT
tsINT
name_idINT
key_idINT
typeINT
int_valueREAL
string_valueTEXT
-

表描述

-

记录所有的system event事件的相关数据,及其相关表的映射信息。

-

相关字段描述

-
    -
  • serial:每条数据过来携带唯一一条id作为标识
  • -
  • name_id:存放事件对应的ID,与data_dict表相关联可以取出对应的字段
  • -
  • - key_id:存放事件包含的字段的ID,与表app_name的id字段相关联,找到app_name表的 - id字段对应行的app_key字段与表data_dict表相关联取出对应的字段 -
  • -
  • type:存放事件所包含的字段的值所属的类型为int型还是string(0为int,1为string)
  • -
  • int_value:存放本事件所包含的字段的int型的值
  • -
  • string_value:存放本事件所包含的字段的string型的值
  • -
-

instant表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
nameTEXT
refINT
wakeup_fromINT
ref_typeTEXT
valueREAL
-

表描述

-

记录了系统中的waking和wakeup事件。

-

字段描述

-
    -
  • ts:唤醒时间
  • -
  • name:唤醒事件的名称
  • -
  • ref:索引号
  • -
  • wakeup_from:唤醒当前线程的内部线程号(itid)
  • -
  • ref_type:描述了value字段的类型(一般取值为itid)
  • -
  • value:一般为当前线程的内部线程号取值
  • -
-

irq表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
durINT
callidINT
catTEXT
nameTEXT
depthINT
cookieINT
parent_idINT
argsetidINT
chainIdTEXT
spanIdTEXT
parentSpanIdTEXT
flagTEXT
argsTEXT
-

表描述

-

记录中断相关事件。

-

相关字段描述

-
    -
  • dur:调用中断时长
  • -
  • callid:调用中断者的ID,比如针对线程表里面的id
  • -
  • cat:调用栈数据类型(取值范围:irq,softirq...)
  • -
  • name:调用中断的名称
  • -
  • depth:中断调用的深度
  • -
  • parent_id:父调用中断的id
  • -
  • spanId:分布式调用中断关联关系
  • -
-

js_config表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
pidINT
typeINT
intervalINT
capture_numeric_valueINT
trace_allocationINT
enable_cpu_profilerINT
cpu_profiler_intervalINT
-

表描述

-

记录arkTs数据采集的相关配置。

-

相关字段描述

-
    -
  • pid:目标进程ID。
  • -
  • - type:JS数据类型,取值与枚举HeapType对应,0表示JS内存数据为snapshot类型,1表示JS内存数据为timeline类型,-1表示没有JS内存数据。 -
  • -
  • interval:当type=0时生效,单位是秒,表示一次snapshot事件和下一次snapshot事件之间的间隔。
  • -
  • capture_numeric_value:当type=0时生效,表示是否同时抓取numeric。
  • -
  • track_allocation:当type=1时生效,表示是否抓取allocations。
  • -
  • enable_cpu_profiler:表示是否存在cpuprofiler的数据。
  • -
  • cpu_profiler_interval:表示cpuprofiler数据的采集间隔。
  • -
-

js_cpu_profiler_node表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
function_idINT
function_indexINT
script_idINT
url_indexINT
line_numberINT
column_numberINT
hit_countINT
childrenINT
parent_idINT
-

表描述

-

记录cpu profiler中node节点的数据。

-

相关字段描述

-
    -
  • function_id: 函数的ID号。
  • -
  • function_index:函数名称在data_dict中的索引号。
  • -
  • script_id:关联到的类对象所在文件的绝对路径ID。
  • -
  • url_index:关联到的类对象所在文件的绝对路径名称在data_dict中的索引号。
  • -
  • line_number:类对象所在文件的行号。
  • -
  • column_number:类对象所在文件的列号。
  • -
  • hit_count:采样次数。
  • -
  • children:子节点的id号。
  • -
  • parent_id:父节点的id号。
  • -
-

js_cpu_profiler_sample表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
function_idINT
start_timeINT
end_timeINT
durINT
-

表描述

-

记录了cpu profiler 中sample节点的数据。

-

相关字段描述

-
    -
  • id: ts内部ID号。
  • -
  • function_id:函数的ID号。
  • -
  • start_time:数据上报的起始时间。
  • -
  • end_time:数据上报的终止时间。
  • -
  • dur:数据上报的间隔时间。
  • -
-

js_heap_edges表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
edge_indexINT
typeINT
name_or_indexINT
to_nodeINT
from_node_idINT
to_node_idINT
-

表描述

-

记录js内存数据类对象对应的成员的信息。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • edge_index:成员的索引号
  • -
  • type:成员的类型,取值范围为js_heap_info表中的edge_types
  • -
  • name_or_index:数据名称,取值为js_heap_string表中的下标索引
  • -
  • to_node:此成员指向的类对象在nodes数组中的索引
  • -
  • from_node_id:类对象ID,该类对象指向此成员数据
  • -
  • to_node_id:此成员指向到的类对象nodes数组中的ID
  • -
-

js_heap_files表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
file_nameTEXT
start_timeINT
end_timeINT
pidINT
-

表描述

-

记录了js内存数据的文件名称和时间。

-

相关字段描述

-
    -
  • id:文件ID
  • -
  • file_name:文件名称
  • -
  • start_time:数据抓取的起始时间
  • -
  • end_time:数据抓取的终止时间
  • -
  • pid:进程号
  • -
-

js_heap_info表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
keyTEXT
typeINT
int_valueINT
str_valueTEXT
-

表描述

-

记录了js内存数据类型,如nodes和edges的字段类型和数据总数。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • key:类型名称
  • -
  • type:数据类型索引
  • -
  • int_value:int类型的数据值,如count类型数据
  • -
  • str_value:string类型的数据值,如typename
  • -
-

js_heap_location表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
object_indexINT
script_idINT
lineINT
columnINT
-

表描述

-

记录了js内存location节点相关数据,此表目前无抓取到的数据。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引
  • -
  • script_id:关联到的类对象所在文件的绝对路径ID
  • -
  • line:在类对象所在的文件中的行号
  • -
  • column:在类对象所在的文件中的列号
  • -
-

js_heap_nodes表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
node_indexTEXT
typeINT
nameINT
idTEXT
self_sizeINT
edge_countINT
trace_node_idINT
detachednessINT
-

表描述

-

记录了js内存数据中类对象的数据。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • node_index:类对象的索引
  • -
  • type:类对象的类型
  • -
  • name:类对象的名称
  • -
  • id:类对象的唯一ID
  • -
  • self_size:该类对象所有成员的大小(以字节为单位)
  • -
  • edge_count:该类对象指向的类成员的个数
  • -
  • trace_node_id:该类对象关联到js_heap_trace_node表中的调用栈ID
  • -
  • detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否
  • -
-

js_heap_sample表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
timestamp_usINT
last_assigned_idINT
-

表描述

-

记录了timeline模式下的时间轴信息。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • timestamp_us:时间信息
  • -
  • last_assigned_id:当前时间点的id
  • -
-

js_heap_string表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
file_indexINT
stringTEXT
-

表描述

-

记录了js内存数据中的字符串。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • file_index:索引
  • -
  • string:对应的字符串信息
  • -
-

js_heap_trace_function_info表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
function_indexINT
function_idINT
nameINT
script_nameINT
script_idINT
lineINT
columnINT
-

表描述

-

记录了timeline模式下的调用栈的每个函数信息。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • function_index:函数索引
  • -
  • function_id:函数ID
  • -
  • name:函数名称
  • -
  • script_name:关联到的类对象所在文件的绝对路径名称
  • -
  • script_id:关联到的类对象所在文件的绝对路径ID
  • -
  • line:在类对象所在的文件中的行号
  • -
  • column:在类对象所在的文件中的列号
  • -
-

js_heap_trace_node表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
file_idINT
idINT
function_info_indexINT
countINT
sizeINT
parent_idINT
-

表描述

-

记录了timeline模式下的调用栈的信息。

-

相关字段描述

-
    -
  • file_id:文件ID
  • -
  • id:调用栈节点索引
  • -
  • function_info_index:函数信息索引
  • -
  • count:调用栈个数
  • -
  • size:调用栈大小
  • -
  • parent_id:调用栈父节点
  • -
-

app_startup表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
call_idINT
ipidINT
tidINT
start_timeINT
end_timeINT
start_nameINT
packed_nameINT
-

表描述

-

记录了应用启动的相关信息。

-

相关字段描述

-
    -
  • call_id:调用者的ID,比如针对线程表里面的id
  • -
  • ipid:内部进程号
  • -
  • tid:内部线程号
  • -
  • start_time:阶段开始时间
  • -
  • end_time:阶段结束时间
  • -
  • start_name:阶段名称
  • -
  • packed_name:应用名称
  • -
-

static_intialize表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
call_idINT
ipidINT
tidINT
start_timeINT
end_timeINT
so_nameINT
depthINT
-

表描述

-

记录了so初始化的相关信息。

-

相关字段描述

-
    -
  • call_id:调用者的ID,比如针对线程表里面的id
  • -
  • ipid:内部进程号
  • -
  • tid:内部线程号
  • -
  • start_time:阶段开始时间
  • -
  • end_time:阶段结束时间
  • -
  • so_name:so文件名称
  • -
  • depth:泳道图的深度
  • -
-

live_process表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
durINT
cpu_timeINT
process_idINT
process_nameTEXT
parent_process_idINT
uidINT
user_nameTEXT
cpu_usageREAL
pss_infoINT
thread_numINT
disk_writesINT
disk_readsINT
-

表描述

-

记录了一些实时的进程中执行的一些数据(Monitor)。

-

主要字段描述

-
    -
  • process_id:进程id
  • -
  • process_name:进程名
  • -
  • parent_process_id:父进程的id
  • -
  • uid:用户id
  • -
  • user_name:用户名
  • -
  • cpu_usage:cpu使用率
  • -
  • pss_info:进程信息
  • -
  • thread_num:线程数量
  • -
  • disk_writes:磁盘写量
  • -
  • disk_reads:磁盘读量
  • -
-

log表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
seqINT
tsINT
pidINT
tidINT
levelTEXT
tagTEXT
contextTEXT
origintsINT
-

表描述

-

记录日志信息。

-

关键字段描述

-
    -
  • Seq:日志序号,保证日志解析的准确性
  • -
  • Ts:打印日志时间
  • -
  • Pid:日志的进程号
  • -
  • Tid:日志的线程号
  • -
  • Level:日志级别
  • -
  • Tag:日志标签
  • -
  • Context:日志内容
  • -
-

measure表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
typeTEXT
tsINT
durINT
valueINT
filter_idINT
-

表描述

-

记录所有的计量值。

-

关键字段描述

-
    -
  • type:固定字段(measure)
  • -
  • ts:事件时间
  • -
  • dur:该值持续的时长
  • -
  • value:数值
  • -
  • filter_id:对应filter表中的ID
  • -
-

measure_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
source_arg_set_idINT
-

表描述

-

- 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录。 -

-

字段详细描述

-

- 过滤分类(type),过滤名称(key2),数据ID(key1)。
- 数据ID在process_measure_filter, sys_event_filter中作为id。 -

-

meta表

-

表结构

- - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
nameTEXT
valueTEXT
-

表描述

-

- 此表记录了数据解析或导出时的一些现场数据,比如使用的TraceStreamer版本, - 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 -

-

主要字段描述

-
    -
  • Name:指定元数据的key
  • -
  • Value:指定元数据的value
  • -
-

native_hook表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callChainIdINT
ipidINT
itidINT
event_typeTEXT
sub_type_idNUM
start_tsINT
end_tsINT
durINT
addrINT
heap_sizeINT
all_heap_sizeINT
current_size_durINT
last_lib_idINT
-

表描述

-

记录native_hook抓取的某个进程的堆内存,内存映射相关数据。

-

关键字段描述

-
    -
  • callChainId:唯一标识一条native_hook数据
  • -
  • event_type:事件类型取值范围(AllocEvent,FreeEvent,MmapEvent, MunmapEvent)
  • -
  • sub_type_id:子事件类型(只有sub_type字段为MmapEvent时,该字段才会有值)
  • -
  • start_ts:申请内存开始时间
  • -
  • end_ts:释放内存时间
  • -
  • Dur:申请内存活跃时间
  • -
  • Addr:申请内存地址
  • -
  • mem_size:申请或释放内存大小
  • -
  • - all_mem_size:从采集数据开始到当前时刻,申请并活跃的内存总量。 - event_type为AllocEvent或者FreeEvent时,表示活跃的堆内存总量。当event_type为MmapEvent或者MunmapEvent时,表示活跃的映射内存总量 -
  • -
  • current_size_dur:表示当前活跃内存总量的持续时间
  • -
  • last_lib_id:函数调用栈他最后一个函数所属的文件路径,除了文件名中带musl和libc++
  • -
-

native_hook_frame表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
depthINT
symbol_idINT
file_idINT
offsetINT
symbol_offsetINT
-

表描述

-

记录了内存的申请和释放的堆栈。

-

相关字段描述

-
    -
  • callchain_id:标识一组调用堆栈
  • -
  • depth:调用栈深度
  • -
  • symbol_id:函数名
  • -
  • file_id:函数所属文件
  • -
-

native_hook_statistic表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
ipidINT
tsINT
typeINT
apply_countINT
release_countINT
apply_sizeINT
release_sizeINT
-

表描述

-

该表记录了内存申请/释放的统计信息。

-

关键字段描述

-
    -
  • callchain_id:内存分配的回调链id
  • -
  • ipid:进程id
  • -
  • ts:统计数据上报时间
  • -
  • type:事件类型,0代表malloc事件,1代表mmap事件
  • -
  • apply_count:当前调用栈内存分配总次数
  • -
  • release_count:当前调用栈内存释放总次数
  • -
  • apply_size:当前调用栈累计分配总大小
  • -
  • release_size:当前调用栈累计释放总大小
  • -
-

network表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
durINT
txINT
rxINT
tx_speedREAL
rx_speedREAL
packet_inINT
packet_in_secREAL
packet_outINT
packet_out_secREAL
net_typeTEXT
-

表描述

-

记录了网络数据传输相关的信息。

-

主要字段描述

-
    -
  • tv_sec:时间,秒为单位
  • -
  • tv_nsec:时间,纳秒为单位
  • -
  • tx_bytes:网络数据的写入量
  • -
  • rx_bytes:网络数据的读取量
  • -
-

paged_memory_sample表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
typeINT
ipidINT
start_tsINT
end_tsINT
durINT
sizeINT
addrTEXT
itidINT
-

表描述

-

记录了网络数据传输相关的信息。

-

主要字段描述

-
    -
  • callchain_id: 取值相同的一组数据,表示一个完整的调用栈
  • -
  • type:事件类型
  • -
  • ipid:TS内部进程号
  • -
  • start_ts:开始时间
  • -
  • end_ts:结束时间
  • -
  • dur:持续时间
  • -
  • size:操作页数
  • -
  • itid:TS内部线程号
  • -
-

perf_callchain表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
depthINT
vaddr_in_fileINT
file_idINT
symbol_idINT
nameTEXT
-

表描述

-

记录了Hiperf采样数据的调用栈信息。

-

主要字段描述

-
    -
  • callchain_id:标识一组调用堆栈
  • -
  • depth:调用栈深度
  • -
  • vaddr_in_file:函数在文件中的虚拟地址
  • -
  • file_id:与PerfFiles中的file_id字段相关联
  • -
  • symbol_id:与PerfFiles中的symbol_id相关联
  • -
  • name:函数名
  • -
-

perf_files表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
file_idINT
serial_idINT
symbolTEXT
pathTEXT
-

表描述

-

记录Hiperf工具采集到的函数符号表和文件名。

-

主要字段描述

-
    -
  • file_id:文件编号
  • -
  • serial_id:一个文件中可能有多个函数,serial_id表示函数的编号
  • -
  • symbol:函数名
  • -
  • path:文件路径
  • -
-

perf_report表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
report_typeTEXT
report_valueTEXT
-

表描述

-

- 记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 -

-

主要字段描述

-
    -
  • - report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), - cmdline(抓取命令) -
  • -
  • report_value:对应类型的取值
  • -
-

perf_sample表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
callchain_idINT
timestampINT
thread_idINT
event_countINT
event_type_idINT
timestamp_traceINT
cpu_idINT
thread_stateTEXT
-

表描述

-

记录Hiperf工具的采样信息。

-

主要字段描述

-
    -
  • timestamp:未进行时钟源同步的时间戳
  • -
  • thread_id:线程号
  • -
  • event_count:采样统计
  • -
  • event_type_id:事件类型编号。与PerfReport表的id字段相关联
  • -
  • timestamp_trace:时钟源同步后的时间戳
  • -
  • cpu_id:cpu核编号
  • -
  • - thread_state:线程状态。采样对应Sched_Waking事件时,为Runing;对应Sched_Switch事件时,为Suspend。其余事件类型,为“-” -
  • -
-

perf_thread表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
thread_idINT
process_idINT
thread_nameTEXT
-

表描述

-

记录Hiperf工具采集到的进程和线程数据。

-

主要字段描述

-
    -
  • thread_id:线程号
  • -
  • process_id:进程号
  • -
  • thread_name:线程名
  • -
-

process表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
ipidINT
typeTEXT
pidINT
nameTEXT
start_tsINT
switch_countINT
thread_countINT
slice_countINT
mem_countINT
-

表描述

-

记录了进程相关数据。

-

关键字段描述

-
    -
  • id:进程在数据库重新重新定义的id,从0开始序列增长
  • -
  • ipid:TS内部进程id
  • -
  • type:固定取值:process
  • -
  • pid:进程的真实id
  • -
  • name:进程名字
  • -
  • start_ts:开始时间
  • -
  • switch_count:统计内部有多少个线程有切换
  • -
  • thread_count:统计其线程个数
  • -
  • slice_count:进程内有多个线程有slice数据
  • -
  • mem_count:进程是否有内存数据
  • -
-

process_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
ipidINT
-

表描述

-

- 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, - filter_id同时被记录在filter表中。 -

-

主要字段描述

-
    -
  • id:进程id
  • -
  • type:固定取值:process_filter
  • -
  • name:进程名
  • -
  • ipid:该进程表中的id与process表中的id相关联
  • -
-

process_measure表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
typeTEXT
tsINT
valueNUM
filter_idINT
-

表描述

-

保存进程的内存,堆栈值等所有计量值信息。

-

字段详细描述

-
    -
  • ts:事件时间
  • -
  • value:数值
  • -
  • filter_id:对应process_measure_filter表中的ID
  • -
-

process_measure_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
ipidINT
-

表描述

-

- 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, - filter_id同时被记录在measure_filter表中。 -

-

字段详细描述

-
    -
  • type:固定取值:process_measure_filter
  • -
  • name:cpu状态名
  • -
  • ipid:进程内部编号
  • -
-

raw表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
tsINT
nameTEXT
cpuINT
itidINT
-

表描述

-

记录了系统中的waking、wakup、cpu_idel、cpu_frequency数据。

-

相关字段描述

-
    -
  • type:固定字段(raw)
  • -
  • name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking)
  • -
  • cpu:事件发生在哪个CPU
  • -
  • itid:时间对应哪个utid
  • -
-

sched_slice表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
tsINT
durINT
ts_endINT
cpuINT
itidINT
end_stateTEXT
priorityINT
-

表描述

-

此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录。

-

主要字段描述

-
    -
  • ts:事件发生事件
  • -
  • type:固定字段(sched_slice)
  • -
  • dur:状态持续时长
  • -
  • ts_end:状态结束时长
  • -
  • cpu:事件发生在哪个cpu
  • -
  • itid:事件对应哪个utid
  • -
  • end_state:线程的终结状态
  • -
-

smaps表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
timestampINT
start_addrTEXT
end_addrTEXT
dirtyINT
swapperINT
resident_sizeINT
pssINT
virtaul_sizeINT
resideREAL
protection_idINT
path_idINT
-

表描述

-

记录进程的内存消耗的相关信息采样。

-

主要字段描述

-
    -
  • id:状态持续时长
  • -
  • timestamp:事件发生事件
  • -
  • start_addr:内存段地址的起始位置
  • -
  • end_addr:内存段地址的结束位置
  • -
  • dirty:其他进程共享的被写的页的大小 + 已被改写的私有页面的大小
  • -
  • swapper:存在于交换分区的数据大小
  • -
  • resident_size:实际分配的内存大小
  • -
  • pss:平摊计算后的实际物理使用内存
  • -
  • virtaul_size:虚拟内存空间的大小
  • -
  • reside:实际分配的内存大小与虚拟内存空间的大小的比
  • -
  • protection_id:内存段的权限id与表data_dict的id字段相关联
  • -
  • path_id:如果区域是从文件映射的,则这是文件的名称对应的id序号与表data_dict的id字段相关联
  • -
-

stat表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
event_nameTEXT
stat_typeTEXT
countINT
serverityTEXT
sourceTEXT
-

表描述

-

- 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解。 -

-

主要字段描述

-
    -
  • event_name:数据类型
  • -
  • stat_type:数据状态
  • -
  • count:数据条数
  • -
  • severity:严重级别
  • -
  • source:数据来源
  • -
-

symbols表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
funcnameTEXT
addrINT
-

表描述

-

此表记录了被调用函数与其地址的映射关系。

-

相关字段描述

-
    -
  • funcname:系统调用名称
  • -
  • adr:系统调用地址
  • -
-

syscall表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
syscall_numINT
typeTEXT
ipidINT
tsINT
retINT
-

表描述

-

记录用户空间函数与内核空间函数相互调用记录。

-

相关字段描述

-
    -
  • syscall_num:系统调用的序号
  • -
  • type:固定取值:enter或者exit
  • -
  • ipid:线程所属的进程ID
  • -
  • ts:时间戳
  • -
  • ret:返回值,在type为exit时有效
  • -
-

sys_event_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
-

表描述

-

记录所有的filter。

-

相关字段描述

-
    -
  • type:文件类型
  • -
  • name:文件名
  • -
-

sys_mem_measure表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
typeTEXT
tsINT
valueINT
filter_idINT
-

表描述

-

记录系统内存与系统虚拟内存。

-

相关字段描述

-
    -
  • ts:事件时间
  • -
  • value:数值
  • -
  • filter_id:对应filter表中的ID
  • -
-

thread表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
itidINT
typeTEXT
tidINT
nameTEXT
start_tsINT
end_tsINT
ipidINT
is_main_threadINT
switch_countINT
-

表描述

-

记录了线程相关数据。

-

字段详细描述

-
    -
  • id:线程在数据库重新重新定义的id,从0开始序列增长
  • -
  • itid:TS内部线程id
  • -
  • type:固定字段(thread)
  • -
  • tid:线程号
  • -
  • name:线程名
  • -
  • start_ts:开始时间
  • -
  • end_ts:结束时间
  • -
  • ipid:线程所属的进程id, 关联process表中的ID
  • -
  • is_main_thread:是否主线程,主线程即该线程实际就是进程本身
  • -
  • switch_count:当前线程的切换次数
  • -
-

thread_filter表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
itidINT
-

表描述

-

- 将线程ID作为key1,线程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, - filter_id同时被记录在filter表中。 -

-

主要字段描述

-
    -
  • id:线程id
  • -
  • type:线程类型
  • -
  • name:线程名称
  • -
  • itid:该表中的tid与thread表中的tid相关联
  • -
-

thread_state表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
typeTEXT
tsINT
durINT
cpuINT
itidINT
tidINT
pidINT
stateTEXT
-

表描述

-

记录了线程状态相关的数据。

-

字段详细描述

-
    -
  • id:线程状态在数据库中的id,从0开始序列增长
  • -
  • ts:该线程状态的起始时间
  • -
  • dur:该线程状态的持续时间
  • -
  • cpu:该线程在哪个cpu上执行(针对running状态的线程)
  • -
  • itid:该状态所属的线程id, 关联线程表中的id
  • -
  • tid:线程号
  • -
  • pid:进程号
  • -
  • state:线程实际的的状态值
  • -
-
'R', Runnable状态
+      

主要字段描述

+
    +
  • event_name:数据类型
  • +
  • stat_type:数据状态
  • +
  • count:数据条数
  • +
  • severity:严重级别
  • +
  • source:数据来源
  • +
+

symbols表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
funcnameTEXT
addrINT
+

表描述

+

此表记录了被调用函数与其地址的映射关系。

+

相关字段描述

+
    +
  • funcname:系统调用名称
  • +
  • adr:系统调用地址
  • +
+

syscall表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
syscall_numINT
typeTEXT
ipidINT
tsINT
retINT
+

表描述

+

记录用户空间函数与内核空间函数相互调用记录。

+

相关字段描述

+
    +
  • syscall_num:系统调用的序号
  • +
  • type:固定取值:enter或者exit
  • +
  • ipid:线程所属的进程ID
  • +
  • ts:时间戳
  • +
  • ret:返回值,在type为exit时有效
  • +
+

sys_event_filter表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
+

表描述

+

记录所有的filter。

+

相关字段描述

+
    +
  • type:文件类型
  • +
  • name:文件名
  • +
+

sys_mem_measure表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
typeTEXT
tsINT
valueINT
filter_idINT
+

表描述

+

记录系统内存与系统虚拟内存。

+

相关字段描述

+
    +
  • ts:事件时间
  • +
  • value:数值
  • +
  • filter_id:对应filter表中的ID
  • +
+

thread表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
itidINT
typeTEXT
tidINT
nameTEXT
start_tsINT
end_tsINT
ipidINT
is_main_threadINT
switch_countINT
+

表描述

+

记录了线程相关数据。

+

字段详细描述

+
    +
  • id:线程在数据库重新重新定义的id,从0开始序列增长
  • +
  • itid:TS内部线程id
  • +
  • type:固定字段(thread)
  • +
  • tid:线程号
  • +
  • name:线程名
  • +
  • start_ts:开始时间
  • +
  • end_ts:结束时间
  • +
  • ipid:线程所属的进程id, 关联process表中的ID
  • +
  • is_main_thread:是否主线程,主线程即该线程实际就是进程本身
  • +
  • switch_count:当前线程的切换次数
  • +
+

thread_filter表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
typeTEXT
nameTEXT
itidINT
+

表描述

+

+ 将线程ID作为key1,线程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, + filter_id同时被记录在filter表中。 +

+

主要字段描述

+
    +
  • id:线程id
  • +
  • type:线程类型
  • +
  • name:线程名称
  • +
  • itid:该表中的tid与thread表中的tid相关联
  • +
+

thread_state表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
typeTEXT
tsINT
durINT
cpuINT
itidINT
tidINT
pidINT
stateTEXT
+

表描述

+

记录了线程状态相关的数据。

+

字段详细描述

+
    +
  • id:线程状态在数据库中的id,从0开始序列增长
  • +
  • ts:该线程状态的起始时间
  • +
  • dur:该线程状态的持续时间
  • +
  • cpu:该线程在哪个cpu上执行(针对running状态的线程)
  • +
  • itid:该状态所属的线程id, 关联线程表中的id
  • +
  • tid:线程号
  • +
  • pid:进程号
  • +
  • state:线程实际的的状态值
  • +
+
'R', Runnable状态
 "S", interruptible sleep
 "D", uninterruptible sleep
 "D-IO", uninterruptible io
@@ -4896,929 +4896,929 @@
 "R+", TaskNew
 "R-B", Task runnable binder.
 
-

clock_snapshot表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
clock_idINT
tsINT
clock_nameTEXT
-

表描述

-

时钟号和时间,时钟名的映射表。

-

关键字段描述

-
    -
  • clock_id:时钟号
  • -
  • ts:时钟快照报的时间
  • -
  • - clock_name:时钟号对应的时钟名字
    - 时钟快照是用来对齐不同时钟号的时间
    - 比如,时钟号1的时间100,和时钟号2的时间200对齐
    - 则时钟号为2 的250,转换为时钟号1的时间后,为150 -
  • -
-

datasource_clockid表

-

表结构

- - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
data_source_nameTEXT
clock_idINT
-

表描述

-

数据源和时钟号的映射表。

-

关键字段描述

-
    -
  • data_source_name:数据源的名称,和数据源的插件名保持一致
  • -
  • - clock_id:时钟号,对应clock_snapshot中的时钟号
    - 这个表是用来告诉IDE,不同的事件源的事件,原始时钟号是多少,在数据库中保存的事件,通常是转换为boottime后的时间,但有些情况下,IDE仍然需要知道原始的时钟号是怎样的 -
  • -
-

frame_slice表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
vsyncINT
ipidINT
itidINT
callstack_idINT
durINT
srcTEXT
dstINT
typeINT
flagINT
depthINT
frame_noINT
-

表描述

-

应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及RenderService和App之间的关联关系。

-

关键字段描述

-
    -
  • callstack_id:该帧数据对应着callstack表的调用栈所在的行数
  • -
  • dur:该帧渲染时长(当数据不完整时,改行数据为空)
  • -
  • src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割
  • -
  • dst:该帧对应的渲染帧是哪一行
  • -
  • type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧
  • -
  • - flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧(expectEndTime < - actualEndTime为异常), 2 表示数据不需要绘制(没有frameNum信息),3 表示rs进程与app进程起止异常(|expRsStartTime - - expUiEndTime| < 1ms 正常,否则异常。这里使用期待帧的时间差做判断,给实际帧打标签) -
  • -
  • depth:预留
  • -
  • frame_no:预留
  • -
-

frame_maps表

-

表结构

- - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
tsINT
src_rowINT
dst_rowINT
-

表描述

-

该表记录了app到RenderService的帧的映射关系,同frame_slice表中的src映射到dst的关系。

-

关键字段描述

-
    -
  • src_row:frame_slice表中app的帧所在的行
  • -
  • dst_row:frame_slice表中RenderService的帧所在的行
  • -
-

gpu_slice表

-

表结构

- - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
frame_rowINT
durINT
-

表描述

-

该表记录了每一帧数据在GPU上的渲染时长。

-

关键字段描述

-
    -
  • frame_row:frame_slice表中渲染帧所在的行
  • -
  • dur:帧渲染时长
  • -
-

trace_range表

-

表结构

- - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
start_tsINT
end_tsINT
-

表描述

-

该表记录了解析开始时间以及结束时间。

-

关键字段描述

-
    -
  • start_ts:trace的开始时间,纳秒为单位
  • -
  • end_ts:trace的结束时间,纳秒为单位
  • -
-

task_pool表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
allocation_task_rowINT
execute_task_rowINT
return_task_rowINT
allocation_itidINT
execute_itidINT
return_itidINT
execute_idINT
priorityINT
execute_stateINT
return_stateINT
timeout_rowINT
-

表描述

-

该表记录了任务池相关数据,与callstack表关联。

-

关键字段描述

-
    -
  • allocation_task_row:与callstack表id号相关联
  • -
  • execute_task_row:与callstack表id号相关联
  • -
  • return_task_row:与callstack表id号相关联
  • -
  • allocation_itid:任务分发的itid
  • -
  • execute_itid:任务执行的itid
  • -
  • return_itid:任务返回的itid
  • -
  • execute_id:任务执行id
  • -
  • priority:任务分发独有的,优先级{HIGH : 0,MEDIUM : 1,LOW : 2}
  • -
  • execute_state:任务执行独有的执行状态{NOT_FOUND : 0,WAITING : 1,RUNNING : 2,CANCELED : 3}
  • -
  • return_state:任务返回独有的任务返回状态[IsCanceled DeserializeFailed Successful Unsuccessful]
  • -
  • timeout_row:任务执行超时时更新此列,将对应的 callstack 表行号存于对应的任务行
  • -
-

animation表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
input_timeINT
start_pointINT
end_pointINT
-

表描述

-

该表记录动效的响应时延和完成时延等信息。

-

关键字段描述

-
    -
  • input_time:输入时间点
  • -
  • start_point:开始时间点
  • -
  • end_point:结束时间点
  • -
-

dynamic_frame表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
xINT
yINT
widthINT
heightINT
alphaTEXT
nameINT
end_timeINT
-

表描述

-

该表记录动效帧的坐标、分辨率、结束时间等信息。

-

关键字段描述

-
    -
  • x:坐标x
  • -
  • y:坐标y
  • -
  • width:宽
  • -
  • height:高
  • -
  • alpha:透明度
  • -
  • name:当前动效帧名字
  • -
  • end_time:结束时间
  • -
-

device_info表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
physical_widthINT
physical_heightINT
physical_frame_rateINT
-

表描述

-

该表记录设备分辨率和帧率等信息。

-

关键字段描述

-
    -
  • physical_width:设备宽
  • -
  • physical_height:设备高
  • -
  • physical_frame_rate:设备帧率
  • -
-

device_state表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
brightnessINT
bt_stateINT
locationINT
wifiINT
stream_defaultINT
voice_callINT
musicINT
stream_ringINT
mediaINT
voice_assistantINT
systemINT
alarmINT
notificationINT
bt_scoINT
enforced_audibleINT
stream_dtmfINT
stream_ttsINT
accessibilityINT
recordingINT
stream_allINT
-

表描述

-

该表记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息。

-

关键字段描述

-
    -
  • brightness:屏幕亮度
  • -
  • bt_state:蓝牙状态
  • -
  • location:位置信息
  • -
  • wifi:无线网络状态
  • -
  • voice_call:语音通话
  • -
  • music:音乐播放
  • -
  • media:多媒体
  • -
  • voice_assistant:语音助手
  • -
  • system:系统
  • -
  • alarm:闹钟
  • -
  • notification:消息通知
  • -
  • bt_sco:蓝牙语音
  • -
  • accessibility:访问权限
  • -
  • recording:录音
  • -
-

trace_config表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
trace_sourceINT
keyINT
valueINT
-

表描述

-

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

-

关键字段描述

-
    -
  • trace_source:事件源
  • -
  • key:事件需要关注的信息名
  • -
  • value:事件需要关注的信息名对应的信息值
  • -
-

memory_ashmem表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
ipidINT
adjINT
fdINT
ashmem_name_idINT
sizeINT
pssINT
ashmem_idINT
timeINT
ref_countINT
purgedINT
flagINT
-

表描述

-

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

-

关键字段描述

-
    -
  • ts:时间戳
  • -
  • ipid:内部进程号
  • -
  • fd:共享内存文件描述符
  • -
  • ashmem_name_id:共享内存名
  • -
  • size:共享内存大小
  • -
  • pss:PSS内存大小
  • -
  • ashmem_id:共享内存ID
  • -
  • ref_count:引用计数
  • -
  • flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据
  • -
-

memory_dma表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
ipidINT
fdINT
sizeINT
inoINT
exp_pidINT
exp_task_comm_idINT
buf_name_idINT
exp_name_idINT
flagINT
-

表描述

-

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

-

关键字段描述

-
    -
  • ts:时间戳
  • -
  • ipid:内部进程号
  • -
  • fd:dma内存文件描述符
  • -
  • size:dma内存大小
  • -
  • exp_pid:申请者的进程号
  • -
  • buf_name_id:dma内存名
  • -
  • exp_name_id:申请者进程名
  • -
  • flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据
  • -
-

memory_process_gpu表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
gpu_name_idINT
all_gpu_sizeINT
addrTEXT
ipidINT
itidINT
used_gpu_sizeINT
-

表描述

-

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

-

关键字段描述

-
    -
  • ts:时间戳
  • -
  • gpu_name_id:gpu内存名称
  • -
  • all_gpu_size:进程占用gpu总大小
  • -
  • addr:gpu内存地址
  • -
  • ipid:内部进程号
  • -
  • itid:内部线程号
  • -
  • used_gpu_size:已使用的gpu大小
  • -
-

memory_window_gpu表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
tsINT
window_name_idINT
window_idINT
module_name_idINT
category_name_idINT
sizeINT
countINT
purgeable_sizeINT
-

表描述

-

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

-

关键字段描述

-
    -
  • ts:时间戳
  • -
  • window_name_id:窗口名
  • -
  • window_id:窗口id
  • -
  • module_name_id:模块名
  • -
  • category_name_id:目录名
  • -
  • size:内存大小
  • -
  • count:内存申请个数
  • -
-

static_initalize表

-

表结构

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Columns NameSQL TYPE
idINT
ipidINT
tidINT
call_idINT
start_timeINT
end_timeINT
so_nameTEXT
depthINT
-

表描述

-

该表记录了so初始化相关数据。

-

关键字段描述

-
    -
  • ipid:内部进程号
  • -
  • tid:内部线程号
  • -
  • call_id:调用者的ID,对应线程表里面的itid
  • -
  • start_time:阶段开始时间
  • -
  • end_time:阶段结束时间
  • -
  • so_name:so文件名称
  • -
  • depth:泳道图的深度
  • -
-
- - - +

clock_snapshot表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
clock_idINT
tsINT
clock_nameTEXT
+

表描述

+

时钟号和时间,时钟名的映射表。

+

关键字段描述

+
    +
  • clock_id:时钟号
  • +
  • ts:时钟快照报的时间
  • +
  • + clock_name:时钟号对应的时钟名字
    + 时钟快照是用来对齐不同时钟号的时间
    + 比如,时钟号1的时间100,和时钟号2的时间200对齐
    + 则时钟号为2 的250,转换为时钟号1的时间后,为150 +
  • +
+

datasource_clockid表

+

表结构

+ + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
data_source_nameTEXT
clock_idINT
+

表描述

+

数据源和时钟号的映射表。

+

关键字段描述

+
    +
  • data_source_name:数据源的名称,和数据源的插件名保持一致
  • +
  • + clock_id:时钟号,对应clock_snapshot中的时钟号
    + 这个表是用来告诉IDE,不同的事件源的事件,原始时钟号是多少,在数据库中保存的事件,通常是转换为boottime后的时间,但有些情况下,IDE仍然需要知道原始的时钟号是怎样的 +
  • +
+

frame_slice表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
tsINT
vsyncINT
ipidINT
itidINT
callstack_idINT
durINT
srcTEXT
dstINT
typeINT
flagINT
depthINT
frame_noINT
+

表描述

+

应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及RenderService和App之间的关联关系。

+

关键字段描述

+
    +
  • callstack_id:该帧数据对应着callstack表的调用栈所在的行数
  • +
  • dur:该帧渲染时长(当数据不完整时,改行数据为空)
  • +
  • src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割
  • +
  • dst:该帧对应的渲染帧是哪一行
  • +
  • type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧
  • +
  • + flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧(expectEndTime < + actualEndTime为异常), 2 表示数据不需要绘制(没有frameNum信息),3 表示rs进程与app进程起止异常(|expRsStartTime + - expUiEndTime| < 1ms 正常,否则异常。这里使用期待帧的时间差做判断,给实际帧打标签) +
  • +
  • depth:预留
  • +
  • frame_no:预留
  • +
+

frame_maps表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
tsINT
src_rowINT
dst_rowINT
+

表描述

+

该表记录了app到RenderService的帧的映射关系,同frame_slice表中的src映射到dst的关系。

+

关键字段描述

+
    +
  • src_row:frame_slice表中app的帧所在的行
  • +
  • dst_row:frame_slice表中RenderService的帧所在的行
  • +
+

gpu_slice表

+

表结构

+ + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
frame_rowINT
durINT
+

表描述

+

该表记录了每一帧数据在GPU上的渲染时长。

+

关键字段描述

+
    +
  • frame_row:frame_slice表中渲染帧所在的行
  • +
  • dur:帧渲染时长
  • +
+

trace_range表

+

表结构

+ + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
start_tsINT
end_tsINT
+

表描述

+

该表记录了解析开始时间以及结束时间。

+

关键字段描述

+
    +
  • start_ts:trace的开始时间,纳秒为单位
  • +
  • end_ts:trace的结束时间,纳秒为单位
  • +
+

task_pool表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
allocation_task_rowINT
execute_task_rowINT
return_task_rowINT
allocation_itidINT
execute_itidINT
return_itidINT
execute_idINT
priorityINT
execute_stateINT
return_stateINT
timeout_rowINT
+

表描述

+

该表记录了任务池相关数据,与callstack表关联。

+

关键字段描述

+
    +
  • allocation_task_row:与callstack表id号相关联
  • +
  • execute_task_row:与callstack表id号相关联
  • +
  • return_task_row:与callstack表id号相关联
  • +
  • allocation_itid:任务分发的itid
  • +
  • execute_itid:任务执行的itid
  • +
  • return_itid:任务返回的itid
  • +
  • execute_id:任务执行id
  • +
  • priority:任务分发独有的,优先级{HIGH : 0,MEDIUM : 1,LOW : 2}
  • +
  • execute_state:任务执行独有的执行状态{NOT_FOUND : 0,WAITING : 1,RUNNING : 2,CANCELED : 3}
  • +
  • return_state:任务返回独有的任务返回状态[IsCanceled DeserializeFailed Successful Unsuccessful]
  • +
  • timeout_row:任务执行超时时更新此列,将对应的 callstack 表行号存于对应的任务行
  • +
+

animation表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
input_timeINT
start_pointINT
end_pointINT
+

表描述

+

该表记录动效的响应时延和完成时延等信息。

+

关键字段描述

+
    +
  • input_time:输入时间点
  • +
  • start_point:开始时间点
  • +
  • end_point:结束时间点
  • +
+

dynamic_frame表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
xINT
yINT
widthINT
heightINT
alphaTEXT
nameINT
end_timeINT
+

表描述

+

该表记录动效帧的坐标、分辨率、结束时间等信息。

+

关键字段描述

+
    +
  • x:坐标x
  • +
  • y:坐标y
  • +
  • width:宽
  • +
  • height:高
  • +
  • alpha:透明度
  • +
  • name:当前动效帧名字
  • +
  • end_time:结束时间
  • +
+

device_info表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
physical_widthINT
physical_heightINT
physical_frame_rateINT
+

表描述

+

该表记录设备分辨率和帧率等信息。

+

关键字段描述

+
    +
  • physical_width:设备宽
  • +
  • physical_height:设备高
  • +
  • physical_frame_rate:设备帧率
  • +
+

device_state表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
brightnessINT
bt_stateINT
locationINT
wifiINT
stream_defaultINT
voice_callINT
musicINT
stream_ringINT
mediaINT
voice_assistantINT
systemINT
alarmINT
notificationINT
bt_scoINT
enforced_audibleINT
stream_dtmfINT
stream_ttsINT
accessibilityINT
recordingINT
stream_allINT
+

表描述

+

该表记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息。

+

关键字段描述

+
    +
  • brightness:屏幕亮度
  • +
  • bt_state:蓝牙状态
  • +
  • location:位置信息
  • +
  • wifi:无线网络状态
  • +
  • voice_call:语音通话
  • +
  • music:音乐播放
  • +
  • media:多媒体
  • +
  • voice_assistant:语音助手
  • +
  • system:系统
  • +
  • alarm:闹钟
  • +
  • notification:消息通知
  • +
  • bt_sco:蓝牙语音
  • +
  • accessibility:访问权限
  • +
  • recording:录音
  • +
+

trace_config表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
trace_sourceINT
keyINT
valueINT
+

表描述

+

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

+

关键字段描述

+
    +
  • trace_source:事件源
  • +
  • key:事件需要关注的信息名
  • +
  • value:事件需要关注的信息名对应的信息值
  • +
+

memory_ashmem表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
tsINT
ipidINT
adjINT
fdINT
ashmem_name_idINT
sizeINT
pssINT
ashmem_idINT
timeINT
ref_countINT
purgedINT
flagINT
+

表描述

+

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

+

关键字段描述

+
    +
  • ts:时间戳
  • +
  • ipid:内部进程号
  • +
  • fd:共享内存文件描述符
  • +
  • ashmem_name_id:共享内存名
  • +
  • size:共享内存大小
  • +
  • pss:PSS内存大小
  • +
  • ashmem_id:共享内存ID
  • +
  • ref_count:引用计数
  • +
  • flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据
  • +
+

memory_dma表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
tsINT
ipidINT
fdINT
sizeINT
inoINT
exp_pidINT
exp_task_comm_idINT
buf_name_idINT
exp_name_idINT
flagINT
+

表描述

+

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

+

关键字段描述

+
    +
  • ts:时间戳
  • +
  • ipid:内部进程号
  • +
  • fd:dma内存文件描述符
  • +
  • size:dma内存大小
  • +
  • exp_pid:申请者的进程号
  • +
  • buf_name_id:dma内存名
  • +
  • exp_name_id:申请者进程名
  • +
  • flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据
  • +
+

memory_process_gpu表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
tsINT
gpu_name_idINT
all_gpu_sizeINT
addrTEXT
ipidINT
itidINT
used_gpu_sizeINT
+

表描述

+

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

+

关键字段描述

+
    +
  • ts:时间戳
  • +
  • gpu_name_id:gpu内存名称
  • +
  • all_gpu_size:进程占用gpu总大小
  • +
  • addr:gpu内存地址
  • +
  • ipid:内部进程号
  • +
  • itid:内部线程号
  • +
  • used_gpu_size:已使用的gpu大小
  • +
+

memory_window_gpu表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
tsINT
window_name_idINT
window_idINT
module_name_idINT
category_name_idINT
sizeINT
countINT
purgeable_sizeINT
+

表描述

+

该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。

+

关键字段描述

+
    +
  • ts:时间戳
  • +
  • window_name_id:窗口名
  • +
  • window_id:窗口id
  • +
  • module_name_id:模块名
  • +
  • category_name_id:目录名
  • +
  • size:内存大小
  • +
  • count:内存申请个数
  • +
+

static_initalize表

+

表结构

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Columns NameSQL TYPE
idINT
ipidINT
tidINT
call_idINT
start_timeINT
end_timeINT
so_nameTEXT
depthINT
+

表描述

+

该表记录了so初始化相关数据。

+

关键字段描述

+
    +
  • ipid:内部进程号
  • +
  • tid:内部线程号
  • +
  • call_id:调用者的ID,对应线程表里面的itid
  • +
  • start_time:阶段开始时间
  • +
  • end_time:阶段结束时间
  • +
  • so_name:so文件名称
  • +
  • depth:泳道图的深度
  • +
+ + + + diff --git a/ide/src/doc/des_wakup.html b/ide/src/doc/des_wakup.html index 1a586723b774bbb24bb0dbfecdb7000a5ed22e9c..45a58bd2376497e5fb69e2ece232891ae3b7d1b0 100644 --- a/ide/src/doc/des_wakup.html +++ b/ide/src/doc/des_wakup.html @@ -1,4 +1,4 @@ - + des_wakup diff --git a/ide/src/doc/md/des_tables.md b/ide/src/doc/md/des_tables.md index 509d3a73cfdeae22aa2f06b5f1a248b5fece7f94..8e2a37ec3c714a8f06f55307a7619f939566520d 100644 --- a/ide/src/doc/md/des_tables.md +++ b/ide/src/doc/md/des_tables.md @@ -1,262 +1,288 @@ # TraceStreamer数据表概述 + TraceStreamer可以将trace数据源转化为易于理解和使用的数据库。用户可以通过SmartPerf界面直观的研究系统跟踪数据,也可在理解TraceStreamer生成的数据库的基础上,在TraceStreamer的交互模式或者Smartperf的数据库查询模式下,使用SQL查询语句自由组装查看用户关心的数据。下文将对TraceStreamer生成的数据库进行详细描述,给用户使用SQL查询系统跟踪数据提供帮助。 ## TraceStreamer输出的数据表分类 -* 常规泳道图数据表 -![GitHub Logo](../../figures/traceStreamer/db_common.png) -* native memory数据源相关表 -![GitHub Logo](../../figures/traceStreamer/db_native_memory.png) -* perf相关数据表 -![GitHub Logo](../../figures/traceStreamer/db_hiperf.png) -* hisysevent相关数据表 -![GitHub Logo](../../figures/traceStreamer/db_hisys_event.png) + +- 常规泳道图数据表 + ![GitHub Logo](../../figures/traceStreamer/db_common.png) +- native memory数据源相关表 + ![GitHub Logo](../../figures/traceStreamer/db_native_memory.png) +- perf相关数据表 + ![GitHub Logo](../../figures/traceStreamer/db_hiperf.png) +- hisysevent相关数据表 + ![GitHub Logo](../../figures/traceStreamer/db_hisys_event.png) + ## TraceStreamer输出数据库包含以下表格 -| 表名称 |作用| -| ---- |---- | -| animation | 记录动效的响应时延和完成时延| -| app_name | 记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系| -| app_startup | 记录了应用启动相关数据| -| args | 记录方法参数集合| -| bio_latency_sample | 记录IO操作相关方法调用,及调用栈数据| -| callstack | 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号| -| clk_event_filter | 记录时钟相关的信息| -| clock_event_filter | 此结构用来维护时钟事件,cpu与唯一的ID做关联| -| clock_snapshot | 时钟号和时间,时钟名的映射表| -| cpu_measure_filter | cpu事件过滤器表| -| cpu_usage | 记录CPU使用率事件| -| datasource_clockid | 数据源和时钟号的映射表| -| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据| -| data_type | 记录数据类型和typeId的关联关系| -| device_info | 记录设备分辨率和帧率| -| device_state | 记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息| -| diskio | 记录磁盘读写数据事件| -| dynamic_frame | 记录动效帧的分辨率和结束时间等| -| ebpf_callstack | 记录了采样相关信息| -| file_system_sample | 记录了调用栈的相关信息| -| frame_maps | 记录应用到RS的帧的映射关系| -| frame_slice | 记录RS(RenderService)和应用的帧渲染| -| gpu_slice | 记录RS的帧对应的gpu渲染时长| -| hidump | 记录FPS(Frame Per Second)数据| -| hisys_event_measure | 记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件 | -| instant | 记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用 | -| irq | 记录中断相关事件| -| js_config | 记录了arkTs数据采集的相关配置| -| js_cpu_profiler_node | 记录了cpu profiler中node节点的数据| -| js_cpu_profiler_sample | 记录了cpu profiler中sample节点的数据| -| js_heap_edges | 记录了js内存数据类对象对应的成员的信息| -| js_heap_files | 记录了js内存数据的名称和时间| -| js_heap_info | 记录了js内存数据类型,如nodes和edges的字段类型和数据总数| -| js_heap_location | 记录了js内存location节点相关数据| -| js_heap_nodes | 记录了js内存类对象和其成员的对应关系| -| js_heap_sample | 记录了timeline模式下的时间轴信息| -| js_heap_string | 记录了js内存数据中的字符串| -| js_heap_trace_function_info | 记录了timeline模式下的调用栈的每个函数信息| -| js_heap_trace_node | 记录了timeline模式下的调用栈信息| -| live_process | 记录了一些实时的进程中执行的一些数据| -| log | 记录hilog打印日志数据| -| measure | 记录所有的计量值| -| measure_filter | 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录| -| memory_ashmem | 记录了进程所占用的ashmem相关信息| -| memory_dma | 记录了进程占用的DMA内存相关信息| -| memory_process_gpu | 记录进程占用GPU内存相关信息| -| memory_window_gpu | 记录窗口占用GPU内存相关信息| -| meta | 记录执行解析操作相关的基本信息| -| native_hook | 记录堆内存申请与释放相关的数据| -| native_hook_frame | 记录堆内存申请与释放相关的调用栈| -| native_hook_statistic | 记录堆内存申请与释放相关的统计信息| -| network | 抓取网络信息传输时产生的一些相关信息| -| paged_memory_sample | 记录内存操作相关方法调用,及调用栈数据| -| perf_callchain | 记录Hiperf采样数据的调用栈信息| -| perf_files | 记录Hiperf工具采集到的函数符号表和文件名| -| perf_report | 记录Hiperf工具采集数据时的配置信息。包括|抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称| -| perf_sample | 记录Hiperf工具的采样信息| -| perf_thread | 记录Hiperf工具采集到的进程和线程数据| -| process | 记录所有的进程信息| -| process_filter | 过滤进程| -| process_measure | 保存进程的所有计量值| -| process_measure_filter | 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id| -| raw | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_waking,sched_wakup, cpu_idle事件的原始记录| -| sched_slice | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录| -| smaps | 记录进程的内存消耗的相关信息采样| -| stat | 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解| -| static_initalize | 记录了so初始化相关数据| -| symbols | 记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间| -| syscall | 记录用户空间函数与内核空间函数相互调用记录| -| sys_event_filter | 记录所有的filter| -| sys_mem_measure | 记录了所有的系统内存相关的测量信息| -| task_pool | 记录任务池相关数据,与callstack表相关联| -| thread | 记录所有的线程信息| -| thread_filter | 过滤线程| -| thread_state | 记录线程状态信息| -| trace_config | 记录trace数据源,proto的事件-plugin与其process_name| -| trace_range | 记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用| + +| 表名称 | 作用 | +| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | +| animation | 记录动效的响应时延和完成时延 | +| app_name | 记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系 | +| app_startup | 记录了应用启动相关数据 | +| args | 记录方法参数集合 | +| bio_latency_sample | 记录IO操作相关方法调用,及调用栈数据 | +| callstack | 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号 | +| clk_event_filter | 记录时钟相关的信息 | +| clock_event_filter | 此结构用来维护时钟事件,cpu与唯一的ID做关联 | +| clock_snapshot | 时钟号和时间,时钟名的映射表 | +| cpu_measure_filter | cpu事件过滤器表 | +| cpu_usage | 记录CPU使用率事件 | +| datasource_clockid | 数据源和时钟号的映射表 | +| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据 | +| data_type | 记录数据类型和typeId的关联关系 | +| device_info | 记录设备分辨率和帧率 | +| device_state | 记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息 | +| diskio | 记录磁盘读写数据事件 | +| dynamic_frame | 记录动效帧的分辨率和结束时间等 | +| ebpf_callstack | 记录了采样相关信息 | +| file_system_sample | 记录了调用栈的相关信息 | +| frame_maps | 记录应用到RS的帧的映射关系 | +| frame_slice | 记录RS(RenderService)和应用的帧渲染 | +| gpu_slice | 记录RS的帧对应的gpu渲染时长 | +| hidump | 记录FPS(Frame Per Second)数据 | +| hisys_event_measure | 记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件 | +| instant | 记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用 | +| irq | 记录中断相关事件 | +| js_config | 记录了arkTs数据采集的相关配置 | +| js_cpu_profiler_node | 记录了cpu profiler中node节点的数据 | +| js_cpu_profiler_sample | 记录了cpu profiler中sample节点的数据 | +| js_heap_edges | 记录了js内存数据类对象对应的成员的信息 | +| js_heap_files | 记录了js内存数据的名称和时间 | +| js_heap_info | 记录了js内存数据类型,如nodes和edges的字段类型和数据总数 | +| js_heap_location | 记录了js内存location节点相关数据 | +| js_heap_nodes | 记录了js内存类对象和其成员的对应关系 | +| js_heap_sample | 记录了timeline模式下的时间轴信息 | +| js_heap_string | 记录了js内存数据中的字符串 | +| js_heap_trace_function_info | 记录了timeline模式下的调用栈的每个函数信息 | +| js_heap_trace_node | 记录了timeline模式下的调用栈信息 | +| live_process | 记录了一些实时的进程中执行的一些数据 | +| log | 记录hilog打印日志数据 | +| measure | 记录所有的计量值 | +| measure_filter | 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录 | +| memory_ashmem | 记录了进程所占用的ashmem相关信息 | +| memory_dma | 记录了进程占用的DMA内存相关信息 | +| memory_process_gpu | 记录进程占用GPU内存相关信息 | +| memory_window_gpu | 记录窗口占用GPU内存相关信息 | +| meta | 记录执行解析操作相关的基本信息 | +| native_hook | 记录堆内存申请与释放相关的数据 | +| native_hook_frame | 记录堆内存申请与释放相关的调用栈 | +| native_hook_statistic | 记录堆内存申请与释放相关的统计信息 | +| network | 抓取网络信息传输时产生的一些相关信息 | +| paged_memory_sample | 记录内存操作相关方法调用,及调用栈数据 | +| perf_callchain | 记录Hiperf采样数据的调用栈信息 | +| perf_files | 记录Hiperf工具采集到的函数符号表和文件名 | +| perf_report | 记录Hiperf工具采集数据时的配置信息。包括 | 抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称 | +| perf_sample | 记录Hiperf工具的采样信息 | +| perf_thread | 记录Hiperf工具采集到的进程和线程数据 | +| process | 记录所有的进程信息 | +| process_filter | 过滤进程 | +| process_measure | 保存进程的所有计量值 | +| process_measure_filter | 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id | +| raw | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_waking,sched_wakup, cpu_idle事件的原始记录 | +| sched_slice | 此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录 | +| smaps | 记录进程的内存消耗的相关信息采样 | +| stat | 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 | +| static_initalize | 记录了so初始化相关数据 | +| symbols | 记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间 | +| syscall | 记录用户空间函数与内核空间函数相互调用记录 | +| sys_event_filter | 记录所有的filter | +| sys_mem_measure | 记录了所有的系统内存相关的测量信息 | +| task_pool | 记录任务池相关数据,与callstack表相关联 | +| thread | 记录所有的线程信息 | +| thread_filter | 过滤线程 | +| thread_state | 记录线程状态信息 | +| trace_config | 记录trace数据源,proto的事件-plugin与其process_name | +| trace_range | 记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用 | + ## 表与事件来源 -| 表名称 | 事件源 | 插件名 | 备注 | -| ---- | ---- | ---- | ---- | -|animation | - |ftrace-plugin |记录动效的响应时延和完成时延 | -|app_name | - |hisysevent-plugin |JSON数据源 | -|args | - |ftrace-plugin |配合callstack使用 | -|bio_latency_sample | - | - |IO操作相关方法调用,及调用栈数据 | -|callstack | - |ftrace-plugin |异步或非异步的调用 | -|cpu_measure_filter | - |ftrace-plugin |cpu跟踪器,cpu频率等 | -|cpu_usage | - |cpu-plugin |cpu使用率 | -|data_dict | 通用的 | - |所有字符串的记录 | -|data_type | 通用的 | - |辅助表 | -|device_info | - |ftrace-plugin |记录设备分辨率和帧率 | -|device_state | 通用的 |hisysevent-plugin |记录设备屏幕亮度,蓝牙,位置等信息 | -|dynamic_frame | - |ftrace-plugin |动效帧的分辨率和结束时间等 | -|ebpf_callstack | - | - |磁盘读写相关的数据 | -|file_system_callstack | - | - |ebpf文件系统 | -|file_system_sample | - | - |ebpf文件系统 | -|frame_maps | - |ftrace-plugin |帧渲染数据,app到RS的映射 | -|frame_slice | - |ftrace-plugin |帧渲染数据 | -|gpu_slice | - |ftrace-plugin |gpu渲染时长 | -|hidump | - |hidump-plugin |FPS数据 | -|hisys_event_measure | - |hisysevent-plugin |JSON数据源 | -|instant | - |ftrace-plugin |waking和wakeup事件 | -|irq | - |ftrace-plugin |记录中断事件 | -|js_config | - |arkts-plugin | arkTs数据采集的配置 | -|js_cpu_profiler_node | - |arkts-plugin | 记录了cpu profiler中node节点的数据 | -|js_cpu_profiler_sample | - |arkts-plugin | 记录了cpu profiler中sample节点的数据 | -|js_heap_edges | - |arkts-plugin | js内存数据 | -|js_heap_files | - |arkts-plugin | js内存数据 | -|js_heap_info | - |arkts-plugin | js内存数据 | -|js_heap_location | - |arkts-plugin | js内存数据 | -|js_heap_nodes | - |arkts-plugin | js内存数据 | -|js_heap_sample | - |arkts-plugin | js内存数据 | -|js_heap_string | - |arkts-plugin | js内存数据 | -|js_heap_trace_function_info | - |arkts-plugin | js内存数据 | -|js_heap_trace_node | - |arkts-plugin | js内存数据 | -|app_startup | - |ftrace-plugin | 应用启动数据 | -|static_initalize | - |ftrace-plugin | so初始化数据 | -|live_process | - |process-plugin |Monitor数据 | -|network | - |network-plugin |Monitor数据 | -|diskio | - |diskio-plugin |Monitor数据 | -|log | - |hilog-plugin |系统日志 | -|measure | 通用的 | - |系统中的计量值(数值型)| -|measure_filter | 通用的 | - |计量值的查询辅助表 | -|memory_ashmem | - |memory-plugin |进程所占用ashmem相关信息 | -|memory_dma | - |memory-plugin |进程占用的DMA内存相关信息 | -|memory_process_gpu | - |memory-plugin |进程占用GPU内存相关信息 | -|memory_window_gpu | - |memory-plugin |窗口占用GPU内存相关信息 | -|meta | 通用的 | - |记录解析现场数据(解析时间,数据类型,解析工具等)| -|native_hook | - |nativehook/hookdaemon |malloc && mmap内存数据 | -|native_hook_frame | - |nativehook/hookdaemon |native_hook调用栈数据 | -|native_hook_statistic | - |nativehook/hookdaemon |malloc && mmap统计数据 | -|paged_memory_sample | - | - |网络数据传输相关的信息 | -|perf_callchain | - |perf-plugin |perf数据(非插件模式) | -|perf_files | - | - |perf数据(非插件模式) | -|perf_report | - | - |perf数据(非插件模式) | -|perf_sample | - | - |perf数据(非插件模式) | -|perf_thread | - | - |perf数据(非插件模式) | -|process | - |ftrace-plugin |进程信息 | -|process_filter | - |ftrace-plugin |进程计量表的辅助表 | -|process_measure | - |ftrace-plugin |进程内存 | -|process_measure_filter| - |ftrace-plugin |process_measure的辅助表| -|raw | - |ftrace-plugin |线程唤醒信息 | -|sched_slice | - |ftrace-plugin |配合现场状态表使用,dsched_switch的原始数据| -|smaps | - |memory-plugin |进程的内存消耗 | -|stat | 通用的 | - |记录不同种类数据的数据量| -|symbols | - |ftrace-plugin |符号表(地址到字符串的映射)| -|syscall | - |ftrace-plugin |系统调用 sys_enter/exit| -|sys_event_filter | - |ftrace-plugin | | -|sys_mem_measure | - |memory-plugin |系统内存 | -|thread | 通用的 | - |线程信息(常用) | -|thread_state | 通用的 |ftrace-plugin |线程调度图(常用) | -|trace_config | 通用的 |hisysevent-plugin |记录trace数据源 | -|trace_range | 通用的 | - |trace数据的时长 | -|thread_filter | 通用的 |ftrace-plugin |线程计量跟踪表(比较少用)| -|clock_snapshot | 通用的 |通用的 |时钟号和时间,时钟名的映射表| -|datasource_clockid | 通用的 |通用的 |数据源和时钟号的映射表| -|task_pool | - | - |任务池数据 | - -## ___表格关系图___ + +| 表名称 | 事件源 | 插件名 | 备注 | +| --------------------------- | ------ | --------------------- | -------------------------------------------------- | +| animation | - | ftrace-plugin | 记录动效的响应时延和完成时延 | +| app_name | - | hisysevent-plugin | JSON数据源 | +| args | - | ftrace-plugin | 配合callstack使用 | +| bio_latency_sample | - | - | IO操作相关方法调用,及调用栈数据 | +| callstack | - | ftrace-plugin | 异步或非异步的调用 | +| cpu_measure_filter | - | ftrace-plugin | cpu跟踪器,cpu频率等 | +| cpu_usage | - | cpu-plugin | cpu使用率 | +| data_dict | 通用的 | - | 所有字符串的记录 | +| data_type | 通用的 | - | 辅助表 | +| device_info | - | ftrace-plugin | 记录设备分辨率和帧率 | +| device_state | 通用的 | hisysevent-plugin | 记录设备屏幕亮度,蓝牙,位置等信息 | +| dynamic_frame | - | ftrace-plugin | 动效帧的分辨率和结束时间等 | +| ebpf_callstack | - | - | 磁盘读写相关的数据 | +| file_system_callstack | - | - | ebpf文件系统 | +| file_system_sample | - | - | ebpf文件系统 | +| frame_maps | - | ftrace-plugin | 帧渲染数据,app到RS的映射 | +| frame_slice | - | ftrace-plugin | 帧渲染数据 | +| gpu_slice | - | ftrace-plugin | gpu渲染时长 | +| hidump | - | hidump-plugin | FPS数据 | +| hisys_event_measure | - | hisysevent-plugin | JSON数据源 | +| instant | - | ftrace-plugin | waking和wakeup事件 | +| irq | - | ftrace-plugin | 记录中断事件 | +| js_config | - | arkts-plugin | arkTs数据采集的配置 | +| js_cpu_profiler_node | - | arkts-plugin | 记录了cpu profiler中node节点的数据 | +| js_cpu_profiler_sample | - | arkts-plugin | 记录了cpu profiler中sample节点的数据 | +| js_heap_edges | - | arkts-plugin | js内存数据 | +| js_heap_files | - | arkts-plugin | js内存数据 | +| js_heap_info | - | arkts-plugin | js内存数据 | +| js_heap_location | - | arkts-plugin | js内存数据 | +| js_heap_nodes | - | arkts-plugin | js内存数据 | +| js_heap_sample | - | arkts-plugin | js内存数据 | +| js_heap_string | - | arkts-plugin | js内存数据 | +| js_heap_trace_function_info | - | arkts-plugin | js内存数据 | +| js_heap_trace_node | - | arkts-plugin | js内存数据 | +| app_startup | - | ftrace-plugin | 应用启动数据 | +| static_initalize | - | ftrace-plugin | so初始化数据 | +| live_process | - | process-plugin | Monitor数据 | +| network | - | network-plugin | Monitor数据 | +| diskio | - | diskio-plugin | Monitor数据 | +| log | - | hilog-plugin | 系统日志 | +| measure | 通用的 | - | 系统中的计量值(数值型) | +| measure_filter | 通用的 | - | 计量值的查询辅助表 | +| memory_ashmem | - | memory-plugin | 进程所占用ashmem相关信息 | +| memory_dma | - | memory-plugin | 进程占用的DMA内存相关信息 | +| memory_process_gpu | - | memory-plugin | 进程占用GPU内存相关信息 | +| memory_window_gpu | - | memory-plugin | 窗口占用GPU内存相关信息 | +| meta | 通用的 | - | 记录解析现场数据(解析时间,数据类型,解析工具等) | +| native_hook | - | nativehook/hookdaemon | malloc && mmap内存数据 | +| native_hook_frame | - | nativehook/hookdaemon | native_hook调用栈数据 | +| native_hook_statistic | - | nativehook/hookdaemon | malloc && mmap统计数据 | +| paged_memory_sample | - | - | 网络数据传输相关的信息 | +| perf_callchain | - | perf-plugin | perf数据(非插件模式) | +| perf_files | - | - | perf数据(非插件模式) | +| perf_report | - | - | perf数据(非插件模式) | +| perf_sample | - | - | perf数据(非插件模式) | +| perf_thread | - | - | perf数据(非插件模式) | +| process | - | ftrace-plugin | 进程信息 | +| process_filter | - | ftrace-plugin | 进程计量表的辅助表 | +| process_measure | - | ftrace-plugin | 进程内存 | +| process_measure_filter | - | ftrace-plugin | process_measure的辅助表 | +| raw | - | ftrace-plugin | 线程唤醒信息 | +| sched_slice | - | ftrace-plugin | 配合现场状态表使用,dsched_switch的原始数据 | +| smaps | - | memory-plugin | 进程的内存消耗 | +| stat | 通用的 | - | 记录不同种类数据的数据量 | +| symbols | - | ftrace-plugin | 符号表(地址到字符串的映射) | +| syscall | - | ftrace-plugin | 系统调用 sys_enter/exit | +| sys_event_filter | - | ftrace-plugin | | +| sys_mem_measure | - | memory-plugin | 系统内存 | +| thread | 通用的 | - | 线程信息(常用) | +| thread_state | 通用的 | ftrace-plugin | 线程调度图(常用) | +| trace_config | 通用的 | hisysevent-plugin | 记录trace数据源 | +| trace_range | 通用的 | - | trace数据的时长 | +| thread_filter | 通用的 | ftrace-plugin | 线程计量跟踪表(比较少用) | +| clock_snapshot | 通用的 | 通用的 | 时钟号和时间,时钟名的映射表 | +| datasource_clockid | 通用的 | 通用的 | 数据源和时钟号的映射表 | +| task_pool | - | - | 任务池数据 | + +## **_表格关系图_** + --- + ### 进程表与线程表关系 + 当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。 -Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。 +Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。 thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。 -![GitHub Logo](../../figures/traceStreamer/process_thread.png) +![GitHub Logo](../../figures/traceStreamer/process_thread.png) + ### 查询举例 + - 已知pid = 123,查看当前进程下的所有线程信息,可以使用如下SQL语句: -```select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id``` + `select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id` ### 线程表与线程运行状态表关系图 + thread_state表记录所有线程的运行状态信息,包含ts(状态起始时间),dur(状态持续时间),cpu, itid, state(线程状态)。 thread表的id字段与thread_state表的itid字段相关联。 -![GitHub Logo](../../figures/traceStreamer/thread_state.png) +![GitHub Logo](../../figures/traceStreamer/thread_state.png) + ### 查询举例 + - 已知tid = 123, 查看当前线程的所有运行状态信息,可以使用如下SQL语句: -```select thread_state.* from thread, thread_state where thread.tid = 123 and thread.id = thread_state.itid``` + `select thread_state.* from thread, thread_state where thread.tid = 123 and thread.id = thread_state.itid` ### 堆内存数据变化表关系图 -native_hook表记录堆内存申请(AllocEvent)和释放(FreeEvent)数据。native_hook表通过ipid和itid字段分别与process和thread表的id字段关联,通过callChainId与native_hook_frame表的callChainId字段相关联。 -native_hook表字段解释如下: -- callChainId:唯一标识一次堆内存申请或释放, 通过与native_hook_frame表关联可以拿到当前申请或释放的函数调用堆栈。 -- addr:堆内存申请/释放的地址。 + +native_hook表记录堆内存申请(AllocEvent)和释放(FreeEvent)数据。native_hook表通过ipid和itid字段分别与process和thread表的id字段关联,通过callChainId与native_hook_frame表的callChainId字段相关联。 +native_hook表字段解释如下: + +- callChainId:唯一标识一次堆内存申请或释放, 通过与native_hook_frame表关联可以拿到当前申请或释放的函数调用堆栈。 +- addr:堆内存申请/释放的地址。 - native_hook_size:堆内存申请/释放的大小。 native_hook_frame表记录内存申请/释放的调用堆栈。通过callChainId区分一组调用堆栈,depth为堆栈深度,depth为0时,表示当前行为栈顶数据。 -![GitHub Logo](../../figures/traceStreamer/dump_and_mem.png) +![GitHub Logo](../../figures/traceStreamer/dump_and_mem.png) native_hook_statistic表记录内存申请/释放的统计信息。通过callChainId区分一组调用堆栈。每个统计事件将记录当前事件的callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。 -![GitHub Logo](../../figures/traceStreamer/db_native_hook_statistic.png) +![GitHub Logo](../../figures/traceStreamer/db_native_hook_statistic.png) ### 查询举例 + - 已知tid = 123,查看当前线程的所有堆内存变化信息,可以使用如下SQL语句: -```select native_hook.* from thread, native_hook where thread.tid = 123 and thread.id = native_hook.itid``` + `select native_hook.* from thread, native_hook where thread.tid = 123 and thread.id = native_hook.itid` - 已知callchainid = 1, 查看当前内存变化调用堆栈 -```select * from native_hook_frame where callchain_id = 1``` + `select * from native_hook_frame where callchain_id = 1` - 已知callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息 -```select * from native_hook_statistic where callchain_id = 1``` + `select * from native_hook_statistic where callchain_id = 1` ### 日志表与进程线程表关系图 + log表记录日志信息。可以根据seq字段的连续性,来判断是否存在日志丢失的情况。 ![GitHub Logo](../../figures/traceStreamer/log.png) + ### 查询举例 + - 已知tid = 123,查看当前线程的所有error级别的日志,可以使用如下SQL语句: -```select * from log where tid = 123 and level = "error"``` + `select * from log where tid = 123 and level = "error"` ### perf表之间关系图 -- perf_report:此表记录Hiperf工具采集数据时的配置信息。 -- perf_thread:此表记录hiperf采集到的进程和线程数据。 -- perf_sample:此表中记录Hiperf工具的采样信息。sample_id唯一表识一次采样记录,与perf_callchain表中的sample_id字段相关联。thread_id为线程号。与perf_thread表中的thread_id字段相关联。event_type_id为当前采样的事件类型id,与perf_report表中的id字段相关联。 -- perf_callchain:此表格记录的是调用栈信息。 -- Perf_files:此表格主要存放着获取到的函数符号表和文件信息。file_id唯一表识一个文件,与perf_callchain表中的file_id字段相关联。 -![GitHub Logo](../../figures/traceStreamer/perf.png) +- perf_report:此表记录Hiperf工具采集数据时的配置信息。 +- perf_thread:此表记录hiperf采集到的进程和线程数据。 +- perf_sample:此表中记录Hiperf工具的采样信息。sample_id唯一表识一次采样记录,与perf_callchain表中的sample_id字段相关联。thread_id为线程号。与perf_thread表中的thread_id字段相关联。event_type_id为当前采样的事件类型id,与perf_report表中的id字段相关联。 +- perf_callchain:此表格记录的是调用栈信息。 +- Perf_files:此表格主要存放着获取到的函数符号表和文件信息。file_id唯一表识一个文件,与perf_callchain表中的file_id字段相关联。 + +![GitHub Logo](../../figures/traceStreamer/perf.png) + ### 查询举例 + - 已知同步后的时间戳为28463134340470,查询采样数据 -```select * from perf_sample where timestamp_trace = 28463134340470``` + `select * from perf_sample where timestamp_trace = 28463134340470` - 已知同步后的时间戳为28463134340470,查询采样数据对应的的调用栈信息 -```select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and A.sample_id = B.sample_id``` + `select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and A.sample_id = B.sample_id` - 已知同步后的时间戳为28463134277762,查询采样数据的函数名及文件路径 -```select A.*, B.name, C.path from perf_sample as A, perf_callchain as B, perf_files as C where A.timestamp_trace = 28463134277762 and B.sample_id = A.sample_id and B.callchain_id = 0 and B.file_id = C.file_id and C.serial_id = 0``` + `select A.*, B.name, C.path from perf_sample as A, perf_callchain as B, perf_files as C where A.timestamp_trace = 28463134277762 and B.sample_id = A.sample_id and B.callchain_id = 0 and B.file_id = C.file_id and C.serial_id = 0` - 已知线程号为6700,查询所有的采样记录 -```select * from perf_sample where thread_id = 6700``` + `select * from perf_sample where thread_id = 6700` - 已知进程号为7863,查询所有的采样记录 -```select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = B.thread_id``` + `select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = B.thread_id` - 查询所有采样对应的事件类型 -```select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id``` + `select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id` ### 帧渲染表之间的关系图 + frame_slice: 记录RS(RenderService)和应用的帧渲染。 gpu_slice: 记录RS的帧对应的gpu渲染时长。 frame_maps:记录应用到RS的帧的映射关系。 -![GitHub Logo](../../figures/traceStreamer/frames.jpg) +![GitHub Logo](../../figures/traceStreamer/frames.jpg) + ### 查询示例 + - 已知进程,查询进程对应的实际渲染帧 -```select * from frame_slice where ipid = 1``` + `select * from frame_slice where ipid = 1` - 已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧 -```select * from frame_slice where id = 12 ``` + `select * from frame_slice where id = 12 ` - 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长 -```select * from gpu_slice where frame_row = 14``` + `select * from gpu_slice where frame_row = 14` ### JS内存数据表关系图 @@ -269,367 +295,476 @@ js_heap_edges:记录js内存类对象的成员数据 js_heap_trace_node:记录timeline的调用栈信息 js_heap_sample:记录timeline的时间轴信息 ![1683163373206](image/des_tables/js_heap_nodes.png) + ## TraceStreamer输出数据库表格详细介绍 + ### app_name表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|flag |INT | -|app_name |INT | -|app_key |INT | +| ------------ | -------- | +| id | INT | +| flag | INT | +| app_name | INT | +| app_key | INT | + #### 表描述 + 记录HiSysevent上报事件中的IDE相关事件中APPNAME的表关联信息。 + #### 字段详细描述 -- id:用于与表hisys_event_measure表中的key_id字段做对应 -- app_name:对应的事件的信息ID + +- id:用于与表hisys_event_measure表中的key_id字段做对应 +- app_name:对应的事件的信息ID - app_key:对应的事件的APPNAME字段的信息ID ### args表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|key |INT | -|datatype |INT | -|value |INT | -|argset |INT | +| ------------ | -------- | +| id | INT | +| key | INT | +| datatype | INT | +| value | INT | +| argset | INT | + #### 表描述 + 记录方法的参数集合。 + #### 字段详细描述 -- key:键 -- datatype:数据类型 -- value:取值 + +- key:键 +- datatype:数据类型 +- value:取值 - argset:参数集合 ### bio_latency_sample表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|datatype |INT | -|type |INT | -|ipid |INT | -|itid |INT | -|start_ts |INT | -|end_ts |INT | -|latency_dur |INT | -|tier |INT | -|size |INT | -|block_number |TEXT | -|path |TEXT | -|dur_per_4k |INT | +| ------------ | -------- | +| id | INT | +| callchain_id | INT | +| datatype | INT | +| type | INT | +| ipid | INT | +| itid | INT | +| start_ts | INT | +| end_ts | INT | +| latency_dur | INT | +| tier | INT | +| size | INT | +| block_number | TEXT | +| path | TEXT | +| dur_per_4k | INT | + #### 表描述 + 记录IO操作相关方法调用,及调用栈数据。 + #### 字段详细描述 -- callchain_id:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联 -- type:事件类型其取值为枚举类型(DATA_READ,DATA_WRITE,METADATA_READ,- METADATA_WRITE,PAGE_IN,PAGE_OUT) -- ipid:TS内部进程号 -- itid:TS内部线程号 -- start_ts:开始时间 -- end_ts:结束时间 -- latency_dur:总延迟 -- tier:优先级 -- size:文件大小 -- block_number:数据量大小(一般为4K) -- path:路径id + +- callchain_id:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联 +- type:事件类型其取值为枚举类型(DATA_READ,DATA_WRITE,METADATA_READ,- METADATA_WRITE,PAGE_IN,PAGE_OUT) +- ipid:TS内部进程号 +- itid:TS内部线程号 +- start_ts:开始时间 +- end_ts:结束时间 +- latency_dur:总延迟 +- tier:优先级 +- size:文件大小 +- block_number:数据量大小(一般为4K) +- path:路径id - dur_per_4k:每4k数据的平均延迟 ### callstack表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|dur |INT | -|callid |INT | -|cat |TEXT | -|identify |INT | -|name |TEXT | -|depth |INT | -|cookie |INT | -|parent_id |INT | -|argsetid |INT | -|chainId |TEXT | -|spanId |TEXT | -|parentSpanId |TEXT | -|flag |TEXT | -|args |TEXT | +| ------------ | -------- | +| id | INT | +| ts | INT | +| dur | INT | +| callid | INT | +| cat | TEXT | +| identify | INT | +| name | TEXT | +| depth | INT | +| cookie | INT | +| parent_id | INT | +| argsetid | INT | +| chainId | TEXT | +| spanId | TEXT | +| parentSpanId | TEXT | +| flag | TEXT | +| args | TEXT | + #### 表描述 + 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步的调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号。 + #### 字段详细描述 -- dur:调用时长 -- callid:调用者的ID,比如针对线程表里面的id -- identify:调用栈的名字,与表dataDict相关联能够取出其string值 -- name:调用名称 -- depth:调用深度 -- parent_id:父调用的id -- spanId:分布式调用关联关系 -- flag:C表示分布式调用发送方,S表示接受方 + +- dur:调用时长 +- callid:调用者的ID,比如针对线程表里面的id +- identify:调用栈的名字,与表dataDict相关联能够取出其string值 +- name:调用名称 +- depth:调用深度 +- parent_id:父调用的id +- spanId:分布式调用关联关系 +- flag:C表示分布式调用发送方,S表示接受方 - args:分布式调用函数参数 ### clk_event_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|cpu |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| cpu | INT | + #### 表描述 + 记录时钟信息。 + #### 字段详细描述 -- Type:时钟事件类型 + +- Type:时钟事件类型 - Name:时钟事件名称 ### clock_event_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|cpu |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| cpu | INT | + #### 表描述 + 此结构用来维护时钟事件,cpu与唯一的ID做关联。 + #### 主要字段描述 -- Type:时钟事件类型 + +- Type:时钟事件类型 - Name:时钟事件名称 ### cpu_measure_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|cpu |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| cpu | INT | + #### 表描述 + 将cpu号作为key1,cpu的频率,空闲等状态作为key2,唯一确定一个filter_id。 + #### 主要字段描述 + - Id(filterid), cpu:事件名称,cpu号 ### cpu_usage表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|dur |INT | -|total_load |REAL | -|user_load |REAL | -|system_load |REAL | -|process_num |INT | +| ------------ | -------- | +| ts | INT | +| dur | INT | +| total_load | REAL | +| user_load | REAL | +| system_load | REAL | +| process_num | INT | + #### 表描述 + 记录了与CPU使用率相关的数据。 + #### 主要字段描述 -- total_load:总负荷 -- user_load:用户负载 -- system_load:系统负载 + +- total_load:总负荷 +- user_load:用户负载 +- system_load:系统负载 - process_num:线程数 ### data_dict表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|data |TEXT | +| ------------ | -------- | +| id | INT | +| data | TEXT | + #### 表描述 + 此表记录了一个数据类型ID和字符串的映射。 + #### 主要字段描述 -- id:索引值 + +- id:索引值 - data:字符串 ### data_type表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|typeId |INT | -|desc |TEXT | +| ------------ | -------- | +| id | INT | +| typeId | INT | +| desc | TEXT | + #### 表描述 + 此表记录了一个数据类型ID和数据描述的映射。 + #### 主要字段描述 -- typeId::数据类型id + +- typeId::数据类型id - Desc:数据类型描述 ### diskio表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|dur |INT | -|rd |INT | -|wr |INT | -|rd_speed |REAL | -|wr_speed |REAL | -|rd_count |INT | -|wr_count |INT | -|rd_count_speed |REAL | -|wr_count_speed |REAL | + +| Columns Name | SQL TYPE | +| -------------- | -------- | +| ts | INT | +| dur | INT | +| rd | INT | +| wr | INT | +| rd_speed | REAL | +| wr_speed | REAL | +| rd_count | INT | +| wr_count | INT | +| rd_count_speed | REAL | +| wr_count_speed | REAL | + #### 表描述 + 记录了与磁盘读写相关的数据。 + #### 主要字段描述 -- rd_sectors_kb:读数据的速度 -- wr_sectors_kb:写入数据的速度 + +- rd_sectors_kb:读数据的速度 +- wr_sectors_kb:写入数据的速度 - ts:时间戳 ### ebpf_callstack表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|depth |TEXT | -|ip |TEXT | -|symbols_id |INT | -|file_path_id |INT | +| ------------ | -------- | +| id | INT | +| callchain_id | INT | +| depth | TEXT | +| ip | TEXT | +| symbols_id | INT | +| file_path_id | INT | + #### 表描述 + 记录了与磁盘读写相关的数据。 + #### 主要字段描述 -- callchain_id:调用栈的唯一标识 -- depth:调用栈深度。取值为零时表示栈顶 + +- callchain_id:调用栈的唯一标识 +- depth:调用栈深度。取值为零时表示栈顶 - ip:调用栈ip -- symbols_id:调用栈函数名称, 与data_dict中的id字段关联 +- symbols_id:调用栈函数名称, 与data_dict中的id字段关联 - file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联 ### file_system_sample表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|callchain_id |INT | -|type |INT | -|ipid |INT | -|itid |INT | -|start_ts |INT | -|end_ts |INT | -|dur |INT | -|return_value |TEXT | -|error_code |TEXT | -|fd |INT | -|file_id |INT | -|size |INT | -|first_argument |TEXT | -|second_argument |TEXT | -|third_argument |TEXT | -|fourth_argument |TEXT | + +| Columns Name | SQL TYPE | +| --------------- | -------- | +| callchain_id | INT | +| type | INT | +| ipid | INT | +| itid | INT | +| start_ts | INT | +| end_ts | INT | +| dur | INT | +| return_value | TEXT | +| error_code | TEXT | +| fd | INT | +| file_id | INT | +| size | INT | +| first_argument | TEXT | +| second_argument | TEXT | +| third_argument | TEXT | +| fourth_argument | TEXT | + #### 表描述 + 记录了调用栈的相关信息。 + #### 主要字段描述 -- callchain_id:调用栈信息ID与file_system_callstack表中call_chain_id字段相关联 -- type:对应文件操作open,close,read,write -- ipid:线程所属的进程ID -- start_ts:开始时间 -- end_ts:结束时间 -- dur:耗时 -- return_value:文件操作的返回值 -- error_code:文件操作发生错误时的错误码 -- fd:文件描述符fd -- file_id:当type为open,close时为其操作的文件路径,当type为read,write时为固定字段(null) -- size:在type为read,write时对应的文件的读或者写的大小 -- first_argument:参数一 -- second_argument:参数二 -- third_argument:参数三 + +- callchain_id:调用栈信息ID与file_system_callstack表中call_chain_id字段相关联 +- type:对应文件操作open,close,read,write +- ipid:线程所属的进程ID +- start_ts:开始时间 +- end_ts:结束时间 +- dur:耗时 +- return_value:文件操作的返回值 +- error_code:文件操作发生错误时的错误码 +- fd:文件描述符fd +- file_id:当type为open,close时为其操作的文件路径,当type为read,write时为固定字段(null) +- size:在type为read,write时对应的文件的读或者写的大小 +- first_argument:参数一 +- second_argument:参数二 +- third_argument:参数三 - fourth_argument:参数四 ### hidump表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|fps |INT | +| ------------ | -------- | +| id | INT | +| ts | INT | +| fps | INT | + #### 表描述 + 此表记录了设备的帧率信息,fps。 + #### 相关字段描述 + - fps:帧率值 ### hisys_event_measure表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|serial |INT | -|ts |INT | -|name_id |INT | -|key_id |INT | -|type |INT | -|int_value |REAL | -|string_value |TEXT | +| ------------ | -------- | +| serial | INT | +| ts | INT | +| name_id | INT | +| key_id | INT | +| type | INT | +| int_value | REAL | +| string_value | TEXT | + #### 表描述 + 记录所有的system event事件的相关数据,及其相关表的映射信息。 + #### 相关字段描述 -- serial:每条数据过来携带唯一一条id作为标识 -- name_id:存放事件对应的ID,与data_dict表相关联可以取出对应的字段 -- key_id:存放事件包含的字段的ID,与表app_name的id字段相关联,找到app_name表的 id字段对应行的app_key字段与表data_dict表相关联取出对应的字段 -- type:存放事件所包含的字段的值所属的类型为int型还是string(0为int,1为string) -- int_value:存放本事件所包含的字段的int型的值 + +- serial:每条数据过来携带唯一一条id作为标识 +- name_id:存放事件对应的ID,与data_dict表相关联可以取出对应的字段 +- key_id:存放事件包含的字段的ID,与表app_name的id字段相关联,找到app_name表的 id字段对应行的app_key字段与表data_dict表相关联取出对应的字段 +- type:存放事件所包含的字段的值所属的类型为int型还是string(0为int,1为string) +- int_value:存放本事件所包含的字段的int型的值 - string_value:存放本事件所包含的字段的string型的值 ### instant表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|name |TEXT | -|ref |INT | -|wakeup_from |INT | -|ref_type |TEXT | -|value |REAL | +| ------------ | -------- | +| ts | INT | +| name | TEXT | +| ref | INT | +| wakeup_from | INT | +| ref_type | TEXT | +| value | REAL | + #### 表描述 + 记录了系统中的waking和wakeup事件。 + #### 字段描述 -- ts:唤醒时间 -- name:唤醒事件的名称 -- ref:索引号 -- wakeup_from:唤醒当前线程的内部线程号(itid) -- ref_type:描述了value字段的类型(一般取值为itid) + +- ts:唤醒时间 +- name:唤醒事件的名称 +- ref:索引号 +- wakeup_from:唤醒当前线程的内部线程号(itid) +- ref_type:描述了value字段的类型(一般取值为itid) - value:一般为当前线程的内部线程号取值 -### irq表 -#### 表结构 +### irq表 + +#### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|dur |INT | -|callid |INT | -|cat |TEXT | -|name |TEXT | -|depth |INT | -|cookie |INT | -|parent_id |INT | -|argsetid |INT | -|chainId |TEXT | -|spanId |TEXT | -|parentSpanId |TEXT | -|flag |TEXT | -|args |TEXT | +| ------------ | -------- | +| id | INT | +| ts | INT | +| dur | INT | +| callid | INT | +| cat | TEXT | +| name | TEXT | +| depth | INT | +| cookie | INT | +| parent_id | INT | +| argsetid | INT | +| chainId | TEXT | +| spanId | TEXT | +| parentSpanId | TEXT | +| flag | TEXT | +| args | TEXT | + #### 表描述 + 记录中断相关事件。 + #### 相关字段描述 -- dur:调用中断时长 -- callid:调用中断者的ID,比如针对线程表里面的id -- cat:调用栈数据类型(取值范围:irq,softirq...) -- name:调用中断的名称 -- depth:中断调用的深度 -- parent_id:父调用中断的id -- spanId:分布式调用中断关联关系 +- dur:调用中断时长 +- callid:调用中断者的ID,比如针对线程表里面的id +- cat:调用栈数据类型(取值范围:irq,softirq...) +- name:调用中断的名称 +- depth:中断调用的深度 +- parent_id:父调用中断的id +- spanId:分布式调用中断关联关系 ### js_config表 + #### 表结构 -| Columns Name | SQL TYPE | -| ------------- | -------- | -| pid | INT | -| type | INT | -| interval | INT | + +| Columns Name | SQL TYPE | +| --------------------- | -------- | +| pid | INT | +| type | INT | +| interval | INT | | capture_numeric_value | INT | -| trace_allocation | INT | -| enable_cpu_profiler | INT | -| cpu_profiler_interval | INT | +| trace_allocation | INT | +| enable_cpu_profiler | INT | +| cpu_profiler_interval | INT | + #### 表描述 + 记录arkTs数据采集的相关配置。 + #### 相关字段描述 + - pid:目标进程ID。 - type:JS数据类型,取值与枚举HeapType对应,0表示JS内存数据为snapshot类型,1表示JS内存数据为timeline类型,-1表示没有JS内存数据。 - interval:当type=0时生效,单位是秒,表示一次snapshot事件和下一次snapshot事件之间的间隔。 @@ -639,21 +774,27 @@ js_heap_sample:记录timeline的时间轴信息 - cpu_profiler_interval:表示cpuprofiler数据的采集间隔。 ### js_cpu_profiler_node表 + #### 表结构 -| Columns Name | SQL TYPE | -| ------------- | -------- | -| function_id | INT | -| function_index | INT | -| script_id | INT | -| url_index | INT | -| line_number | INT | + +| Columns Name | SQL TYPE | +| -------------- | -------- | +| function_id | INT | +| function_index | INT | +| script_id | INT | +| url_index | INT | +| line_number | INT | | column_number | INT | -| hit_count | INT | -| children | INT | -| parent_id | INT | +| hit_count | INT | +| children | INT | +| parent_id | INT | + #### 表描述 + 记录cpu profiler中node节点的数据。 + #### 相关字段描述 + - function_id: 函数的ID号。 - function_index:函数名称在data_dict中的索引号。 - script_id:关联到的类对象所在文件的绝对路径ID。 @@ -665,17 +806,23 @@ js_heap_sample:记录timeline的时间轴信息 - parent_id:父节点的id号。 ### js_cpu_profiler_sample表 + #### 表结构 -| Columns Name | SQL TYPE | -| ------------- | -------- | -| id | INT | -| function_id | INT | -| start_time | INT | -| end_time | INT | -| dur | INT | + +| Columns Name | SQL TYPE | +| ------------ | -------- | +| id | INT | +| function_id | INT | +| start_time | INT | +| end_time | INT | +| dur | INT | + #### 表描述 + 记录了cpu profiler 中sample节点的数据。 + #### 相关字段描述 + - id: ts内部ID号。 - function_id:函数的ID号。 - start_time:数据上报的起始时间。 @@ -683,7 +830,9 @@ js_heap_sample:记录timeline的时间轴信息 - dur:数据上报的间隔时间。 ### js_heap_edges表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------- | -------- | | file_id | INT | @@ -693,9 +842,13 @@ js_heap_sample:记录timeline的时间轴信息 | to_node | INT | | from_node_id | INT | | to_node_id | INT | + #### 表描述 + 记录js内存数据类对象对应的成员的信息。 + #### 相关字段描述 + - file_id:文件ID - edge_index:成员的索引号 - type:成员的类型,取值范围为js_heap_info表中的edge_types @@ -705,7 +858,9 @@ js_heap_sample:记录timeline的时间轴信息 - to_node_id:此成员指向到的类对象nodes数组中的ID ### js_heap_files表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | id | INT | @@ -713,9 +868,13 @@ js_heap_sample:记录timeline的时间轴信息 | start_time | INT | | end_time | INT | | pid | INT | + #### 表描述 + 记录了js内存数据的文件名称和时间。 + #### 相关字段描述 + - id:文件ID - file_name:文件名称 - start_time:数据抓取的起始时间 @@ -723,7 +882,9 @@ js_heap_sample:记录timeline的时间轴信息 - pid:进程号 ### js_heap_info表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | @@ -731,9 +892,13 @@ js_heap_sample:记录timeline的时间轴信息 | type | INT | | int_value | INT | | str_value | TEXT | + #### 表描述 + 记录了js内存数据类型,如nodes和edges的字段类型和数据总数。 + #### 相关字段描述 + - file_id:文件ID - key:类型名称 - type:数据类型索引 @@ -741,7 +906,9 @@ js_heap_sample:记录timeline的时间轴信息 - str_value:string类型的数据值,如typename ### js_heap_location表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | @@ -749,9 +916,13 @@ js_heap_sample:记录timeline的时间轴信息 | script_id | INT | | line | INT | | column | INT | + #### 表描述 + 记录了js内存location节点相关数据,此表目前无抓取到的数据。 + #### 相关字段描述 + - file_id:文件ID - object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引 - script_id:关联到的类对象所在文件的绝对路径ID @@ -759,7 +930,9 @@ js_heap_sample:记录timeline的时间轴信息 - column:在类对象所在的文件中的列号 ### js_heap_nodes表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------- | -------- | | file_id | INT | @@ -771,9 +944,13 @@ js_heap_sample:记录timeline的时间轴信息 | edge_count | INT | | trace_node_id | INT | | detachedness | INT | + #### 表描述 + 记录了js内存数据中类对象的数据。 + #### 相关字段描述 + - file_id:文件ID - node_index:类对象的索引 - type:类对象的类型 @@ -785,35 +962,49 @@ js_heap_sample:记录timeline的时间轴信息 - detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否 ### js_heap_sample表 + #### 表结构 + | Columns Name | SQL TYPE | | ---------------- | -------- | | file_id | INT | | timestamp_us | INT | | last_assigned_id | INT | + #### 表描述 + 记录了timeline模式下的时间轴信息。 + #### 相关字段描述 + - file_id:文件ID - timestamp_us:时间信息 - last_assigned_id:当前时间点的id ### js_heap_string表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | | file_index | INT | | string | TEXT | + #### 表描述 + 记录了js内存数据中的字符串。 + #### 相关字段描述 + - file_id:文件ID - file_index:索引 - string:对应的字符串信息 ### js_heap_trace_function_info表 + #### 表结构 + | Columns Name | SQL TYPE | | -------------- | -------- | | file_id | INT | @@ -824,9 +1015,13 @@ js_heap_sample:记录timeline的时间轴信息 | script_id | INT | | line | INT | | column | INT | + #### 表描述 + 记录了timeline模式下的调用栈的每个函数信息。 + #### 相关字段描述 + - file_id:文件ID - function_index:函数索引 - function_id:函数ID @@ -837,7 +1032,9 @@ js_heap_sample:记录timeline的时间轴信息 - column:在类对象所在的文件中的列号 ### js_heap_trace_node表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------------- | -------- | | file_id | INT | @@ -846,9 +1043,13 @@ js_heap_sample:记录timeline的时间轴信息 | count | INT | | size | INT | | parent_id | INT | + #### 表描述 + 记录了timeline模式下的调用栈的信息。 + #### 相关字段描述 + - file_id:文件ID - id:调用栈节点索引 - function_info_index:函数信息索引 @@ -857,19 +1058,25 @@ js_heap_sample:记录timeline的时间轴信息 - parent_id:调用栈父节点 ### app_startup表 + #### 表结构 -| Columns Name | SQL TYPE | -| ------------------- | -------- | -| call_id | INT | -| ipid | INT | -| tid | INT | -| start_time | INT | -| end_time | INT | -| start_name | INT | -| packed_name | INT | + +| Columns Name | SQL TYPE | +| ------------ | -------- | +| call_id | INT | +| ipid | INT | +| tid | INT | +| start_time | INT | +| end_time | INT | +| start_name | INT | +| packed_name | INT | + #### 表描述 + 记录了应用启动的相关信息。 + #### 相关字段描述 + - call_id:调用者的ID,比如针对线程表里面的id - ipid:内部进程号 - tid:内部线程号 @@ -879,19 +1086,25 @@ js_heap_sample:记录timeline的时间轴信息 - packed_name:应用名称 ### static_intialize表 + #### 表结构 -| Columns Name | SQL TYPE | -| ------------------- | -------- | -| call_id | INT | -| ipid | INT | -| tid | INT | -| start_time | INT | -| end_time | INT | -| so_name | INT | -| depth | INT | + +| Columns Name | SQL TYPE | +| ------------ | -------- | +| call_id | INT | +| ipid | INT | +| tid | INT | +| start_time | INT | +| end_time | INT | +| so_name | INT | +| depth | INT | + #### 表描述 + 记录了so初始化的相关信息。 + #### 相关字段描述 + - call_id:调用者的ID,比如针对线程表里面的id - ipid:内部进程号 - tid:内部线程号 @@ -901,172 +1114,219 @@ js_heap_sample:记录timeline的时间轴信息 - depth:泳道图的深度 ### live_process表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|dur |INT | -|cpu_time |INT | -|process_id |INT | -|process_name |TEXT | -|parent_process_id |INT | -|uid |INT | -|user_name |TEXT | -|cpu_usage |REAL | -|pss_info |INT | -|thread_num |INT | -|disk_writes |INT | -|disk_reads |INT | + +| Columns Name | SQL TYPE | +| ----------------- | -------- | +| ts | INT | +| dur | INT | +| cpu_time | INT | +| process_id | INT | +| process_name | TEXT | +| parent_process_id | INT | +| uid | INT | +| user_name | TEXT | +| cpu_usage | REAL | +| pss_info | INT | +| thread_num | INT | +| disk_writes | INT | +| disk_reads | INT | + #### 表描述 + 记录了一些实时的进程中执行的一些数据(Monitor)。 + #### 主要字段描述 -- process_id:进程id -- process_name:进程名 -- parent_process_id:父进程的id -- uid:用户id -- user_name:用户名 -- cpu_usage:cpu使用率 -- pss_info:进程信息 -- thread_num:线程数量 -- disk_writes:磁盘写量 + +- process_id:进程id +- process_name:进程名 +- parent_process_id:父进程的id +- uid:用户id +- user_name:用户名 +- cpu_usage:cpu使用率 +- pss_info:进程信息 +- thread_num:线程数量 +- disk_writes:磁盘写量 - disk_reads:磁盘读量 ### log表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|seq |INT | -|ts |INT | -|pid |INT | -|tid |INT | -|level |TEXT | -|tag |TEXT | -|context |TEXT | -|origints |INT | +| ------------ | -------- | +| seq | INT | +| ts | INT | +| pid | INT | +| tid | INT | +| level | TEXT | +| tag | TEXT | +| context | TEXT | +| origints | INT | + #### 表描述 + 记录日志信息。 + #### 关键字段描述 -- Seq:日志序号,保证日志解析的准确性 -- Ts:打印日志时间 -- Pid:日志的进程号 -- Tid:日志的线程号 -- Level:日志级别 -- Tag:日志标签 + +- Seq:日志序号,保证日志解析的准确性 +- Ts:打印日志时间 +- Pid:日志的进程号 +- Tid:日志的线程号 +- Level:日志级别 +- Tag:日志标签 - Context:日志内容 ### measure表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|type |TEXT | -|ts |INT | -|dur |INT | -|value |INT | -|filter_id |INT | +| ------------ | -------- | +| type | TEXT | +| ts | INT | +| dur | INT | +| value | INT | +| filter_id | INT | + #### 表描述 + 记录所有的计量值。 + #### 关键字段描述 -- type:固定字段(measure) -- ts:事件时间 -- dur:该值持续的时长 -- value:数值 + +- type:固定字段(measure) +- ts:事件时间 +- dur:该值持续的时长 +- value:数值 - filter_id:对应filter表中的ID ### measure_filter表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|source_arg_set_id |INT | + +| Columns Name | SQL TYPE | +| ----------------- | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| source_arg_set_id | INT | + #### 表描述 + 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录。 -#### 字段详细描述 + +#### 字段详细描述 + 过滤分类(type),过滤名称(key2),数据ID(key1)。 数据ID在process_measure_filter, sys_event_filter中作为id。 ### meta表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|name |TEXT | -|value |TEXT | +| ------------ | -------- | +| name | TEXT | +| value | TEXT | + #### 表描述 + 此表记录了数据解析或导出时的一些现场数据,比如使用的TraceStreamer版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 + #### 主要字段描述 -- Name:指定元数据的key + +- Name:指定元数据的key - Value:指定元数据的value ### native_hook表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callChainId |INT | -|ipid |INT | -|itid |INT | -|event_type |TEXT | -|sub_type_id |NUM | -|start_ts |INT | -|end_ts |INT | -|dur |INT | -|addr |INT | -|heap_size |INT | -|all_heap_size |INT | -|current_size_dur |INT | -|last_lib_id |INT | + +| Columns Name | SQL TYPE | +| ---------------- | -------- | +| id | INT | +| callChainId | INT | +| ipid | INT | +| itid | INT | +| event_type | TEXT | +| sub_type_id | NUM | +| start_ts | INT | +| end_ts | INT | +| dur | INT | +| addr | INT | +| heap_size | INT | +| all_heap_size | INT | +| current_size_dur | INT | +| last_lib_id | INT | + #### 表描述 + 记录native_hook抓取的某个进程的堆内存,内存映射相关数据。 + #### 关键字段描述 -- callChainId:唯一标识一条native_hook数据 -- event_type:事件类型取值范围(AllocEvent,FreeEvent,MmapEvent, MunmapEvent) -- sub_type_id:子事件类型(只有sub_type字段为MmapEvent时,该字段才会有值) -- start_ts:申请内存开始时间 -- end_ts:释放内存时间 -- Dur:申请内存活跃时间 -- Addr:申请内存地址 -- mem_size:申请或释放内存大小 -- all_mem_size:从采集数据开始到当前时刻,申请并活跃的内存总量。 event_type为AllocEvent或者FreeEvent时,表示活跃的堆内存总量。当event_type为MmapEvent或者MunmapEvent时,表示活跃的映射内存总量 -- current_size_dur:表示当前活跃内存总量的持续时间 + +- callChainId:唯一标识一条native_hook数据 +- event_type:事件类型取值范围(AllocEvent,FreeEvent,MmapEvent, MunmapEvent) +- sub_type_id:子事件类型(只有sub_type字段为MmapEvent时,该字段才会有值) +- start_ts:申请内存开始时间 +- end_ts:释放内存时间 +- Dur:申请内存活跃时间 +- Addr:申请内存地址 +- mem_size:申请或释放内存大小 +- all_mem_size:从采集数据开始到当前时刻,申请并活跃的内存总量。 event_type为AllocEvent或者FreeEvent时,表示活跃的堆内存总量。当event_type为MmapEvent或者MunmapEvent时,表示活跃的映射内存总量 +- current_size_dur:表示当前活跃内存总量的持续时间 - last_lib_id:函数调用栈他最后一个函数所属的文件路径,除了文件名中带musl和libc++ ### native_hook_frame表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|depth |INT | -|symbol_id |INT | -|file_id |INT | -|offset |INT | -|symbol_offset |INT | + +| Columns Name | SQL TYPE | +| ------------- | -------- | +| id | INT | +| callchain_id | INT | +| depth | INT | +| symbol_id | INT | +| file_id | INT | +| offset | INT | +| symbol_offset | INT | + #### 表描述 + 记录了内存的申请和释放的堆栈。 + #### 相关字段描述 -- callchain_id:标识一组调用堆栈 -- depth:调用栈深度 -- symbol_id:函数名 + +- callchain_id:标识一组调用堆栈 +- depth:调用栈深度 +- symbol_id:函数名 - file_id:函数所属文件 ### native_hook_statistic表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|ipid |INT | -|ts |INT | -|type |INT | -|apply_count |INT | -|release_count |INT | -|apply_size |INT | -|release_size |INT | + +| Columns Name | SQL TYPE | +| ------------- | -------- | +| id | INT | +| callchain_id | INT | +| ipid | INT | +| ts | INT | +| type | INT | +| apply_count | INT | +| release_count | INT | +| apply_size | INT | +| release_size | INT | #### 表描述 + 该表记录了内存申请/释放的统计信息。 + #### 关键字段描述 + - callchain_id:内存分配的回调链id - ipid:进程id - ts:统计数据上报时间 @@ -1077,573 +1337,748 @@ js_heap_sample:记录timeline的时间轴信息 - release_size:当前调用栈累计释放总大小 ### network表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|dur |INT | -|tx |INT | -|rx |INT | -|tx_speed |REAL | -|rx_speed |REAL | -|packet_in |INT | -|packet_in_sec |REAL | -|packet_out |INT | -|packet_out_sec |REAL | -|net_type |TEXT | + +| Columns Name | SQL TYPE | +| -------------- | -------- | +| ts | INT | +| dur | INT | +| tx | INT | +| rx | INT | +| tx_speed | REAL | +| rx_speed | REAL | +| packet_in | INT | +| packet_in_sec | REAL | +| packet_out | INT | +| packet_out_sec | REAL | +| net_type | TEXT | + #### 表描述 + 记录了网络数据传输相关的信息。 + #### 主要字段描述 -- tv_sec:时间,秒为单位 -- tv_nsec:时间,纳秒为单位 -- tx_bytes:网络数据的写入量 + +- tv_sec:时间,秒为单位 +- tv_nsec:时间,纳秒为单位 +- tx_bytes:网络数据的写入量 - rx_bytes:网络数据的读取量 ### paged_memory_sample表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|type |INT | -|ipid |INT | -|start_ts |INT | -|end_ts |INT | -|dur |INT | -|size |INT | -|addr |TEXT | -|itid |INT | +| ------------ | -------- | +| id | INT | +| callchain_id | INT | +| type | INT | +| ipid | INT | +| start_ts | INT | +| end_ts | INT | +| dur | INT | +| size | INT | +| addr | TEXT | +| itid | INT | + #### 表描述 + 记录了网络数据传输相关的信息。 + #### 主要字段描述 -- callchain_id: 取值相同的一组数据,表示一个完整的调用栈 -- type:事件类型 -- ipid:TS内部进程号 -- start_ts:开始时间 -- end_ts:结束时间 -- dur:持续时间 -- size:操作页数 + +- callchain_id: 取值相同的一组数据,表示一个完整的调用栈 +- type:事件类型 +- ipid:TS内部进程号 +- start_ts:开始时间 +- end_ts:结束时间 +- dur:持续时间 +- size:操作页数 - itid:TS内部线程号 ### perf_callchain表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|depth |INT | -|vaddr_in_file |INT | -|file_id |INT | -|symbol_id |INT | -|name |TEXT | + +| Columns Name | SQL TYPE | +| ------------- | -------- | +| id | INT | +| callchain_id | INT | +| depth | INT | +| vaddr_in_file | INT | +| file_id | INT | +| symbol_id | INT | +| name | TEXT | + #### 表描述 + 记录了Hiperf采样数据的调用栈信息。 + #### 主要字段描述 -- callchain_id:标识一组调用堆栈 -- depth:调用栈深度 -- vaddr_in_file:函数在文件中的虚拟地址 -- file_id:与PerfFiles中的file_id字段相关联 -- symbol_id:与PerfFiles中的symbol_id相关联 + +- callchain_id:标识一组调用堆栈 +- depth:调用栈深度 +- vaddr_in_file:函数在文件中的虚拟地址 +- file_id:与PerfFiles中的file_id字段相关联 +- symbol_id:与PerfFiles中的symbol_id相关联 - name:函数名 ### perf_files表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|file_id |INT | -|serial_id |INT | -|symbol |TEXT | -|path |TEXT | +| ------------ | -------- | +| id | INT | +| file_id | INT | +| serial_id | INT | +| symbol | TEXT | +| path | TEXT | + #### 表描述 + 记录Hiperf工具采集到的函数符号表和文件名。 + #### 主要字段描述 -- file_id:文件编号 -- serial_id:一个文件中可能有多个函数,serial_id表示函数的编号 -- symbol:函数名 + +- file_id:文件编号 +- serial_id:一个文件中可能有多个函数,serial_id表示函数的编号 +- symbol:函数名 - path:文件路径 ### perf_report表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|report_type |TEXT | -|report_value |TEXT | +| ------------ | -------- | +| id | INT | +| report_type | TEXT | +| report_value | TEXT | + #### 表描述 + 记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 + #### 主要字段描述 -- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) + +- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) - report_value:对应类型的取值 ### perf_sample表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|callchain_id |INT | -|timestamp |INT | -|thread_id |INT | -|event_count |INT | -|event_type_id |INT | -|timestamp_trace |INT | -|cpu_id |INT | -|thread_state |TEXT | + +| Columns Name | SQL TYPE | +| --------------- | -------- | +| id | INT | +| callchain_id | INT | +| timestamp | INT | +| thread_id | INT | +| event_count | INT | +| event_type_id | INT | +| timestamp_trace | INT | +| cpu_id | INT | +| thread_state | TEXT | + #### 表描述 + 记录Hiperf工具的采样信息。 + #### 主要字段描述 -- timestamp:未进行时钟源同步的时间戳 -- thread_id:线程号 -- event_count:采样统计 -- event_type_id:事件类型编号。与PerfReport表的id字段相关联 -- timestamp_trace:时钟源同步后的时间戳 -- cpu_id:cpu核编号 + +- timestamp:未进行时钟源同步的时间戳 +- thread_id:线程号 +- event_count:采样统计 +- event_type_id:事件类型编号。与PerfReport表的id字段相关联 +- timestamp_trace:时钟源同步后的时间戳 +- cpu_id:cpu核编号 - thread_state:线程状态。采样对应Sched_Waking事件时,为Runing;对应Sched_Switch事件时,为Suspend。其余事件类型,为“-” ### perf_thread表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|thread_id |INT | -|process_id |INT | -|thread_name |TEXT | +| ------------ | -------- | +| id | INT | +| thread_id | INT | +| process_id | INT | +| thread_name | TEXT | + #### 表描述 + 记录Hiperf工具采集到的进程和线程数据。 + #### 主要字段描述 -- thread_id:线程号 -- process_id:进程号 + +- thread_id:线程号 +- process_id:进程号 - thread_name:线程名 ### process表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ipid |INT | -|type |TEXT | -|pid |INT | -|name |TEXT | -|start_ts |INT | -|switch_count |INT | -|thread_count |INT | -|slice_count |INT | -|mem_count |INT | +| ------------ | -------- | +| id | INT | +| ipid | INT | +| type | TEXT | +| pid | INT | +| name | TEXT | +| start_ts | INT | +| switch_count | INT | +| thread_count | INT | +| slice_count | INT | +| mem_count | INT | + #### 表描述 + 记录了进程相关数据。 + #### 关键字段描述 -- id:进程在数据库重新重新定义的id,从0开始序列增长 -- ipid:TS内部进程id -- type:固定取值:process -- pid:进程的真实id -- name:进程名字 -- start_ts:开始时间 -- switch_count:统计内部有多少个线程有切换 -- thread_count:统计其线程个数 -- slice_count:进程内有多个线程有slice数据 + +- id:进程在数据库重新重新定义的id,从0开始序列增长 +- ipid:TS内部进程id +- type:固定取值:process +- pid:进程的真实id +- name:进程名字 +- start_ts:开始时间 +- switch_count:统计内部有多少个线程有切换 +- thread_count:统计其线程个数 +- slice_count:进程内有多个线程有slice数据 - mem_count:进程是否有内存数据 ### process_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|ipid |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| ipid | INT | + #### 表描述 + 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在filter表中。 + #### 主要字段描述 -- id:进程id -- type:固定取值:process_filter -- name:进程名 + +- id:进程id +- type:固定取值:process_filter +- name:进程名 - ipid:该进程表中的id与process表中的id相关联 ### process_measure表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|type |TEXT | -|ts |INT | -|value |NUM | -|filter_id |INT | +| ------------ | -------- | +| type | TEXT | +| ts | INT | +| value | NUM | +| filter_id | INT | + #### 表描述 + 保存进程的内存,堆栈值等所有计量值信息。 + #### 字段详细描述 -- ts:事件时间 -- value:数值 + +- ts:事件时间 +- value:数值 - filter_id:对应process_measure_filter表中的ID ### process_measure_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|ipid |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| ipid | INT | + #### 表描述 + 将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在measure_filter表中。 + #### 字段详细描述 -- type:固定取值:process_measure_filter -- name:cpu状态名 + +- type:固定取值:process_measure_filter +- name:cpu状态名 - ipid:进程内部编号 ### raw表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|ts |INT | -|name |TEXT | -|cpu |INT | -|itid |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| ts | INT | +| name | TEXT | +| cpu | INT | +| itid | INT | + #### 表描述 + 记录了系统中的waking、wakup、cpu_idel、cpu_frequency数据。 + #### 相关字段描述 -- type:固定字段(raw) -- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking) -- cpu:事件发生在哪个CPU + +- type:固定字段(raw) +- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking) +- cpu:事件发生在哪个CPU - itid:时间对应哪个utid ### sched_slice表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|ts |INT | -|dur |INT | -|ts_end |INT | -|cpu |INT | -|itid |INT | -|end_state |TEXT | -|priority |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| ts | INT | +| dur | INT | +| ts_end | INT | +| cpu | INT | +| itid | INT | +| end_state | TEXT | +| priority | INT | + #### 表描述 + 此数据结构主要作为ThreadState的上下文使用,这张表是sched_switch事件的原始记录。 + #### 主要字段描述 -- ts:事件发生事件 -- type:固定字段(sched_slice) -- dur:状态持续时长 -- ts_end:状态结束时长 -- cpu:事件发生在哪个cpu -- itid:事件对应哪个utid + +- ts:事件发生事件 +- type:固定字段(sched_slice) +- dur:状态持续时长 +- ts_end:状态结束时长 +- cpu:事件发生在哪个cpu +- itid:事件对应哪个utid - end_state:线程的终结状态 ### smaps表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|timestamp |INT | -|start_addr |TEXT | -|end_addr |TEXT | -|dirty |INT | -|swapper |INT | -|resident_size |INT | -|pss |INT | -|virtaul_size |INT | -|reside |REAL | -|protection_id |INT | -|path_id |INT | + +| Columns Name | SQL TYPE | +| ------------- | -------- | +| id | INT | +| timestamp | INT | +| start_addr | TEXT | +| end_addr | TEXT | +| dirty | INT | +| swapper | INT | +| resident_size | INT | +| pss | INT | +| virtaul_size | INT | +| reside | REAL | +| protection_id | INT | +| path_id | INT | + #### 表描述 + 记录进程的内存消耗的相关信息采样。 + #### 主要字段描述 -- id:状态持续时长 -- timestamp:事件发生事件 -- start_addr:内存段地址的起始位置 -- end_addr:内存段地址的结束位置 -- dirty:其他进程共享的被写的页的大小 + 已被改写的私有页面的大小 -- swapper:存在于交换分区的数据大小 -- resident_size:实际分配的内存大小 -- pss:平摊计算后的实际物理使用内存 -- virtaul_size:虚拟内存空间的大小 -- reside:实际分配的内存大小与虚拟内存空间的大小的比 -- protection_id:内存段的权限id与表data_dict的id字段相关联 + +- id:状态持续时长 +- timestamp:事件发生事件 +- start_addr:内存段地址的起始位置 +- end_addr:内存段地址的结束位置 +- dirty:其他进程共享的被写的页的大小 + 已被改写的私有页面的大小 +- swapper:存在于交换分区的数据大小 +- resident_size:实际分配的内存大小 +- pss:平摊计算后的实际物理使用内存 +- virtaul_size:虚拟内存空间的大小 +- reside:实际分配的内存大小与虚拟内存空间的大小的比 +- protection_id:内存段的权限id与表data_dict的id字段相关联 - path_id:如果区域是从文件映射的,则这是文件的名称对应的id序号与表data_dict的id字段相关联 ### stat表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|event_name |TEXT | -|stat_type |TEXT | -|count |INT | -|serverity |TEXT | -|source |TEXT | +| ------------ | -------- | +| event_name | TEXT | +| stat_type | TEXT | +| count | INT | +| serverity | TEXT | +| source | TEXT | + #### 表描述 + 此结果用来统计数据解析中各类数据的数据条数,数据和合法性,数据的匹配程度(begin-end),数据的损失等,查看此结构对应的表,可对数据源有基本的了解。 + #### 主要字段描述 -- event_name:数据类型 -- stat_type:数据状态 -- count:数据条数 -- severity:严重级别 + +- event_name:数据类型 +- stat_type:数据状态 +- count:数据条数 +- severity:严重级别 - source:数据来源 ### symbols表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|funcname |TEXT | -|addr |INT | +| ------------ | -------- | +| id | INT | +| funcname | TEXT | +| addr | INT | + #### 表描述 + 此表记录了被调用函数与其地址的映射关系。 + #### 相关字段描述 -- funcname:系统调用名称 + +- funcname:系统调用名称 - adr:系统调用地址 ### syscall表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|syscall_num |INT | -|type |TEXT | -|ipid |INT | -|ts |INT | -|ret |INT | +| ------------ | -------- | +| syscall_num | INT | +| type | TEXT | +| ipid | INT | +| ts | INT | +| ret | INT | + #### 表描述 + 记录用户空间函数与内核空间函数相互调用记录。 + #### 相关字段描述 -- syscall_num:系统调用的序号 -- type:固定取值:enter或者exit -- ipid:线程所属的进程ID -- ts:时间戳 + +- syscall_num:系统调用的序号 +- type:固定取值:enter或者exit +- ipid:线程所属的进程ID +- ts:时间戳 - ret:返回值,在type为exit时有效 ### sys_event_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | + #### 表描述 + 记录所有的filter。 + #### 相关字段描述 -- type:文件类型 + +- type:文件类型 - name:文件名 ### sys_mem_measure表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|type |TEXT | -|ts |INT | -|value |INT | -|filter_id |INT | +| ------------ | -------- | +| type | TEXT | +| ts | INT | +| value | INT | +| filter_id | INT | + #### 表描述 + 记录系统内存与系统虚拟内存。 + #### 相关字段描述 -- ts:事件时间 -- value:数值 + +- ts:事件时间 +- value:数值 - filter_id:对应filter表中的ID ### thread表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|itid |INT | -|type |TEXT | -|tid |INT | -|name |TEXT | -|start_ts |INT | -|end_ts |INT | -|ipid |INT | -|is_main_thread|INT | -|switch_count |INT | -#### 表描述 + +| Columns Name | SQL TYPE | +| -------------- | -------- | +| id | INT | +| itid | INT | +| type | TEXT | +| tid | INT | +| name | TEXT | +| start_ts | INT | +| end_ts | INT | +| ipid | INT | +| is_main_thread | INT | +| switch_count | INT | + +#### 表描述 + 记录了线程相关数据。 + #### 字段详细描述 -- id:线程在数据库重新重新定义的id,从0开始序列增长 -- itid:TS内部线程id -- type:固定字段(thread) -- tid:线程号 -- name:线程名 -- start_ts:开始时间 -- end_ts:结束时间 -- ipid:线程所属的进程id, 关联process表中的ID -- is_main_thread:是否主线程,主线程即该线程实际就是进程本身 + +- id:线程在数据库重新重新定义的id,从0开始序列增长 +- itid:TS内部线程id +- type:固定字段(thread) +- tid:线程号 +- name:线程名 +- start_ts:开始时间 +- end_ts:结束时间 +- ipid:线程所属的进程id, 关联process表中的ID +- is_main_thread:是否主线程,主线程即该线程实际就是进程本身 - switch_count:当前线程的切换次数 ### thread_filter表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|name |TEXT | -|itid |INT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| name | TEXT | +| itid | INT | + #### 表描述 + 将线程ID作为key1,线程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在filter表中。 + #### 主要字段描述 -- id:线程id -- type:线程类型 -- name:线程名称 + +- id:线程id +- type:线程类型 +- name:线程名称 - itid:该表中的tid与thread表中的tid相关联 ### thread_state表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|type |TEXT | -|ts |INT | -|dur |INT | -|cpu |INT | -|itid |INT | -|tid |INT | -|pid |INT | -|state |TEXT | +| ------------ | -------- | +| id | INT | +| type | TEXT | +| ts | INT | +| dur | INT | +| cpu | INT | +| itid | INT | +| tid | INT | +| pid | INT | +| state | TEXT | + #### 表描述 + 记录了线程状态相关的数据。 + #### 字段详细描述 -- id:线程状态在数据库中的id,从0开始序列增长 -- ts:该线程状态的起始时间 -- dur:该线程状态的持续时间 -- cpu:该线程在哪个cpu上执行(针对running状态的线程) -- itid:该状态所属的线程id, 关联线程表中的id -- tid:线程号 -- pid:进程号 -- state:线程实际的的状态值 -``` -'R', Runnable状态 -"S", interruptible sleep -"D", uninterruptible sleep -"D-IO", uninterruptible io -"D-NIO", uninterruptible nio -"Runing", Runing状态 -"T", Task stoped. -"t" Traced. -"X", ExitedDead -"Z", Zombie + +- id:线程状态在数据库中的id,从0开始序列增长 +- ts:该线程状态的起始时间 +- dur:该线程状态的持续时间 +- cpu:该线程在哪个cpu上执行(针对running状态的线程) +- itid:该状态所属的线程id, 关联线程表中的id +- tid:线程号 +- pid:进程号 +- state:线程实际的的状态值 + +``` +'R', Runnable状态 +"S", interruptible sleep +"D", uninterruptible sleep +"D-IO", uninterruptible io +"D-NIO", uninterruptible nio +"Runing", Runing状态 +"T", Task stoped. +"t" Traced. +"X", ExitedDead +"Z", Zombie "P", Parked -"I", Task_Dead -"DK", -"DK-IO", -"DK-NIO", -"TK", TracedKill -"R+", WakeKill -"R+", TaskNew -"R-B", Task runnable binder. +"I", Task_Dead +"DK", +"DK-IO", +"DK-NIO", +"TK", TracedKill +"R+", WakeKill +"R+", TaskNew +"R-B", Task runnable binder. ``` ### clock_snapshot表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|clock_id |INT | -|ts |INT | -|clock_name |TEXT | +| ------------ | -------- | +| clock_id | INT | +| ts | INT | +| clock_name | TEXT | + #### 表描述 + 时钟号和时间,时钟名的映射表。 + #### 关键字段描述 -- clock_id:时钟号 -- ts:时钟快照报的时间 + +- clock_id:时钟号 +- ts:时钟快照报的时间 - clock_name:时钟号对应的时钟名字 -时钟快照是用来对齐不同时钟号的时间 -比如,时钟号1的时间100,和时钟号2的时间200对齐 -则时钟号为2 的250,转换为时钟号1的时间后,为150 + 时钟快照是用来对齐不同时钟号的时间 + 比如,时钟号1的时间100,和时钟号2的时间200对齐 + 则时钟号为2 的250,转换为时钟号1的时间后,为150 ### datasource_clockid表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|data_source_name |TEXT | -|clock_id |INT | + +| Columns Name | SQL TYPE | +| ---------------- | -------- | +| data_source_name | TEXT | +| clock_id | INT | + #### 表描述 + 数据源和时钟号的映射表。 + #### 关键字段描述 + - data_source_name:数据源的名称,和数据源的插件名保持一致 - clock_id:时钟号,对应clock_snapshot中的时钟号 -这个表是用来告诉IDE,不同的事件源的事件,原始时钟号是多少,在数据库中保存的事件,通常是转换为boottime后的时间,但有些情况下,IDE仍然需要知道原始的时钟号是怎样的 + 这个表是用来告诉IDE,不同的事件源的事件,原始时钟号是多少,在数据库中保存的事件,通常是转换为boottime后的时间,但有些情况下,IDE仍然需要知道原始的时钟号是怎样的 ### frame_slice表 + ### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|vsync |INT | -|ipid |INT | -|itid |INT | -|callstack_id |INT | -|dur |INT | -|src |TEXT | -|dst |INT | -|type |INT | -|flag |INT | -|depth |INT | -|frame_no |INT| +| ------------ | -------- | +| ts | INT | +| vsync | INT | +| ipid | INT | +| itid | INT | +| callstack_id | INT | +| dur | INT | +| src | TEXT | +| dst | INT | +| type | INT | +| flag | INT | +| depth | INT | +| frame_no | INT | + #### 表描述 + 应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及RenderService和App之间的关联关系。 + #### 关键字段描述 -- callstack_id:该帧数据对应着callstack表的调用栈所在的行数 -- dur:该帧渲染时长(当数据不完整时,改行数据为空) -- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割 -- dst:该帧对应的渲染帧是哪一行 -- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧 + +- callstack_id:该帧数据对应着callstack表的调用栈所在的行数 +- dur:该帧渲染时长(当数据不完整时,改行数据为空) +- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割 +- dst:该帧对应的渲染帧是哪一行 +- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧 - flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧(expectEndTime < actualEndTime为异常), 2 表示数据不需要绘制(没有frameNum信息),3 表示rs进程与app进程起止异常(|expRsStartTime - expUiEndTime| < 1ms 正常,否则异常。这里使用期待帧的时间差做判断,给实际帧打标签) - depth:预留 - frame_no:预留 ### frame_maps表 + ### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|ts |INT | -|src_row |INT | -|dst_row |INT | +| ------------ | -------- | +| ts | INT | +| src_row | INT | +| dst_row | INT | + #### 表描述 + 该表记录了app到RenderService的帧的映射关系,同frame_slice表中的src映射到dst的关系。 + #### 关键字段描述 -- src_row:frame_slice表中app的帧所在的行 -- dst_row:frame_slice表中RenderService的帧所在的行 + +- src_row:frame_slice表中app的帧所在的行 +- dst_row:frame_slice表中RenderService的帧所在的行 ### gpu_slice表 + ### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|frame_row |INT | -|dur |INT | +| ------------ | -------- | +| frame_row | INT | +| dur | INT | + #### 表描述 + 该表记录了每一帧数据在GPU上的渲染时长。 + #### 关键字段描述 -- frame_row:frame_slice表中渲染帧所在的行 -- dur:帧渲染时长 + +- frame_row:frame_slice表中渲染帧所在的行 +- dur:帧渲染时长 ### trace_range表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|start_ts |INT | -|end_ts |INT | +| ------------ | -------- | +| start_ts | INT | +| end_ts | INT | + #### 表描述 + 该表记录了解析开始时间以及结束时间。 + #### 关键字段描述 + - start_ts:trace的开始时间,纳秒为单位 - end_ts:trace的结束时间,纳秒为单位 ### task_pool表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|allocation_task_row |INT | -|execute_task_row |INT | -|return_task_row |INT | -|allocation_itid |INT | -|execute_itid |INT | -|return_itid |INT | -|execute_id |INT | -|priority |INT | -|execute_state |INT | -|return_state |INT | -|timeout_row |INT | + +| Columns Name | SQL TYPE | +| ------------------- | -------- | +| id | INT | +| allocation_task_row | INT | +| execute_task_row | INT | +| return_task_row | INT | +| allocation_itid | INT | +| execute_itid | INT | +| return_itid | INT | +| execute_id | INT | +| priority | INT | +| execute_state | INT | +| return_state | INT | +| timeout_row | INT | + #### 表描述 + 该表记录了任务池相关数据,与callstack表关联。 + #### 关键字段描述 + - allocation_task_row:与callstack表id号相关联 - execute_task_row:与callstack表id号相关联 - return_task_row:与callstack表id号相关联 @@ -1657,35 +2092,47 @@ js_heap_sample:记录timeline的时间轴信息 - timeout_row:任务执行超时时更新此列,将对应的 callstack 表行号存于对应的任务行 ### animation表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|input_time |INT | -|start_point |INT | -|end_point |INT | +| ------------ | -------- | +| id | INT | +| input_time | INT | +| start_point | INT | +| end_point | INT | + #### 表描述 + 该表记录动效的响应时延和完成时延等信息。 + #### 关键字段描述 + - input_time:输入时间点 - start_point:开始时间点 - end_point:结束时间点 ### dynamic_frame表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|x |INT | -|y |INT | -|width |INT | -|height |INT | -|alpha |TEXT | -|name |INT | -|end_time |INT | +| ------------ | -------- | +| id | INT | +| x | INT | +| y | INT | +| width | INT | +| height | INT | +| alpha | TEXT | +| name | INT | +| end_time | INT | + #### 表描述 + 该表记录动效帧的坐标、分辨率、结束时间等信息。 + #### 关键字段描述 + - x:坐标x - y:坐标y - width:宽 @@ -1695,48 +2142,60 @@ js_heap_sample:记录timeline的时间轴信息 - end_time:结束时间 ### device_info表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|physical_width |INT | -|physical_height |INT | -|physical_frame_rate |INT | + +| Columns Name | SQL TYPE | +| ------------------- | -------- | +| id | INT | +| physical_width | INT | +| physical_height | INT | +| physical_frame_rate | INT | + #### 表描述 + 该表记录设备分辨率和帧率等信息。 + #### 关键字段描述 + - physical_width:设备宽 - physical_height:设备高 - physical_frame_rate:设备帧率 ### device_state表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|brightness |INT | -|bt_state |INT | -|location |INT | -|wifi |INT | -|stream_default |INT | -|voice_call |INT | -|music |INT | -|stream_ring |INT | -|media |INT | -|voice_assistant |INT | -|system |INT | -|alarm |INT | -|notification |INT | -|bt_sco |INT | -|enforced_audible |INT | -|stream_dtmf |INT | -|stream_tts |INT | -|accessibility |INT | -|recording |INT | -|stream_all |INT | + +| Columns Name | SQL TYPE | +| ---------------- | -------- | +| id | INT | +| brightness | INT | +| bt_state | INT | +| location | INT | +| wifi | INT | +| stream_default | INT | +| voice_call | INT | +| music | INT | +| stream_ring | INT | +| media | INT | +| voice_assistant | INT | +| system | INT | +| alarm | INT | +| notification | INT | +| bt_sco | INT | +| enforced_audible | INT | +| stream_dtmf | INT | +| stream_tts | INT | +| accessibility | INT | +| recording | INT | +| stream_all | INT | + #### 表描述 + 该表记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息。 + #### 关键字段描述 + - brightness:屏幕亮度 - bt_state:蓝牙状态 - location:位置信息 @@ -1753,40 +2212,52 @@ js_heap_sample:记录timeline的时间轴信息 - recording:录音 ### trace_config表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|trace_source |INT | -|key |INT | -|value |INT | +| ------------ | -------- | +| id | INT | +| trace_source | INT | +| key | INT | +| value | INT | + #### 表描述 + 该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。 + #### 关键字段描述 + - trace_source:事件源 - key:事件需要关注的信息名 - value:事件需要关注的信息名对应的信息值 ### memory_ashmem表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|ipid |INT | -|adj |INT | -|fd |INT | -|ashmem_name_id|INT | -|size |INT | -|pss |INT | -|ashmem_id |INT | -|time |INT | -|ref_count |INT | -|purged |INT | -|flag |INT | + +| Columns Name | SQL TYPE | +| -------------- | -------- | +| id | INT | +| ts | INT | +| ipid | INT | +| adj | INT | +| fd | INT | +| ashmem_name_id | INT | +| size | INT | +| pss | INT | +| ashmem_id | INT | +| time | INT | +| ref_count | INT | +| purged | INT | +| flag | INT | + #### 表描述 + 该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。 + #### 关键字段描述 + - ts:时间戳 - ipid:内部进程号 - fd:共享内存文件描述符 @@ -1798,23 +2269,29 @@ js_heap_sample:记录timeline的时间轴信息 - flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据 ### memory_dma表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|ipid |INT | -|fd |INT | -|size |INT | -|ino |INT | -|exp_pid |INT | -|exp_task_comm_id|INT | -|buf_name_id |INT | -|exp_name_id |INT | -|flag |INT | + +| Columns Name | SQL TYPE | +| ---------------- | -------- | +| id | INT | +| ts | INT | +| ipid | INT | +| fd | INT | +| size | INT | +| ino | INT | +| exp_pid | INT | +| exp_task_comm_id | INT | +| buf_name_id | INT | +| exp_name_id | INT | +| flag | INT | + #### 表描述 + 该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。 + #### 关键字段描述 + - ts:时间戳 - ipid:内部进程号 - fd:dma内存文件描述符 @@ -1825,20 +2302,26 @@ js_heap_sample:记录timeline的时间轴信息 - flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据 ### memory_process_gpu表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|gpu_name_id |INT | -|all_gpu_size |INT | -|addr |TEXT | -|ipid |INT | -|itid |INT | -|used_gpu_size |INT | + +| Columns Name | SQL TYPE | +| ------------- | -------- | +| id | INT | +| ts | INT | +| gpu_name_id | INT | +| all_gpu_size | INT | +| addr | TEXT | +| ipid | INT | +| itid | INT | +| used_gpu_size | INT | + #### 表描述 + 该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。 + #### 关键字段描述 + - ts:时间戳 - gpu_name_id:gpu内存名称 - all_gpu_size:进程占用gpu总大小 @@ -1848,21 +2331,27 @@ js_heap_sample:记录timeline的时间轴信息 - used_gpu_size:已使用的gpu大小 ### memory_window_gpu表 + #### 表结构 -| Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|window_name_id|INT | -|window_id |INT | -|module_name_id|INT | -|category_name_id|INT | -|size |INT | -|count |INT | -|purgeable_size|INT | + +| Columns Name | SQL TYPE | +| ---------------- | -------- | +| id | INT | +| ts | INT | +| window_name_id | INT | +| window_id | INT | +| module_name_id | INT | +| category_name_id | INT | +| size | INT | +| count | INT | +| purgeable_size | INT | + #### 表描述 + 该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。 + #### 关键字段描述 + - ts:时间戳 - window_name_id:窗口名 - window_id:窗口id @@ -1872,24 +2361,30 @@ js_heap_sample:记录timeline的时间轴信息 - count:内存申请个数 ### static_initalize表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ipid |INT | -|tid |INT | -|call_id |INT | -|start_time |INT | -|end_time |INT | -|so_name |TEXT | -|depth |INT | +| ------------ | -------- | +| id | INT | +| ipid | INT | +| tid | INT | +| call_id | INT | +| start_time | INT | +| end_time | INT | +| so_name | TEXT | +| depth | INT | + #### 表描述 + 该表记录了so初始化相关数据。 + #### 关键字段描述 + - ipid:内部进程号 - tid:内部线程号 - call_id:调用者的ID,对应线程表里面的itid - start_time:阶段开始时间 - end_time:阶段结束时间 - so_name:so文件名称 -- depth:泳道图的深度 \ No newline at end of file +- depth:泳道图的深度 diff --git a/ide/src/doc/md/quickstart_Application_operation_skills.md b/ide/src/doc/md/quickstart_Application_operation_skills.md index df24195e3d8a704715b36db986853951985abc00..85f5f7cf279836e87db789e12a9180e5b4d5cb91 100644 --- a/ide/src/doc/md/quickstart_Application_operation_skills.md +++ b/ide/src/doc/md/quickstart_Application_operation_skills.md @@ -1,6 +1,9 @@ ## 应用操作技巧 - 应用操作技巧主要展示各个小模块的使用技巧。 + +应用操作技巧主要展示各个小模块的使用技巧。 + ### 可导入符号表 + 符号表导入适用于所有支持调用栈的Tab页,选择一个文件夹,获取文件下及其子文件夹的所有so文件,更新数据库中符号数据。文件夹内so的格式需要与在设备上的路径一致,例如下图中,选择的文件夹为import,选择导入的libnative_hook.z.so,在设备上的路径是/system/lib64/,那么在本地选择的文件夹内也需要保证路径是import/system/lib64/libnative_hook.z.so。 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_dir.jpg) 以NativeMemory举例,导入NativeMemory文件,点击Call info的Tab页,在搜索框中输入libnative_hook.z.so,会发现该so下的调用栈没有符号化完全。 @@ -9,54 +12,84 @@ ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_local.jpg) 导入so以后,在搜索框中输入libnative_hook.z.so,会发现符号化数据已经更新。 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_new.jpg) + ### 网页连接文件打开接口 + 网页连接文件打开接口可以在网址后增加文件地址,打开后直接打开trace。 接口的url路径如下: ![GitHub Logo](../../figures/OperationSkills/Opertion_urltrace.jpg) -+ 蓝色框:是Smartperf工具的url(https://localhost:9000/application/)。 -+ 绿色框:trace文件的url,其中 +- 蓝色框:是Smartperf工具的url(https://localhost:9000/application/)。 +- 绿色框:trace文件的url,其中 第一部分是?trace=(固定格式)。 第二部分是trace文件的url(https://iot.itocm.com:9001/upload/ftrace_small.txt),此处根据文件的url实际地址填写。 第三部分,&link=true(固定格式)。 + ### 内容支持宽度可伸缩 + 在表格每行的表头添加一个灰色竖线,拖动时单元格宽度随之改变。 ![GitHub Logo](../../figures/OperationSkills/Tabdrag.jpg) + ### 一键展开和收起,逐级展开和收起 + 将树形表格全部改为默认收起,在表头左上角添加双尖箭头图标,默认箭头朝外,点击图标,表格的每一层都展开,图标上的箭头改为朝里面,再次点击表格每一层都收起,图标上的箭头改为朝外面。 ![GitHub Logo](../../figures/OperationSkills/Taboneclick.jpg) + ### 支持shift+m多次框选,框选列表显示和操作(跳转,取消),快捷键跳转ctrl+[/]和一键取消 + 每次框选泳道图后,按下shift+m键,在当前框选的开始和结束位置出现卡尺,如果只按下m键,会将上一次按m键出现的卡尺清除,在当前框选位置画卡尺,页面上每个卡尺都放进tab页中,在tab页中可以给卡尺改变颜色和移除旗子。用快捷键改变当前选中的卡尺。按下快捷键“ctrl+[”或“ctrl+]”的时候,会跳转到当前选中卡尺的上\下一个卡尺上,也就是上\下一个卡尺两侧变为实心,对应表格中的那行背景颜色变浅蓝色。 + ### 旗子标记可快速跳转,框选列表显示和操作(跳转,取消),快捷跳转ctrl+,/.和一键取消 + 在时间刻度下方点击会出现旗子和tab页,每次点击都将旗子都放进tab页中,在tab页中可以给旗子改变颜色和移除旗子。用快捷键改变当前选中的旗子。按下快捷键“ctrl+,”或“ctrl+.”的时候,会跳转到当前选中旗子的上\下一个旗子上,也就是上\下一个旗子变为实心有旗杆,对应表格中的那行背景颜色变浅蓝色。 ![GitHub Logo](../../figures/OperationSkills/rowskillflag.jpg) + ### 泳道图支持一键收起和展开(收起前的状态) + 点击时间刻度的最左边的双箭头,可以对已展开的泳道图进行一键收起和展开。 ![GitHub Logo](../../figures/OperationSkills/rowskilon.jpg) + ### 单个泳道图显示为多行时可折叠为1行(收藏和非收藏) + 单个泳道图点击会将泳道图折叠为一行,折腾后的字体是蓝色。 ![GitHub Logo](../../figures/OperationSkills/Tabskillfold.jpg) + ### 已支持的泳道图按照模板分类显示,NaitveMemory,Hisysevent,应用内存等 + 导入trace文件后,页面右上角的出现漏斗图标,点击会出现Display Template页面,Template Select区域显示已经添加到显示模板中的泳道图,每类泳道图后面会有一个多选框,默认不勾选,如果勾选页面上就只保留勾选的泳道图。 ![GitHub Logo](../../figures/OperationSkills/Tabskilltemple.jpg) + ### 所有进程的用户输入事件归一显示,观察操作事件和对象 + 对于用户InputEvent会绘制到固定的泳道图。 ![GitHub Logo](../../figures/OperationSkills/rowskillinput.jpg) + ### 支持收藏的泳道图整体画布可伸缩 + 收藏以后的泳道图可以在红线位置处上下伸缩拖动。 ![GitHub Logo](../../figures/OperationSkills/collectskilldrag.jpg) + ### 用户自定义分组化收藏(2组),及一键取消所有收藏 + 选择界面上的G1和G2,可以根据自己的需求将泳道图收藏到对应G1或者G2中,点击G1和G2旁边的星号可以一键取消所有收藏。 ![GitHub Logo](../../figures/OperationSkills/collectskillg.jpg) + ### trace顶部的cpu负载预览颜色随着负载降低,亮度降低的能力对比度提升 + CPU负载颜色的亮度,负载越大颜色更深,负载越小颜色越浅。 ![GitHub Logo](../../figures/OperationSkills/colorcontrast.jpg) + ### 导航栏/泳道图背景颜色支持颜色可选,字体颜色可感知slice的颜色而进行变化,颜色动态可配 + 给用户提供两种模式,浅色模式(导航栏白底黑字,泳道图颜色偏淡)和深色模式(导航栏黑底白字,泳道图颜色偏深),点击最左下方的小桶标志用户可以按需选择,并且用户可以自定义systemTrace页面的颜色,给用户更多自由,自己动手设置自己喜欢的颜色,提升用户体验。 ![GitHub Logo](../../figures/OperationSkills/colorchoose.jpg) + ### Trace抓取动态可停 + 在抓取trace过程中,点击StopRecord按钮会对抓取命令进行启停,等待抓取停止命令返回后,将生成的文件拉取下来进行文件的解析。 ![GitHub Logo](../../figures/OperationSkills/tracestop.jpg) + ### Smartperf web端集成hdc命令能力 + 在现有的配置界面上,新增一个Web版本的shell界面,可以支持shell命令。 -![GitHub Logo](../../figures/OperationSkills/shellconfig.jpg) \ No newline at end of file +![GitHub Logo](../../figures/OperationSkills/shellconfig.jpg) diff --git a/ide/src/doc/md/quickstart_ability_monitor.html b/ide/src/doc/md/quickstart_ability_monitor.html index 23fa882ad4f21af77109da8808bd9ad96c196517..b9cbe9d18f3f8328fabab302e53681fca64eaeef 100644 --- a/ide/src/doc/md/quickstart_ability_monitor.html +++ b/ide/src/doc/md/quickstart_ability_monitor.html @@ -1,387 +1,1273 @@ - - quickstart_ability_monitor - - - - - - - - - - - - - -
- -

Ability Monitor 抓取和展示说明

-

抓取和展示处理的 CPU,内存,磁盘 IO 和网络使用情况统计。

-

Ability Monitor 的抓取

-

Ability Monitor 抓取界面配置说明

-

点击 Probes config,如选择抓取 AbilityMonitor。
-GitHub Logo

-

Ability Monitor 文件的抓取

-

点击 Record setting,在 output file path 输入文件名 hiprofiler_data_abilitymonitor.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。
-GitHub Logo
-点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
-GitHub Logo
-输入 hdc_shell,进入设备,执行命令。
-GitHub Logo
-进入指定目录,cd /data/local/tmp 进入到目录,会看到生成的 trace 文件。
-GitHub Logo

-

Ability Monitor 功能介绍

-

将抓取的文件导入到 smartperf 工具查看,能了解 CPU,内存,磁盘 IO 和网络的使用情况。

-

Ability Monitor 泳道图展示

-

Ability Monitor 展开就可以看到泳道图,包括 CPU,内存,磁盘 IO,网络的使用情况。
-GitHub Logo

-
    -
  • -
    CPU Total Load:总的CPU使用率。
    -
    -
  • -
  • -
    CPU User Load:CPU在用户态空间运行的使用率。
    -
    -
  • -
  • -
    CPU System Load:CPU在内核空间运行的使用率。
    -
    -
  • -
  • -
    MemoryTotal: 总计物理内存的大小。
    -
    -
  • -
  • -
    Cached:缓存的大小。
    -
    -
  • -
  • -
    SwapTotal: 虚拟内存。
    -
    -
  • -
  • -
    Disk Bytes Read/Sec:每秒从磁盘读取到内存的字节数。
    -
    -
  • -
  • -
    Disk Bytes Written/Sec: 每秒从内存写入磁盘的字节数。
    -
    -
  • -
  • -
    Disk Read Ops/Sec:读入的字节数。
    -
    -
  • -
  • -
    Disk Written Ops/Sec: 写入的字节数。
    -
    -
  • -
  • -
    Network Bytes In/Sec:每秒接收的网络数据字节数。
    -
    -
  • -
  • -
    Network Bytes Out/Sec: 每秒发送的网络数据字节数。
    -
    -
  • -
  • -
    Network Packets In/Sec:每秒接收的网络数据包数。
    -
    -
  • -
  • -
    Network Packets Out/Sec: 每秒发送的网络数据包数。
    -
    -
  • -
-

Ability Monitor 泳道图的框选功能

-

可以对 CPU,内存,磁盘 IO 和网络的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有六个 tab 页。
-Live Processes 的 Tab 页如图:
-GitHub Logo

-
    -
  • -
    Process ID:进程的ID。
    -
    -
  • -
  • -
    Process Name:进程名称。
    -
    -
  • -
  • -
    Responsible Process:父进程ID。
    -
    -
  • -
  • -
    User ID:用户ID。
    -
    -
  • -
  • -
    %CPU:进程的CPU占用率。
    -
    -
  • -
  • -
    CPU Time:CPU运行时间。
    -
    -
  • -
  • -
    #Threads:进程的线程数量。
    -
    -
  • -
  • -
    Memory:内存值。
    -
    -
  • -
  • -
    Disk Writes(B):磁盘读入的字节数。
    -
    -
  • -
  • -
    Disk Reads(B):磁盘写入的字节数。
    -
    -Processes History 的 Tab 页如图:
    -GitHub Logo
  • -
  • -
    Process ID:进程ID。
    -
    -
  • -
  • -
    Alive:进程是否存活。
    -
    -
  • -
  • -
    First Seen:开始时间。
    -
    -
  • -
  • -
    Last Seen:所选区域的结束时间。
    -
    -
  • -
  • -
    Process Name:进程名称。
    -
    -
  • -
  • -
    Responsible Process:父进程ID。
    -
    -
  • -
  • -
    User ID:用户ID。
    -
    -
  • -
  • -
    CPU Time:CPU运行时间。
    -
    -框选 CPU Total Load,CPU User Load,CPU System Load 三个区域的泳道图,会展示 System CPU Summary 的 Tab 页。
    -GitHub Logo
  • -
  • -
    Start Time:采集时间的时间戳。
    -
    -
  • -
  • -
    Duration:前一次采集到本次采集的时间差。
    -
    -
  • -
  • -
    TotalLoad%:总的CPU使用率。
    -
    -
  • -
  • -
    UserLoad%:CPU在用户态空间运行的使用率。
    -
    -
  • -
  • -
    SystemLoad%:CPU在内核空间运行的使用率。
    -
    -
  • -
  • -
    Process:进程号。
    -
    -框选 MemoryTotal,Cached,SwapTota 三个区域的泳道图,会展示 System Memory Summary 的 Tab 页。
    -GitHub Logo
  • -
  • -
    Start Time:采集时间的时间戳。
    -
    -
  • -
  • -
    Duration:前一次采集到本次采集的时间差。
    -
    -
  • -
  • -
    MemTotal:总内存大小。
    -
    -
  • -
  • -
    MemFree:空闲内存大小。
    -
    -
  • -
  • -
    Buffers:文件的缓冲大小。
    -
    -
  • -
  • -
    Cached:缓存的大小。
    -
    -
  • -
  • -
    Shmem:已被分配的共享内存大小。
    -
    -
  • -
  • -
    Slab:内核数据缓存大小。
    -
    -
  • -
  • -
    SUnreclaim:不可回收的Slab大小。
    -
    -
  • -
  • -
    Swap Toal:交换空间的总大小。
    -
    -
  • -
  • -
    SwapFree:未被使用交换空间的大小。
    -
    -
  • -
  • -
    Mapped:设备和文件等映射的大小。
    -
    -
  • -
  • -
    VmallocUsed:已被使用的虚拟内存大小。
    -
    -
  • -
  • -
    PageTables:管理内存分页的索引表大小。
    -
    -
  • -
  • -
    KernelStack:Kernel消耗的内存。
    -
    -
  • -
  • -
    Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小。
    -
    -
  • -
  • -
    Inactive:在不经常使用中的缓冲或高速缓冲存储器页面文件的大小。
    -
    -
  • -
  • -
    Unevictable:不能被释放的内存页。
    -
    -
  • -
  • -
    VmallocTotal:可以vmalloc虚拟内存大小。
    -
    -
  • -
  • -
    CmaTotal:总的连续可用内存。
    -
    -
  • -
  • -
    CmaFree:空闲的可用内存。
    -
    -框选 Disk Bytes Read/Sec,Disk Bytes Written/Sec,Disk Read Ops/Sec,Disk Written Ops/Sec 四个区域的泳道图,会展示 System Disk Summary 的 Tab 页。
    -GitHub Logo
  • -
  • -
    Start Time:采集时间的时间戳。
    -
    -
  • -
  • -
    Duration:前一次采集到本次采集的时间差。
    -
    -
  • -
  • -
    Data Read:从磁盘读取到内存的总字节数。
    -
    -
  • -
  • -
    Data Read/sec:每秒从磁盘读取到内存的字节数。
    -
    -
  • -
  • -
    Data Write:从内存写入磁盘的总字节数。
    -
    -
  • -
  • -
    Data Write/sec:每秒从内存写入磁盘的字节数。
    -
    -
  • -
  • -
    Reads In:读入的字节数。
    -
    -
  • -
  • -
    Reads In/sec:每秒读入的字节数。
    -
    -
  • -
  • -
    Write Out:写入的字节数。
    -
    -
  • -
  • -
    Write Out/sec:每秒写入的字节数。
    -
    -框选 Network Bytes In/Sec,Network Bytes Out/Sec,Network Packets In/Sec,Network Packets Out/Sec 四个区域的泳道图,会展示 System Network Summary 的 Tab 页。
    -GitHub Logo
  • -
  • -
    Start Time:采集时间的时间戳。
    -
    -
  • -
  • -
    Duration:前一次采集到本次采集的时间差。
    -
    -
  • -
  • -
    Data Received:接收的网络数据总字节数。
    -
    -
  • -
  • -
    Data Received/sec:每秒接收的网络数据字节数。
    -
    -
  • -
  • -
    Data Send:发送的网络数据总字节数。
    -
    -
  • -
  • -
    Data Send/sec:每秒发送的网络数据字节数。
    -
    -
  • -
  • -
    Packets In:接收的网络总数据包数。
    -
    -
  • -
  • -
    Packets In/sec:每秒接收的网络数据包数。
    -
    -
  • -
  • -
    Packets Out:发送的网络总数据包数。
    -
    -
  • -
  • -
    Packets Out/sec:每秒发送的网络数据包数。
    -
    -
  • -
+ -
- - - - - - - - - - \ No newline at end of file + + + + + +
+

Ability Monitor 抓取和展示说明

+

抓取和展示处理的 CPU,内存,磁盘 IO 和网络使用情况统计。

+

Ability Monitor 的抓取

+

Ability Monitor 抓取界面配置说明

+

+ 点击 Probes config,如选择抓取 AbilityMonitor。
+ GitHub Logo +

+

Ability Monitor 文件的抓取

+

+ 点击 Record setting,在 output file path 输入文件名 hiprofiler_data_abilitymonitor.htrace,拖动滚动条设置 buffer + size 大小是 64M,抓取时长是 50s。
+ GitHub Logo
+ 点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
+ GitHub Logo
+ 输入 hdc_shell,进入设备,执行命令。
+ GitHub Logo
+ 进入指定目录,cd /data/local/tmp 进入到目录,会看到生成的 trace 文件。
+ GitHub Logo +

+

Ability Monitor 功能介绍

+

将抓取的文件导入到 smartperf 工具查看,能了解 CPU,内存,磁盘 IO 和网络的使用情况。

+

Ability Monitor 泳道图展示

+

+ Ability Monitor 展开就可以看到泳道图,包括 CPU,内存,磁盘 IO,网络的使用情况。
+ GitHub Logo +

+
    +
  • +
    +CPU Total Load:总的CPU使用率。
    +
    +
  • +
  • +
    +CPU User Load:CPU在用户态空间运行的使用率。
    +
    +
  • +
  • +
    +CPU System Load:CPU在内核空间运行的使用率。
    +
    +
  • +
  • +
    +MemoryTotal: 总计物理内存的大小。
    +
    +
  • +
  • +
    +Cached:缓存的大小。
    +
    +
  • +
  • +
    +SwapTotal: 虚拟内存。
    +
    +
  • +
  • +
    +Disk Bytes Read/Sec:每秒从磁盘读取到内存的字节数。
    +
    +
  • +
  • +
    +Disk Bytes Written/Sec: 每秒从内存写入磁盘的字节数。
    +
    +
  • +
  • +
    +Disk Read Ops/Sec:读入的字节数。
    +
    +
  • +
  • +
    +Disk Written Ops/Sec: 写入的字节数。
    +
    +
  • +
  • +
    +Network Bytes In/Sec:每秒接收的网络数据字节数。
    +
    +
  • +
  • +
    +Network Bytes Out/Sec: 每秒发送的网络数据字节数。
    +
    +
  • +
  • +
    +Network Packets In/Sec:每秒接收的网络数据包数。
    +
    +
  • +
  • +
    +Network Packets Out/Sec: 每秒发送的网络数据包数。
    +
    +
  • +
+

Ability Monitor 泳道图的框选功能

+

+ 可以对 CPU,内存,磁盘 IO 和网络的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有六个 tab + 页。
+ Live Processes 的 Tab 页如图:
+ GitHub Logo +

+
    +
  • +
    +Process ID:进程的ID。
    +
    +
  • +
  • +
    +Process Name:进程名称。
    +
    +
  • +
  • +
    +Responsible Process:父进程ID。
    +
    +
  • +
  • +
    +User ID:用户ID。
    +
    +
  • +
  • +
    +%CPU:进程的CPU占用率。
    +
    +
  • +
  • +
    +CPU Time:CPU运行时间。
    +
    +
  • +
  • +
    +#Threads:进程的线程数量。
    +
    +
  • +
  • +
    +Memory:内存值。
    +
    +
  • +
  • +
    +Disk Writes(B):磁盘读入的字节数。
    +
    +
  • +
  • +
    +Disk Reads(B):磁盘写入的字节数。
    +
    + Processes History 的 Tab 页如图:
    + GitHub Logo +
  • +
  • +
    +Process ID:进程ID。
    +
    +
  • +
  • +
    +Alive:进程是否存活。
    +
    +
  • +
  • +
    +First Seen:开始时间。
    +
    +
  • +
  • +
    +Last Seen:所选区域的结束时间。
    +
    +
  • +
  • +
    +Process Name:进程名称。
    +
    +
  • +
  • +
    +Responsible Process:父进程ID。
    +
    +
  • +
  • +
    +User ID:用户ID。
    +
    +
  • +
  • +
    +CPU Time:CPU运行时间。
    +
    + 框选 CPU Total Load,CPU User Load,CPU System Load 三个区域的泳道图,会展示 System CPU Summary 的 Tab 页。
    + GitHub Logo +
  • +
  • +
    +Start Time:采集时间的时间戳。
    +
    +
  • +
  • +
    +Duration:前一次采集到本次采集的时间差。
    +
    +
  • +
  • +
    +TotalLoad%:总的CPU使用率。
    +
    +
  • +
  • +
    +UserLoad%:CPU在用户态空间运行的使用率。
    +
    +
  • +
  • +
    +SystemLoad%:CPU在内核空间运行的使用率。
    +
    +
  • +
  • +
    +Process:进程号。
    +
    + 框选 MemoryTotal,Cached,SwapTota 三个区域的泳道图,会展示 System Memory Summary 的 Tab 页。
    + GitHub Logo +
  • +
  • +
    +Start Time:采集时间的时间戳。
    +
    +
  • +
  • +
    +Duration:前一次采集到本次采集的时间差。
    +
    +
  • +
  • +
    +MemTotal:总内存大小。
    +
    +
  • +
  • +
    +MemFree:空闲内存大小。
    +
    +
  • +
  • +
    +Buffers:文件的缓冲大小。
    +
    +
  • +
  • +
    +Cached:缓存的大小。
    +
    +
  • +
  • +
    +Shmem:已被分配的共享内存大小。
    +
    +
  • +
  • +
    +Slab:内核数据缓存大小。
    +
    +
  • +
  • +
    +SUnreclaim:不可回收的Slab大小。
    +
    +
  • +
  • +
    +Swap Toal:交换空间的总大小。
    +
    +
  • +
  • +
    +SwapFree:未被使用交换空间的大小。
    +
    +
  • +
  • +
    +Mapped:设备和文件等映射的大小。
    +
    +
  • +
  • +
    +VmallocUsed:已被使用的虚拟内存大小。
    +
    +
  • +
  • +
    +PageTables:管理内存分页的索引表大小。
    +
    +
  • +
  • +
    +KernelStack:Kernel消耗的内存。
    +
    +
  • +
  • +
    +Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小。
    +
    +
  • +
  • +
    +Inactive:在不经常使用中的缓冲或高速缓冲存储器页面文件的大小。
    +
    +
  • +
  • +
    +Unevictable:不能被释放的内存页。
    +
    +
  • +
  • +
    +VmallocTotal:可以vmalloc虚拟内存大小。
    +
    +
  • +
  • +
    +CmaTotal:总的连续可用内存。
    +
    +
  • +
  • +
    +CmaFree:空闲的可用内存。
    +
    + 框选 Disk Bytes Read/Sec,Disk Bytes Written/Sec,Disk Read Ops/Sec,Disk Written Ops/Sec + 四个区域的泳道图,会展示 System Disk Summary 的 Tab 页。
    + GitHub Logo +
  • +
  • +
    +Start Time:采集时间的时间戳。
    +
    +
  • +
  • +
    +Duration:前一次采集到本次采集的时间差。
    +
    +
  • +
  • +
    +Data Read:从磁盘读取到内存的总字节数。
    +
    +
  • +
  • +
    +Data Read/sec:每秒从磁盘读取到内存的字节数。
    +
    +
  • +
  • +
    +Data Write:从内存写入磁盘的总字节数。
    +
    +
  • +
  • +
    +Data Write/sec:每秒从内存写入磁盘的字节数。
    +
    +
  • +
  • +
    +Reads In:读入的字节数。
    +
    +
  • +
  • +
    +Reads In/sec:每秒读入的字节数。
    +
    +
  • +
  • +
    +Write Out:写入的字节数。
    +
    +
  • +
  • +
    +Write Out/sec:每秒写入的字节数。
    +
    + 框选 Network Bytes In/Sec,Network Bytes Out/Sec,Network Packets In/Sec,Network Packets Out/Sec + 四个区域的泳道图,会展示 System Network Summary 的 Tab 页。
    + GitHub Logo +
  • +
  • +
    +Start Time:采集时间的时间戳。
    +
    +
  • +
  • +
    +Duration:前一次采集到本次采集的时间差。
    +
    +
  • +
  • +
    +Data Received:接收的网络数据总字节数。
    +
    +
  • +
  • +
    +Data Received/sec:每秒接收的网络数据字节数。
    +
    +
  • +
  • +
    +Data Send:发送的网络数据总字节数。
    +
    +
  • +
  • +
    +Data Send/sec:每秒发送的网络数据字节数。
    +
    +
  • +
  • +
    +Packets In:接收的网络总数据包数。
    +
    +
  • +
  • +
    +Packets In/sec:每秒接收的网络数据包数。
    +
    +
  • +
  • +
    +Packets Out:发送的网络总数据包数。
    +
    +
  • +
  • +
    +Packets Out/sec:每秒发送的网络数据包数。
    +
    +
  • +
+
+ + diff --git a/ide/src/doc/md/quickstart_animation.md b/ide/src/doc/md/quickstart_animation.md index 4bfe801ce8b87a9ad8be665bd0ea2d6e0ccfbe45..9fca81ec3ba4773a6be1af6c5745bffac67b2846 100644 --- a/ide/src/doc/md/quickstart_animation.md +++ b/ide/src/doc/md/quickstart_animation.md @@ -1,12 +1,20 @@ # Animation的抓取和展示说明 + 通过动效模板的指标项对图形子系统和应用做动效卡顿类问题分析。 + ### Animation抓取参数的配置 + ![GitHub Logo](../../figures/animation/animationconfig.jpg) 配置项说明: -+ Animation effect:动效配置项的总开关。 + +- Animation effect:动效配置项的总开关。 + ### Animation展示说明 + 将抓取的Animation文件导入到smartperf工具中,查看图形子系统和应用动效卡顿类问题。 + ### Animation泳道图展示 + Animation的响应时延和完成时延泳道图显示,泳道图的Slice会显示响应时延和完成时延,如下图中的Response delay(79.379165ms),Completion delay(2606.938539ms)。 ![GitHub Logo](../../figures/animation/anrsdelayrow.jpg)。 Animation的动效曲线和帧间距的总泳道图,如图点击WindowScene_mm37旁边的小齿轮可以切换WindowScene。 @@ -14,45 +22,58 @@ Animation的动效曲线和帧间距的总泳道图,如图点击WindowScene_mm Animation的动效曲线泳道图展示,如下: ![GitHub Logo](../../figures/animation/anieffectcurv.jpg) 泳道图说明: -+ Animation Effect Curve旁边的齿轮显示的x,y,width,height,alpha是动效帧的属性值,可以切换。 -+ Animation Effect Curve泳道图红色的曲线代表的是异常判断点,也就是相邻两帧属性值相同的异常时间区间。 -Animation的帧间距泳道图展示,如下: -![GitHub Logo](../../figures/animation/framespacirow.jpg) -泳道图说明: -+ Frame spacing泳道图显示相邻两帧在时间尺度上相对于设备物理屏幕的变化间距值。 + +- Animation Effect Curve旁边的齿轮显示的x,y,width,height,alpha是动效帧的属性值,可以切换。 +- Animation Effect Curve泳道图红色的曲线代表的是异常判断点,也就是相邻两帧属性值相同的异常时间区间。 + Animation的帧间距泳道图展示,如下: + ![GitHub Logo](../../figures/animation/framespacirow.jpg) + 泳道图说明: +- Frame spacing泳道图显示相邻两帧在时间尺度上相对于设备物理屏幕的变化间距值。 + ### 动效曲线泳道图点选功能 + 点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。 ![GitHub Logo](../../figures/animation/anieffectcurvselect.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ Value:属性值。 + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- Value:属性值。 + ### 动效曲线泳道图框选功能 + 框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。 ![GitHub Logo](../../figures/animation/anieffectcurvdrag.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ Value:属性值。 + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- Value:属性值。 + ### 帧间距泳道图点选功能 + 点选帧间距泳道图,Frame spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算四个属性的的帧间距,所以需要显示四个属性的。 ![GitHub Logo](../../figures/animation/anispacingselect.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ property:动效宽度,高度,X,Y的属性。 -+ Value2: 当前帧的属性值。 -+ Value1: 前一帧的属性值。 -+ Screen:存储设备的物理宽度/高度。 -+ T2(s): 当前帧的结束时间。 -+ T1(s): 前一帧的结束时间。 -+ result:帧间距。 + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- property:动效宽度,高度,X,Y的属性。 +- Value2: 当前帧的属性值。 +- Value1: 前一帧的属性值。 +- Screen:存储设备的物理宽度/高度。 +- T2(s): 当前帧的结束时间。 +- T1(s): 前一帧的结束时间。 +- result:帧间距。 + ### 帧间距泳道图框选功能 + 框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。 ![GitHub Logo](../../figures/animation/anispacingdrag.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ property:动效宽度,高度,X,Y的属性。 -+ Value2: 当前帧的属性值。 -+ Value1: 前一帧的属性值。 -+ Screen:存储设备的物理宽度/高度。 -+ T2(s): 当前帧的结束时间。 -+ T1(s): 前一帧的结束时间。 -+ result:帧间距。 \ No newline at end of file + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- property:动效宽度,高度,X,Y的属性。 +- Value2: 当前帧的属性值。 +- Value1: 前一帧的属性值。 +- Screen:存储设备的物理宽度/高度。 +- T2(s): 当前帧的结束时间。 +- T1(s): 前一帧的结束时间。 +- result:帧间距。 diff --git a/ide/src/doc/md/quickstart_app_startup.md b/ide/src/doc/md/quickstart_app_startup.md index c57dda80c1cb35330d844d9eccae0d1a614d0c20..6325f448545ccfd761d65078f81eb9e935affdc7 100644 --- a/ide/src/doc/md/quickstart_app_startup.md +++ b/ide/src/doc/md/quickstart_app_startup.md @@ -1,54 +1,82 @@ # App startup的抓取和展示说明 + 应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。 + ### App startup抓取参数的配置 + ![GitHub Logo](../../figures/appstartup/appstartupconfig.jpg) 配置项说明: -+ App startup:配置项的总开关。 + +- App startup:配置项的总开关。 + ### App startup展示说明 + 将抓取的App startup文件导入到smartperf工具中,查看应用启动各阶段耗时的情况。 + ### App startup泳道图展示 + App startup的泳道图展示: ![GitHub Logo](../../figures/appstartup/appstartuprow.jpg) 应用启动包括六个阶段,分别是Process Creating(应用进程创建阶段)、Application Launching(加载应用阶段)、UI Ability Launching(加载UI Ability)、UI Ability OnForeground(应用进入前台)、First Frame - APP Phase(首帧渲染提交-应用)、First Frame - Render Phase(首帧渲染提交-Render Service)。每个阶段的Slice上都会显示出该阶段的时延。 + ### App startup泳道图点选功能 + 可以对启动各个阶段的Slice进行点选,点选后在最下方的弹出层中会展示点选数据的统计的tab页。 以Process Creating的Slice点选为例: ![GitHub Logo](../../figures/appstartup/appstartupslice.jpg) -+ StartTime(Relative): 应用启动开始时间(相对时间)。 -+ StartTime(Absolute): 应用启动开始时间(绝对时间)。 -+ EndTime(Relative):应用启动的结束时间(相对时间)。 -+ EndTime(Absolute):应用启动的结束时间(绝对时间)。 -+ Duration:应用启动的持续时间。 + +- StartTime(Relative): 应用启动开始时间(相对时间)。 +- StartTime(Absolute): 应用启动开始时间(绝对时间)。 +- EndTime(Relative):应用启动的结束时间(相对时间)。 +- EndTime(Absolute):应用启动的结束时间(绝对时间)。 +- Duration:应用启动的持续时间。 + ### App startup泳道图Tab页跳转功能 + 点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。 以Process Creating的跳转为例: ![GitHub Logo](../../figures/appstartup/appstartupjump.jpg) 跳转说明: -+ StartTime(Relative)的跳转: 跳转到H:virtual int OHOS::AAFwk::AbilityManagerService::StartAbility关键字函数。 -+ EndTime(Relative)的跳转: 跳转到H:virtual void OHOS::AppExecFwk::AppMgrServiceInner::AttachApplication关键字函数,并且调用栈要带##应用名,如##com.ohos.smartperf。 + +- StartTime(Relative)的跳转: 跳转到H:virtual int OHOS::AAFwk::AbilityManagerService::StartAbility关键字函数。 +- EndTime(Relative)的跳转: 跳转到H:virtual void OHOS::AppExecFwk::AppMgrServiceInner::AttachApplication关键字函数,并且调用栈要带##应用名,如##com.ohos.smartperf。 + ### App startup泳道图的框选功能 + 应用启动阶段泳道图框选功能主要是框选启动分析泳道图之后,统计应用各个启动阶段的耗费时长信息。 ![GitHub Logo](../../figures/appstartup/appstartupdrag.jpg) -+ Process / Startup: 应用名称和启动阶段名称。 -+ Duration:应用各阶段启动时长。 -+ %:应用各阶段启动时长的占比。 + +- Process / Startup: 应用名称和启动阶段名称。 +- Duration:应用各阶段启动时长。 +- %:应用各阶段启动时长的占比。 + ### So初始化泳道图展示 + So初始化的泳道图展示: ![GitHub Logo](../../figures/appstartup/staticinitilizationrow.jpg) + ### So初始化泳道图的点选功能 + 点选So初始化的Slice,展示该so初始化信息的tab页。 ![GitHub Logo](../../figures/appstartup/staticinitilizationslice.jpg) -+ Name:So的名称。 -+ StartTime(Relative):So初始化开始时间(相对时间)。 -+ StartTime(Absolute):So初始化开始时间(绝对时间)。 -+ Duration:So初始化耗时。 + +- Name:So的名称。 +- StartTime(Relative):So初始化开始时间(相对时间)。 +- StartTime(Absolute):So初始化开始时间(绝对时间)。 +- Duration:So初始化耗时。 + ### So初始化泳道图Tab页跳转功能 + 点击So初始化开始时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。 ![GitHub Logo](../../figures/appstartup/staticinitilizationjump.jpg) 跳转说明: -+ StartTime(Relative)的跳转: 跳转到dlopen: system/lib64/extensionability/libinputmethod_extension_module.z.so。 + +- StartTime(Relative)的跳转: 跳转到dlopen: system/lib64/extensionability/libinputmethod_extension_module.z.so。 + ### So初始化泳道图的框选功能 + So初始化泳道图框选功能主要是框选So初始化泳道图之后,统计各个进程下各个So的初始化耗费时长信息。 ![GitHub Logo](../../figures/appstartup/staticinitilizationdrag.jpg) -+ Process / Lib: 应用名称和So名称。 -+ Duration:So的耗费时长。 \ No newline at end of file + +- Process / Lib: 应用名称和So名称。 +- Duration:So的耗费时长。 diff --git a/ide/src/doc/md/quickstart_hilog.md b/ide/src/doc/md/quickstart_hilog.md index 622beb5d693b24474fc4005dcd70ab1e514daace..88414b2efda13d2a359585667870de3ef952baf4 100644 --- a/ide/src/doc/md/quickstart_hilog.md +++ b/ide/src/doc/md/quickstart_hilog.md @@ -1,22 +1,31 @@ # Hilog抓取和展示说明 + Hilog分析模块主要展示系统日志信息。 + ## Hilog的抓取 + #### Hilog的抓取配置参数 + 打开Hilog开关抓取taskpool数据。 ![GitHub Logo](../../figures/Hilog/hilogconfig.jpg) + ### Hilog展示说明 + 将抓取的hilog文件导入到smartperf中,查看日志信息。 ![GitHub Logo](../../figures/Hilog/hilogrow.jpg) + ### Hilog泳道图的框选功能 + 框选Hilog的泳道图,展示Hilog的tab页,Log Level可以选择日志级别,也能根据Tag,Process name,Message去搜索。 ![GitHub Logo](../../figures/Hilog/hilogtab.jpg) -+ Timestamp: 时间戳信息。 -+ Time: 日志的显示时间。 -+ Level:日志级别。 -+ Tag:日志的tag。 -+ Process name:进程名。 -+ Message:日志具体信息。 -框选Hilog的泳道图,展示Summary的tab页。 -![GitHub Logo](../../figures/Hilog/hilogsummarytab.jpg) -+ Level/Process/Tag/Message: 根据类别显示日志。 -+ Count: 各级别日志的条数。 \ No newline at end of file + +- Timestamp: 时间戳信息。 +- Time: 日志的显示时间。 +- Level:日志级别。 +- Tag:日志的tag。 +- Process name:进程名。 +- Message:日志具体信息。 + 框选Hilog的泳道图,展示Summary的tab页。 + ![GitHub Logo](../../figures/Hilog/hilogsummarytab.jpg) +- Level/Process/Tag/Message: 根据类别显示日志。 +- Count: 各级别日志的条数。 diff --git a/ide/src/doc/md/quickstart_hiperf.md b/ide/src/doc/md/quickstart_hiperf.md index 5739293e8eec57f828cb15ff506dd1d4dd34ae6e..505457ad73c3dc45ece958bb12e8031ada4cc4ff 100644 --- a/ide/src/doc/md/quickstart_hiperf.md +++ b/ide/src/doc/md/quickstart_hiperf.md @@ -1,92 +1,121 @@ # HiPerf的抓取和展示说明 + HiPerf工具是对系统性能数据进行采样记录,并将采样数据保存为文件,进行读取,展示分析。 + ## HiPerf的抓取 + ### HiPerf抓取配置参数 + ![GitHub Logo](../../figures/perf/perfsetting.jpg) 配置项说明: -+ Start Hiperf Sampling:配置项的总开关。 -+ Process:离线模式下配置的是整个系统的。 -+ Frequency:配置抓取的频率。 -+ Call Stack:配置抓取的堆栈类型。 -+ Advance Options:更多的抓取配置项。 -再点击Record setting,在output file path输入文件名hiprofiler_data_perf.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 -![GitHub Logo](../../figures/perf/perfset.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 -![GitHub Logo](../../figures/perf/perfcommand.jpg) -输入hdc_shell,进入设备,执行命令。 -![GitHub Logo](../../figures/perf/perfexcutecommand.jpg) -执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 -![GitHub Logo](../../figures/perf/perffile.jpg) + +- Start Hiperf Sampling:配置项的总开关。 +- Process:离线模式下配置的是整个系统的。 +- Frequency:配置抓取的频率。 +- Call Stack:配置抓取的堆栈类型。 +- Advance Options:更多的抓取配置项。 + 再点击Record setting,在output file path输入文件名hiprofiler_data_perf.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 + ![GitHub Logo](../../figures/perf/perfset.jpg) + 点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 + ![GitHub Logo](../../figures/perf/perfcommand.jpg) + 输入hdc_shell,进入设备,执行命令。 + ![GitHub Logo](../../figures/perf/perfexcutecommand.jpg) + 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 + ![GitHub Logo](../../figures/perf/perffile.jpg) + ### HiPerf展示说明 + 将抓取的trace文件导入smartperf界面查看。 ![GitHub Logo](../../figures/perf/summary.jpg) 界面布局介绍:Perf整体界面布局分为3个部分: -+ 红色区域:泳道图。 -+ 绿色区域:详细信息(Perf Profile和Sample List)。 -+ 黄色区域:辅助信息(Callstack)。 + +- 红色区域:泳道图。 +- 绿色区域:详细信息(Perf Profile和Sample List)。 +- 黄色区域:辅助信息(Callstack)。 ### HiPerf泳道图展示 + Perf泳道图展示按照CPU使用量和线程和进程展示,鼠标移动到泳道图上,悬浮框会显示CPU的使用量。 ![GitHub Logo](../../figures/perf/chart.jpg) 按住w键放大界面,泳道图会出现P的标志,鼠标移动到P图标上,悬浮框会显示每个callstack和调用的深度如下图。 ![GitHub Logo](../../figures/perf/callstack.jpg) Perf泳道图上浅色表示无效调用栈的采样点,抓取时由于设备上的对应的so无符号信息,函数跟地址都无法获取到,固该采样点在tab页中不做显示。 ![GitHub Logo](../../figures/perf/perf_nocallstack.jpg) + ### HiPerf泳道图的框选功能 + 可以对CPU使用量区,线程和进程区数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个tab页。 Perf Profile的Tab页如图: ![GitHub Logo](../../figures/perf/PerfProfile.jpg) -+ Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 -+ Local:为该调用方法自身占用的CPU时间。 -+ Weight:调用方法的执行次数和占比。 -Sample List的Tab页如图: -![GitHub Logo](../../figures/perf/Samplelist.jpg) -+ Sample Time:采样的时间戳信息。 -+ Core:当前的CPU核信息。 -+ Process:进程名。 -+ Thread:线程名。 -+ State:运行状态。 -+ Backtrace:栈顶的调用栈名称。 + +- Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 +- Local:为该调用方法自身占用的CPU时间。 +- Weight:调用方法的执行次数和占比。 + Sample List的Tab页如图: + ![GitHub Logo](../../figures/perf/Samplelist.jpg) +- Sample Time:采样的时间戳信息。 +- Core:当前的CPU核信息。 +- Process:进程名。 +- Thread:线程名。 +- State:运行状态。 +- Backtrace:栈顶的调用栈名称。 ### HiPerf支持多种Options展示风格 + 点击Perf Profile的Tab页底部的Options,会有两个CheckBox复选框。 ![GitHub Logo](../../figures/perf/Options.jpg) -+ Invert:反向输出调用树。 -+ Hide System so:隐藏系统库文件。 + +- Invert:反向输出调用树。 +- Hide System so:隐藏系统库文件。 + ### HiPerf支持过滤调用栈调用次数的展示风格 + 点击Perf Profile的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 ![GitHub Logo](../../figures/perf/samplecounter.jpg) ### HiPerf功能的调用栈Group展示-数据分析支持剪裁功能 + ![GitHub Logo](../../figures/perf/datamining.jpg) -+ 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 -+ 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。 -+ 点击Reset按钮,将恢复选中的裁剪内容。 +- 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 + +- 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。 +- 点击Reset按钮,将恢复选中的裁剪内容。 + ### HiPerf功能的调用栈Group展示支持按条件过滤 + 在Input Filter输入关键字,会显示出带有该关键字的展示信息。 - ![GitHub Logo](../../figures/perf/inputfilter.jpg) +![GitHub Logo](../../figures/perf/inputfilter.jpg) + ### HiPerf辅助信息区展示调用栈 + 当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。对上展示到根节点,对下则展示CPU占用率最大的调用栈。调用栈右侧有Sliding bar可以滚动。 如下图的Heaviest Stack Trace: - ![GitHub Logo](../../figures/perf/heaviesttrace1.jpg) +![GitHub Logo](../../figures/perf/heaviesttrace1.jpg) + ### HiPerf的火焰图功能 + 点击Perf Profile左下角的柱状图的图标,会切换到火焰图页面。 ![GitHub Logo](../../figures/perf/flame.jpg) 进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称,lib,addr,Count,%in current thread,%in current process,&in all process。 ![GitHub Logo](../../figures/perf/flameshow.jpg) + ### HiPerf的show event count功能 + 在Hiperf的父级泳道图上增加筛选功能,可在Cpu Usage 和各种event type之间选择,切换选择之后即可将Hiperf下级各个泳道图数据更新,悬浮框可以根据选择的事件名显示对应的event count。 ![GitHub Logo](../../figures/perf/showevent.jpg) + ### HiPerf的CPU/进程级/线程级泳道支持时序火焰图, 按照每个时间点的调用栈显示功能 + 根据Hiperf父级泳道图所筛选的类型,来显示各个CPU或者线程的时序火焰图,用户可根据自己的需要,点击泳道图旁边的齿轮标志筛选出某个cpu 或者线程的火焰时序图数据。 ![GitHub Logo](../../figures/perf/cpuandthreadrow.jpg) + ### HiPerf的调用栈分析饼图/火焰图支持按进程、线程粒度可选, 饼图和火焰图可以跳转功能 + HiPerf分为process、thread、library、function四层,调用栈均可在每层的表格上鼠标点击右键跳转到对应的火焰图Tab页。火焰图上方标题显示是由哪一层跳转而来,点击关闭图标火焰图重置为当前框选范围的所有数据。 ![GitHub Logo](../../figures/perf/perf_analysisjump.jpg) 如上图,右键点击hiprofiler_plugins可以跳转到下图 ![GitHub Logo](../../figures/perf/perf_jumpframe.jpg) 筛选面板新增Hide Thread、Hide Thread State筛选选项,Hiperf可隐藏线程和状态。 ![GitHub Logo](../../figures/perf/perf_hide.jpg) - diff --git a/ide/src/doc/md/quickstart_hisystemevent.md b/ide/src/doc/md/quickstart_hisystemevent.md index 454318f4576e53d5194de182885d328c308f9132..ef3f419cce73dfe6044afd7b7d50266c357411e2 100644 --- a/ide/src/doc/md/quickstart_hisystemevent.md +++ b/ide/src/doc/md/quickstart_hisystemevent.md @@ -1,7 +1,11 @@ # HiSystemEvent的抓取和展示说明 - HiSystemEvent应用功耗模块主要是展示应用的各个子类别功耗占比信息、应用的资源申请使用记录信息、应用功耗异常事件信息、功耗关联系统状态信息。 + +HiSystemEvent应用功耗模块主要是展示应用的各个子类别功耗占比信息、应用的资源申请使用记录信息、应用功耗异常事件信息、功耗关联系统状态信息。 + ## HiSystemEvent的抓取 + ### HiSystemEvent抓取配置参数 + 打开Start Hisystem Event Tracker Record开关抓取HiSystemEvent数据。 ![GitHub Logo](../../figures/HiSystemEvent/hisyseventsetting.jpg) 再点击Record setting,在output file path输入文件名hiprofiler_data_hisystemevent.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 @@ -12,91 +16,103 @@ ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventemexcute.jpg) 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventfile.jpg) + ### HiSystemEvent展示说明 + ### HiSystemEvent的Energy泳道图展示 + 将抓取的trace文件导入smartperf界面查看。 ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventsummary.jpg) 泳道图说明: -+ Anomaly Event泳道: 显示系统异常和应用异常的ToolTip。 -+ System Event泳道: 以条状图显示,红色代表后台任务(WORKSCHEDULER),黄色代表应用锁(POWER),蓝色代表GPS定位(LOCATION)。 -+ Power泳道:应用各个子类的功耗柱状图、折现图以及应用各个子类绘制的图例,鼠标的悬浮可以显示出各个子类功耗的具体值。 -+ Brightness Nit泳道:鼠标悬浮可以显示屏幕亮度值。 -+ Wifi Event Received泳道:鼠标悬浮可以显示WiFi信号强度值。 -+ Audio Stream Change泳道:鼠标悬浮可以显示Audio状态(AUDIO_STREAM_CHANGE事件)。 -+ Audio Volume Change泳道:鼠标悬浮可以显示Audio状态(AUDIO_VOLUME_CHANGE事件)。 -+ Wifi State泳道:鼠标悬浮可以显示wifi开关状态(enable:开,disable:关)。 -+ Bluetooth Br Switch State泳道:鼠标悬浮可以显示蓝牙开关状态(enable:开, disable:关)。 -+ Location Switch State泳道:鼠标悬浮可以显示GPS开关状态(enable:开,disable:关)。 + +- Anomaly Event泳道: 显示系统异常和应用异常的ToolTip。 +- System Event泳道: 以条状图显示,红色代表后台任务(WORKSCHEDULER),黄色代表应用锁(POWER),蓝色代表GPS定位(LOCATION)。 +- Power泳道:应用各个子类的功耗柱状图、折现图以及应用各个子类绘制的图例,鼠标的悬浮可以显示出各个子类功耗的具体值。 +- Brightness Nit泳道:鼠标悬浮可以显示屏幕亮度值。 +- Wifi Event Received泳道:鼠标悬浮可以显示WiFi信号强度值。 +- Audio Stream Change泳道:鼠标悬浮可以显示Audio状态(AUDIO_STREAM_CHANGE事件)。 +- Audio Volume Change泳道:鼠标悬浮可以显示Audio状态(AUDIO_VOLUME_CHANGE事件)。 +- Wifi State泳道:鼠标悬浮可以显示wifi开关状态(enable:开,disable:关)。 +- Bluetooth Br Switch State泳道:鼠标悬浮可以显示蓝牙开关状态(enable:开, disable:关)。 +- Location Switch State泳道:鼠标悬浮可以显示GPS开关状态(enable:开,disable:关)。 + ### HiSystemEvent的Energy泳道图的框选功能 + 可以对Energy各泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格。 System Details的Tab页如图: ![GitHub Logo](../../figures/HiSystemEvent/hisystemdetails.jpg) -+ Event Name: 事件名称,事件包括后台任务,应用锁,GPS定位。 -+ Time: 时间戳信息。 -点击事件名会显示该事件的详细信息的Tab页。 -![GitHub Logo](../../figures/HiSystemEvent/systemselectdetals.jpg) -+ EVENT_NAME:事件名称。 -+ PID:应用PID。 -+ UID:应用UID。 -+ TYPE:类型。 -+ STATE:状态值。 -+ LOG_LEVEL:日志级别。 -+ NAME:NAME信息。 -+ MESSAGE:MESSAGE信息。 -+ TAG:锁名。 -Power Battery的Tab页如图: -![GitHub Logo](../../figures/HiSystemEvent/hisyseventPowerBattery.jpg) -+ Gas Gauge: 电池电量。 -+ Charge:充电状态。 -+ Screen:屏幕状态。 -+ Level:电池百分比。 -+ Current:电池电流。 -+ Capacity:电池容量。 -+ APP Name:应用包名。 -Power Details的Tab页如图: -![GitHub Logo](../../figures/HiSystemEvent/hisyseventPowerdetails.jpg) -+ UID: 应用UID。 -+ Charge:充电状态。 -+ Foreground Duration(ms):前台使用时长。 -+ Foreground Energy(mAs):前台使用功耗值。 -+ Background Duration(ms):后台使用时长。 -+ Background Energy(mAs):后台使用功耗值。 -+ Screen On Duration(ms):亮屏使用时长。 -+ Screen On Energy(mAs):亮屏使用功耗值。 -+ Screen Off Duration(ms):灭屏使用时长。 -+ Screen Off Energy(mAs):灭屏使用功耗值。 -+ Foreground Count:应用前台扫描次数。 -+ Background Count:应用后台扫描次数。 -+ Screen On Count:应用亮屏扫描次数。 -+ Screen Off Count:应用灭屏扫描次数。 -+ Background Time(ms):灭屏使用功耗值。 -+ Screen On Time(ms):应用亮屏使用时长。 -+ Screen Off Time(ms):应用灭屏使用时长。 -+ Energy(mAs):功耗值。 -+ Load(%):占用率。 -+ Usage(ms):应用使用时长。 -+ Duration(ms):持续时长。 -+ Camera Id:Camera类型,0:后置,1:前置。 -+ Count:应用个数。 -+ Energy Percent(%):功耗占比。 + +- Event Name: 事件名称,事件包括后台任务,应用锁,GPS定位。 +- Time: 时间戳信息。 + 点击事件名会显示该事件的详细信息的Tab页。 + ![GitHub Logo](../../figures/HiSystemEvent/systemselectdetals.jpg) +- EVENT_NAME:事件名称。 +- PID:应用PID。 +- UID:应用UID。 +- TYPE:类型。 +- STATE:状态值。 +- LOG_LEVEL:日志级别。 +- NAME:NAME信息。 +- MESSAGE:MESSAGE信息。 +- TAG:锁名。 + Power Battery的Tab页如图: + ![GitHub Logo](../../figures/HiSystemEvent/hisyseventPowerBattery.jpg) +- Gas Gauge: 电池电量。 +- Charge:充电状态。 +- Screen:屏幕状态。 +- Level:电池百分比。 +- Current:电池电流。 +- Capacity:电池容量。 +- APP Name:应用包名。 + Power Details的Tab页如图: + ![GitHub Logo](../../figures/HiSystemEvent/hisyseventPowerdetails.jpg) +- UID: 应用UID。 +- Charge:充电状态。 +- Foreground Duration(ms):前台使用时长。 +- Foreground Energy(mAs):前台使用功耗值。 +- Background Duration(ms):后台使用时长。 +- Background Energy(mAs):后台使用功耗值。 +- Screen On Duration(ms):亮屏使用时长。 +- Screen On Energy(mAs):亮屏使用功耗值。 +- Screen Off Duration(ms):灭屏使用时长。 +- Screen Off Energy(mAs):灭屏使用功耗值。 +- Foreground Count:应用前台扫描次数。 +- Background Count:应用后台扫描次数。 +- Screen On Count:应用亮屏扫描次数。 +- Screen Off Count:应用灭屏扫描次数。 +- Background Time(ms):灭屏使用功耗值。 +- Screen On Time(ms):应用亮屏使用时长。 +- Screen Off Time(ms):应用灭屏使用时长。 +- Energy(mAs):功耗值。 +- Load(%):占用率。 +- Usage(ms):应用使用时长。 +- Duration(ms):持续时长。 +- Camera Id:Camera类型,0:后置,1:前置。 +- Count:应用个数。 +- Energy Percent(%):功耗占比。 + ### HiSystemEvent的Hisysevent泳道图展示 + ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventrow.jpg) + ### HiSystemEvent的Hisysevent泳道图框选功能 + 框选Hisysevent的泳道图,展示Hisysevents的tab页,有Filter by Domain,Filter by eventname,Filter by contents输入框。All下拉框可以选择level级别 ![GitHub Logo](../../figures/HiSystemEvent/hisyseventtab.jpg) -+ id: id值。 -+ domain:domain值。 -+ eventname:事件名。 -+ type:事件类型。 -+ time:时间戳信息。 -+ pid:进程id。 -+ tid:线程id。 -+ uid:uid。 -+ info:info信息。 -+ level:事件级别。 -+ seq:序列号。 -+ contents:抓取内容。 -框选Hisysevent的泳道图,展示Statistics的tab页。 -![GitHub Logo](../../figures/HiSystemEvent/hisyseventStatistics.jpg) -+ Level/Domain/EventName:根据级别,Domain,事件名显示。 -+ Count: 各级别事件个数。 \ No newline at end of file + +- id: id值。 +- domain:domain值。 +- eventname:事件名。 +- type:事件类型。 +- time:时间戳信息。 +- pid:进程id。 +- tid:线程id。 +- uid:uid。 +- info:info信息。 +- level:事件级别。 +- seq:序列号。 +- contents:抓取内容。 + 框选Hisysevent的泳道图,展示Statistics的tab页。 + ![GitHub Logo](../../figures/HiSystemEvent/hisyseventStatistics.jpg) +- Level/Domain/EventName:根据级别,Domain,事件名显示。 +- Count: 各级别事件个数。 diff --git a/ide/src/doc/md/quickstart_keywords_shortcuts.md b/ide/src/doc/md/quickstart_keywords_shortcuts.md index c206baeb85a26da0b5b188fc9080ec4323a276da..797cfd8492ed5f7ce46e1e09d468be6063fbc823 100644 --- a/ide/src/doc/md/quickstart_keywords_shortcuts.md +++ b/ide/src/doc/md/quickstart_keywords_shortcuts.md @@ -1,12 +1,17 @@ ## 快捷键说明 - 利用键盘和鼠标的快捷键对界面进行操作。 + +利用键盘和鼠标的快捷键对界面进行操作。 + ### 键盘操作 -+ w/s:界面的放大/缩小。 -+ a/d:界面的左/右移动。 -+ m:对指定区域进行临时标记。 -+ Shift+m:对指定区域进行永久标记。 -+ ctrl+[/]:对Shift+m的的标尺进行左右跳转。 -+ ctrl+,/.:对旗子标志进行左右跳转。 + +- w/s:界面的放大/缩小。 +- a/d:界面的左/右移动。 +- m:对指定区域进行临时标记。 +- Shift+m:对指定区域进行永久标记。 +- ctrl+[/]:对Shift+m的的标尺进行左右跳转。 +- ctrl+,/.:对旗子标志进行左右跳转。 + ### 鼠标和键盘的操作 -+ Ctrl + Scroll wheel:界面的放大/缩小。 -+ Ctrl + Click + Drag:界面的左/右拖动。 + +- Ctrl + Scroll wheel:界面的放大/缩小。 +- Ctrl + Click + Drag:界面的左/右拖动。 diff --git a/ide/src/doc/md/quickstart_native_memory.md b/ide/src/doc/md/quickstart_native_memory.md index f4898b246129a8382b080a6bb312e70c755f9729..6cc1a27294dc88de06237d21facd34644f69cef3 100644 --- a/ide/src/doc/md/quickstart_native_memory.md +++ b/ide/src/doc/md/quickstart_native_memory.md @@ -1,18 +1,23 @@ # Native Memory抓取和展示说明 + Native Memory是查看内存的分配和释放等情况。 + ## Native Memory的抓取 + ### Native Memory抓取配置参数 + ![GitHub Logo](../../figures/NativeMemory/nativememorysetting.jpg) 配置参数说明: -* ProcessId or ProcessName:设置抓取的进程ID或者进程名,此处以输入com.ohos.mms进程名为例。 -* Max unwind level:抓取的栈的最大深度。 -* Shared Memory Size:native_daemon和native_hook进程之间存储数据的共享内存大小。 -* Filter Memory Size:只抓取大于该size的malloc数据(free不受影响)。 -* Use Fp Unwind:Fp回栈。 -* Use Record Accurately:不过滤数据,上报全量的。 -* Use Offline Symbolization:离线符号化。 -* Use Record Statistics:统计数据上报时间间隔设置。 -* Use Startup Mode :抓取应用启动阶段的内存(默认是关闭,需要抓取应用启阶段内存可开启)。 + +- ProcessId or ProcessName:设置抓取的进程ID或者进程名,此处以输入com.ohos.mms进程名为例。 +- Max unwind level:抓取的栈的最大深度。 +- Shared Memory Size:native_daemon和native_hook进程之间存储数据的共享内存大小。 +- Filter Memory Size:只抓取大于该size的malloc数据(free不受影响)。 +- Use Fp Unwind:Fp回栈。 +- Use Record Accurately:不过滤数据,上报全量的。 +- Use Offline Symbolization:离线符号化。 +- Use Record Statistics:统计数据上报时间间隔设置。 +- Use Startup Mode :抓取应用启动阶段的内存(默认是关闭,需要抓取应用启阶段内存可开启)。 再点击Record setting,在output file path输入文件名hiprofiler_data_nativememory.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 ![GitHub Logo](../../figures/NativeMemory/nativememoryset.jpg) @@ -21,119 +26,148 @@ Native Memory是查看内存的分配和释放等情况。 ![GitHub Logo](../../figures/NativeMemory/nativememorycommand.jpg) 命令行参数说明: -* save_file:是否将hook数据保存成文件,不上报protobuf形式数据给hiprofilerd。 -* filter_size:过滤malloc的大小,最小值是0,默认值是4096Byte。 -* smb_pages:nativedeamon与libnativehook间的共享内存大小。 -* max_stack_depth:最多回栈的层数,也就是抓取的栈的最大深度。 -* process_name:抓取的应用进程名。 -* string_compressed:是否进行字符串压缩。 -* fp_unwind:是否进行fp回栈。 -* callframe_compress: 是否进行栈帧压缩。 -* record_accurately: 是否不过滤数据,上报全量的。 -* offline_symbolization: 是否离线符号化。 -* statistics_interval: 统计模式下上报数据的时间间隔。 -* startup_mode: 是否需要抓取应用启动阶段内存。 + +- save_file:是否将hook数据保存成文件,不上报protobuf形式数据给hiprofilerd。 +- filter_size:过滤malloc的大小,最小值是0,默认值是4096Byte。 +- smb_pages:nativedeamon与libnativehook间的共享内存大小。 +- max_stack_depth:最多回栈的层数,也就是抓取的栈的最大深度。 +- process_name:抓取的应用进程名。 +- string_compressed:是否进行字符串压缩。 +- fp_unwind:是否进行fp回栈。 +- callframe_compress: 是否进行栈帧压缩。 +- record_accurately: 是否不过滤数据,上报全量的。 +- offline_symbolization: 是否离线符号化。 +- statistics_interval: 统计模式下上报数据的时间间隔。 +- startup_mode: 是否需要抓取应用启动阶段内存。 输入hdc_std shell,进入设备,执行命令。 ![GitHub Logo](../../figures/NativeMemory/nativeexcutecommand.jpg) 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 ![GitHub Logo](../../figures/NativeMemory/naitvememoryfile.jpg) + ## Native Memory展示说明 + 将抓取的nativememory文件导入到smartperf工具中查看,查看内存的分配和释放等情况。 + ### Native Memory泳道图展示类型 + 点击齿轮状的图标可以设置内存的展示单位。 ![GitHub Logo](../../figures/NativeMemory/NativeChart.jpg) -+ Current Bytes:以申请内存的size绘制泳道图。 -+ Native Memory Density:以申请内存的数量绘制泳道图。 -+ All Heap&AnonuymousVM:malloc分配和mmap分配的总量。 -+ All Heap:malloc分配的内存。 -+ All Anonymous VM:mmap分配的内存。 + +- Current Bytes:以申请内存的size绘制泳道图。 +- Native Memory Density:以申请内存的数量绘制泳道图。 +- All Heap&AnonuymousVM:malloc分配和mmap分配的总量。 +- All Heap:malloc分配的内存。 +- All Anonymous VM:mmap分配的内存。 + ### Native Memory泳道图的框选功能 + 可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有四个tab页。 Statistics的Tab页,主要显示了统计明细类型。 ![GitHub Logo](../../figures/NativeMemory/Statistics.jpg) -+ Memory Type:内存的类型。 -+ Existing:框选区域内申请没有释放的大小。 -+ #Existing:框选区域内申请没有释放的次数。 -+ Transient:框选区域内释放的大小。 -+ #Transient:框选区域内释放的次数。 -+ Total Bytes:框选区间内申请的大小。 -+ #Total: 框选区间内申请的次数。 -+ Peak Value: 框选区间内内存申请的峰值。 -+ Existing/Total:框选区间内剩余的内存比上申请的内存,其中浅紫色是框选区间内申请的大小/整个时间轴(申请+释放的总大小),深紫色是框选区间内(申请+释放)的大小/整个时间轴(申请+释放的总大小)。 + +- Memory Type:内存的类型。 +- Existing:框选区域内申请没有释放的大小。 +- #Existing:框选区域内申请没有释放的次数。 +- Transient:框选区域内释放的大小。 +- #Transient:框选区域内释放的次数。 +- Total Bytes:框选区间内申请的大小。 +- #Total: 框选区间内申请的次数。 +- Peak Value: 框选区间内内存申请的峰值。 +- Existing/Total:框选区间内剩余的内存比上申请的内存,其中浅紫色是框选区间内申请的大小/整个时间轴(申请+释放的总大小),深紫色是框选区间内(申请+释放)的大小/整个时间轴(申请+释放的总大小)。 Call Info的Tab页,主要显示了调用树详细类型。 ![GitHub Logo](../../figures/NativeMemory/CallInfo.jpg) -+ Symble Name:每个内存分配的调用栈。 -+ Size:分配的总大小。 -+ Count:相同调用栈出现的次数。 -Native Memory的Tab页,主要显示了单次分配信息列表。 -![GitHub Logo](../../figures/NativeMemory/NativeMemory.jpg) -+ Address:内存块的地址。 -+ Memory Type:内存分配的类型。 -+ Timestamp:时间戳信息。 -+ State:内存地址当前状态Existed 表示框选范围内未释放,Freed表示已释放。 -+ Size:该次申请分配内存的大小。 -+ Responsible Library :调用该函数的库。 -+ Responsible Caller :调用该函数的方法。 -Snapshot List的Tab页,主要显示了各时刻内存的增长的差值。 -![GitHub Logo](../../figures/NativeMemory/Snapshotlist.jpg) -+ Snapshot:标记的打点说明。 -+ Timestamp :时间戳信息。 -+ Net Growth :自从上次Snapshot的增长量,是计算的分配和释放的。 -+ Total Growth :自从上次Snapshot的增长量,是计算的每一次分配的。 -+ #Existing :仍然存在的内存数。 + +- Symble Name:每个内存分配的调用栈。 +- Size:分配的总大小。 +- Count:相同调用栈出现的次数。 + Native Memory的Tab页,主要显示了单次分配信息列表。 + ![GitHub Logo](../../figures/NativeMemory/NativeMemory.jpg) +- Address:内存块的地址。 +- Memory Type:内存分配的类型。 +- Timestamp:时间戳信息。 +- State:内存地址当前状态Existed 表示框选范围内未释放,Freed表示已释放。 +- Size:该次申请分配内存的大小。 +- Responsible Library :调用该函数的库。 +- Responsible Caller :调用该函数的方法。 + Snapshot List的Tab页,主要显示了各时刻内存的增长的差值。 + ![GitHub Logo](../../figures/NativeMemory/Snapshotlist.jpg) +- Snapshot:标记的打点说明。 +- Timestamp :时间戳信息。 +- Net Growth :自从上次Snapshot的增长量,是计算的分配和释放的。 +- Total Growth :自从上次Snapshot的增长量,是计算的每一次分配的。 +- #Existing :仍然存在的内存数。 + ### Native Memory的辅助信息功能 + 在Call Info和Native Memory的Tab页,点击选中某一行,右边画红线处会显示出该行调用栈的树结构信息。 ![GitHub Logo](../../figures/NativeMemory/nativecallstack.jpg) + ### Native Memory详细显示的过滤功能 + 点击下方的All Allocations可以对Allocation的lifeSpan进行过滤,有三个选择:All Allocatios,Create & Existing,Create & Destroyed。 ![GitHub Logo](../../figures/NativeMemory/lifespan.jpg) -+ All Allocations:所有的内存。 -+ Created & Existing:创建且被存活的内存。 -+ Created & Destroyed: 创建且被销毁的内存。 -点击下方的All Heap&Anonymous可以对内存类型进行过滤。 -![GitHub Logo](../../figures/NativeMemory/AllocationType.jpg) -+ All Heap&AnonuymousVM:Heap和AnonuymousVM的总量。 -+ All Heap:malloc分配的内存。 -+ All Anonymous VM:mmap的匿名页。 -点击下方的Mark Snapshot可以在时间轴上打标签。出现小旗的标志,通过标注多个时间点。点击到Snapshot List标签页可以看到各个时间点的内存的增长值。 -![GitHub Logo](../../figures/NativeMemory/Generation.jpg) + +- All Allocations:所有的内存。 +- Created & Existing:创建且被存活的内存。 +- Created & Destroyed: 创建且被销毁的内存。 + 点击下方的All Heap&Anonymous可以对内存类型进行过滤。 + ![GitHub Logo](../../figures/NativeMemory/AllocationType.jpg) +- All Heap&AnonuymousVM:Heap和AnonuymousVM的总量。 +- All Heap:malloc分配的内存。 +- All Anonymous VM:mmap的匿名页。 + 点击下方的Mark Snapshot可以在时间轴上打标签。出现小旗的标志,通过标注多个时间点。点击到Snapshot List标签页可以看到各个时间点的内存的增长值。 + ![GitHub Logo](../../figures/NativeMemory/Generation.jpg) + ### Native Memory的火焰图功能 + 火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称,栈的所在库名,地址,size大小,栈的个数。 ![GitHub Logo](../../figures/NativeMemory/nativeflameshow.jpg) + ### 基于函数进行调用栈(单个或多个)选择后可以在时间轴上显示内存操作点 + 点击火焰图函数时,触发火焰图点击中,显示调用栈中该函数出现在时间轴范围的分布情况。 ![GitHub Logo](../../figures/NativeMemory/memoryframe.jpg) + ### 内存搜索大小写不敏感,上层火焰图的大小和总内存需要根据搜索内容动态调整 + 执行搜索的关键字大小写不区分,搜索的函数的parent只显示搜索的children的大小之和,且可以与点选联动。 + ### 焦点函数火焰图详细展开:选中函数的全部调用栈展示 + 点击调用栈某个函数,点击函数调用的函数对应铺满画布,点击函数的parent,显示以及绘制的大小变化为点击函数的大小,如下图点击OHOS::EglCoreInit()函数,会显示该函数的全部调用栈。 ![GitHub Logo](../../figures/NativeMemory/eg_callstack.jpg) + ### 搜索框支持表达式输入 + 调用栈默认显示火焰图,新增搜索框表达式输入。表达式作用范围为nativehook统计与非统计模式。其中处理的均为Responsible Library与Responsible Caller,其中Responsible Library,Responsible Caller表示从下往上非libc++ musl的第一条调用栈的lib跟symbol,如下图所示,由于最后一条 [ operator new(unsigned long) ] libc++.so为libc++.so的函数,固跳过,所以该条调用栈的Responsible Library为 libhilog.so,Responsible Caller为OHOS::HiviewDFX::GetDomainLevel(unsigned int) 。 ![GitHub Logo](../../figures/NativeMemory/framecaller.jpg) -表达式说明:在InputFilter输入框可以进行搜索过滤和表达式过滤,其中表达式必须以@开头,英文括号包起所需要过滤的内容,每个括号必须包括 (Responsible Library,Responsible Caller)匹配全量以*表示,否则认为该输入为搜索过滤。 - -| 表达式 | 含义 | -| --- | --- | -| @(libquickjs tryalloc) | 只显示 Responsible Library为libquickjs 且Responsible Caller包含tryalloc的数据 | -| @(libquickjs *) | 只显示Responsible Library包含libquickjs的数据 | -| @(* tryalloc codec bitmapcache skYUV) | 只显示 Responsible Library为任意值 且Responsible Caller包含tryalloc或codec或bitmapcache或skYUV的数据 | -| @(libglobal *,*resourceManager) | 只显示Responsible Library包含libglobal且 Responsible Caller为任意值的数据 或 Responsible Library为任意值,Responsible Caller包含resourceManager的数据 | -| @(/data/user *) | 只显示Responsible Library路径/data/user且symbol为任意值的数据 | -| @(mali.so *,libGLES_mali.so *) | 只显示Responsible Library包含mali.so或者libGLES_mali.so的数据 | -| @(* PixelMap:ReadImageData) | 只显示Responsible Caller包含PixelMap:ReadImageData的数据 | -| | | -| @-(libark jsvm table) | 不显示Responsible Library包含libark且Responsible Caller包含jsvm或者table的数据 | -| @-(librender picture, libskia picture)
| 不显示Responsible Library包含librender或者libskia且Responsible Caller中包含picture的数据 | -| @-(libark *) | 不显示Responsible Library包含libark的数据 | -| @-(* table) | 不显示Responsible Caller中table的数据 | -| | | -| @(* table) - (libark *) | 只显示Responsible Caller包含table且Responsible Library不为libark的数据 | +表达式说明:在InputFilter输入框可以进行搜索过滤和表达式过滤,其中表达式必须以@开头,英文括号包起所需要过滤的内容,每个括号必须包括 (Responsible Library,Responsible Caller)匹配全量以\*表示,否则认为该输入为搜索过滤。 + +| 表达式 | 含义 | +| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| @(libquickjs tryalloc) | 只显示 Responsible Library为libquickjs 且Responsible Caller包含tryalloc的数据 | +| @(libquickjs \*) | 只显示Responsible Library包含libquickjs的数据 | +| @(\* tryalloc codec bitmapcache skYUV) | 只显示 Responsible Library为任意值 且Responsible Caller包含tryalloc或codec或bitmapcache或skYUV的数据 | +| @(libglobal *,*resourceManager) | 只显示Responsible Library包含libglobal且 Responsible Caller为任意值的数据 或 Responsible Library为任意值,Responsible Caller包含resourceManager的数据 | +| @(/data/user \*) | 只显示Responsible Library路径/data/user且symbol为任意值的数据 | +| @(mali.so _,libGLES_mali.so _) | 只显示Responsible Library包含mali.so或者libGLES_mali.so的数据 | +| @(\* PixelMap:ReadImageData) | 只显示Responsible Caller包含PixelMap:ReadImageData的数据 | +| | | +| @-(libark jsvm table) | 不显示Responsible Library包含libark且Responsible Caller包含jsvm或者table的数据 | +| @-(librender picture, libskia picture)
| 不显示Responsible Library包含librender或者libskia且Responsible Caller中包含picture的数据 | +| @-(libark \*) | 不显示Responsible Library包含libark的数据 | +| @-(\* table) | 不显示Responsible Caller中table的数据 | +| | | +| @(_ table) - (libark _) | 只显示Responsible Caller包含table且Responsible Library不为libark的数据 | + ### Native Memory数据统计功能 + 选择Use Record Statistics和statistics interval配置项抓取的数据,只会显示Call Info的Tab页,Call Info相关功能同上。 ![GitHub Logo](../../figures/NativeMemory/statiscsCallInfo.jpg) + ### Native Memory多进程数据显示 + 前端可以支持多进程数据的展示,通过在tab页切换不同进程,可以显示不同进程的hook数据。 -![GitHub Logo](../../figures/NativeMemory/hook_moreprocess.jpg) \ No newline at end of file +![GitHub Logo](../../figures/NativeMemory/hook_moreprocess.jpg) diff --git a/ide/src/doc/md/quickstart_parsing_ability.md b/ide/src/doc/md/quickstart_parsing_ability.md index 75d4134833f2b9e4684a52324d3bd83af55f53b7..a0c1622a7f28c48f3398f4097e17ab5ea9ee173c 100644 --- a/ide/src/doc/md/quickstart_parsing_ability.md +++ b/ide/src/doc/md/quickstart_parsing_ability.md @@ -1,36 +1,58 @@ # Trace解析能力增强 + Trace解析能力增强主要是提高Trace的解析能力。 + ### 焦点问题trace切割,选择焦点trace,聚焦问题发生时间范围,单独打开 + 焦点问题切割是将现有的trace加载到界面时,对指定时间进行框选,截取框选时间范围内的trace数据通过跳转的方式去打开新的trace界面,新界面的trace数据就是按照这段时间范围去切割的。如下图框选一段时间范围,点击右上方的小剪刀图标对框选时间范围数据进行剪切。 ![GitHub Logo](../../figures/parsingability/cuttrace_bytime.jpg) + ### 超大trace分段打开,超大trace按照固定大小切割,分段打开显示 + 超大trace分段打开是对现有配置抓取的同一种时钟源数据源的。也就是配置命令下发的抓取有效。Htrace数据按照端测切割的大小的分成多个文件,并将不能切割的hiperf、ebpf、arkts的数据单独存储。IDE通过将这几种源文件数据存储在IndexedDB,并调用trace streamer去进行切割数据,并在IDE测过滤筛选出切割的数据进行展示。 + #### 超大trace浏览器用户数据目录配置说明 + 由于大文件切割的数据是保存在浏览器的IndexedDb中,默认存储在系统盘,所以需要修改用户目录数据存放位置。 + ##### 找到浏览器的exe执行文件位置(或者浏览器exe的快捷方式位置), 在cmd窗口执行以下命令(edge浏览器) - D:\deskTop\msedge.exe.lnk --user-data-dir=D:\Edgedata - D:\deskTop\msedge.exe.lnk 浏览器的exe执行文件位置(或者浏览器exe的快捷方式位置) - --user-data-dir=D:\Edgedata 指定用户目录数据位置,本地除系统盘外的位置都可以,内存尽量大一点 + + D:\deskTop\msedge.exe.lnk --user-data-dir=D:\Edgedata + D:\deskTop\msedge.exe.lnk 浏览器的exe执行文件位置(或者浏览器exe的快捷方式位置) + --user-data-dir=D:\Edgedata 指定用户目录数据位置,本地除系统盘外的位置都可以,内存尽量大一点 + ##### 浏览器exe或者exe快捷方式目录和名称不能有带空格 - 错误:D:\desk Top\Microsoft Edge.exe.lnk --user-data-dir=D:\Edgedata - 正确:D:\deskTop\MicrosoftEdge.exe.lnk --user-data-dir=D:\Edgedata + + 错误:D:\desk Top\Microsoft Edge.exe.lnk --user-data-dir=D:\Edgedata + 正确:D:\deskTop\MicrosoftEdge.exe.lnk --user-data-dir=D:\Edgedata + ##### 配置完成后, 查看【用户配置路径】是否是配置的路径 - edge浏览器: edge://version/ - chrome浏览器: chrome://version/ + + edge浏览器: edge://version/ + chrome浏览器: chrome://version/ + #### 超大trace抓取配置说明 + ![GitHub Logo](../../figures/parsingability/bigtracerecord.jpg) -+ Long Trace Mode: 超大trace抓取模式。 -+ Single file max size: trace文件分割的大小。 + +- Long Trace Mode: 超大trace抓取模式。 +- Single file max size: trace文件分割的大小。 + #### 本地导入超大trace + 本地导入超大trace是导入文件夹,将该文件夹中所有文件导入。如下图从Open long trace file入口导入。 ![GitHub Logo](../../figures/parsingability/longtraceload.jpg) 本地导入以后,点击右上方的切页图标可以切页。 ![GitHub Logo](../../figures/parsingability/longtraceswitch.jpg) + ### web端支持已打开的trace文件转换成systrace,并可下载 + 已打开的trace界面,增加trace conver按钮,支持将htrace和row trace转为systrace。 ![GitHub Logo](../../figures/parsingability/traceconvert.jpg) -### tracestreamer离线执行sql和metrics语句,对标trace_processor_shell –q和—run-metrics + +### tracestreamer离线执行sql和metrics语句,对标trace_processor_shell –q和—run-metrics + trace_streamer_shell –q可以直接将sql查询结果显示在命令行里,如下图bytrace.ftrace是需要解析的文件,a.txt是sql语句。 ![GitHub Logo](../../figures/parsingability/tracestreamer_q.jpg) trace_streamer_shell –m可以直接将metric接口的查询结果显示在命令行里,如下图bytrace.ftrace是需要解析的文件,trace_stats是metric接口名。 -![GitHub Logo](../../figures/parsingability/tsmetric.jpg) \ No newline at end of file +![GitHub Logo](../../figures/parsingability/tsmetric.jpg) diff --git a/ide/src/doc/md/quickstart_systemtrace.md b/ide/src/doc/md/quickstart_systemtrace.md index 008b60ce14a97da97e4b695652cd42082f221b1b..3306e00b7a5119f75cd5134ed1037a3c7109cf1f 100644 --- a/ide/src/doc/md/quickstart_systemtrace.md +++ b/ide/src/doc/md/quickstart_systemtrace.md @@ -1,33 +1,47 @@ # web端加载trace说明 + 从web端查看trace文件,进行性能检测的分析。 + ## 文件加载入口 + 将抓取的trace导入查看。 ![GitHub Logo](../../figures/Web/opentrace.jpg) 说明: -+ Open trace file:导入离线trace文件入口。 -+ Open long trace file:导入大文件入口。 -+ Record new trace:抓取新的trace文件入口。 -+ Record template:抓取指定模块的trace入口。 + +- Open trace file:导入离线trace文件入口。 +- Open long trace file:导入大文件入口。 +- Record new trace:抓取新的trace文件入口。 +- Record template:抓取指定模块的trace入口。 ## 导入trace文件后显示页面 + ![GitHub Logo](../../figures/Web/trace.jpg) 说明: -+ 操作说明:在当前页面可以通过键盘上的wasd四个键位操纵当前的时间轴进行缩放,w为放大,s为缩小,a为左移,d为右移。 + +- 操作说明:在当前页面可以通过键盘上的wasd四个键位操纵当前的时间轴进行缩放,w为放大,s为缩小,a为左移,d为右移。 + ## trace功能介绍 + trace模块从上往下主要展示时间轴、cpu使用率、cpu使用情况、进程间通讯数据的方法调用情况、进程、线程和方法调用情况。 + ### 时间轴和cpu使用率 + ![GitHub Logo](../../figures/Web/time.jpg) 最上方带刻度的为时间轴,主要展示当前抓取数据的总时长和时间刻度的分布情况,如上图所示,左下角展示总时长。 中间区域展示的是抓取数据时间段内的cpu使用率,颜色越深代表cpu使用率越高,颜色越浅代表cpu使用率越低。 ![GitHub Logo](../../figures/Web/highlit.jpg) 在白色背景时间轴区域内可以点击后拖拽鼠标,可以对从鼠标按下到拖拽完成鼠标松开的区域内的数据进行筛选,高亮显示的部分为当前所选区域,如上图所示。 + ### cpu使用情况 + ![GitHub Logo](../../figures/Web/cpu.jpg) - + 如上图所示,当前抓取数据有4个cpu工作,前四组数据对应的是当前调用cpu的线程和对应的进程情况,以颜色作为区分。后四组数据则为cpu的使用频率信息。鼠标移动到相应的线程上还会将当前选中的进程信息全部置为高亮,其他的进程会置灰,如下图所示。 ![GitHub Logo](../../figures/Web/gray.jpg) + #### cpu使用情况的框选功能 + 可以对cpu的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有六个tab页。 CPU by thread的Tab页,主要显示了在框选时间区间内的进程名、进程号、线程名、线程号、总运行时长、平均运行时长和调度次数信息。 ![GitHub Logo](../../figures/Web/cpubythread.jpg) @@ -39,22 +53,30 @@ Thread Switches的Tab页,按照状态>进程>线程,统计对应状态下的 ![GitHub Logo](../../figures/Web/threadswitches.jpg) Thread States的Tab页,按进程>线程>状态的维度去统计,需要呈现该状态的线程名、进入该状态次数、该状态下时长、最小时长、平均时长、最大时长。 ![GitHub Logo](../../figures/Web/threadstates.jpg) -Sched Priority的Tab页,按优先级显示调度,显示框选范围内所有Running以及Running之前的Runnable线程的最小,最大,平均耗时。 +Sched Priority的Tab页,按优先级显示调度,显示框选范围内所有Running以及Running之前的Runnable线程的最小,最大,平均耗时。 ![GitHub Logo](../../figures/Web/schedpritab.jpg) Thread States、Thread Switches的2个Tab页,点击移动到某一行,鼠标会变成一个小手的标志,并且会高亮,点击一下,就会进入辅助信息界面,会将选中行的辅助信息展示出来,包括开始时间、进程、线程、线程状态、对应的CPU、优先级等信息如下图。 ![GitHub Logo](../../figures/Web/details.jpg) + #### cpu使用情况的单选功能 + 单选CPU使用情况数据会在选中的色块外层加上深色边框,能够突出当前选中色块,弹出层中会展示当前CPU上的进程名,线程名,开始时间的相对时间,开始时间的绝对时间,运行时长,线程结束状态信息。 ![GitHub Logo](../../figures/Web/cpuclick.jpg) + ### 线程唤醒关系树 + 线程唤醒关系树功能是点击GetWakeupList会以链式结构和表格分别在泳道图和tab上展示线程的唤醒关系树信息,点击GetWakeupList按钮旁边的星号按钮可以对唤醒树对应的泳道图一键收藏,对优先级最低且运行时长最长或者运行时长最长的线程会以红色字体高亮显示。 ![GitHub Logo](../../figures/Web/threadtree.jpg) + ### 进程、线程和方法数据 + 下图是进程数据,左边部分展示进程名称和id,右边显示线程切换关系,线程的调用方法,进程间内存信息等。 ![GitHub Logo](../../figures/Web/process.jpg) 点击进程名前面箭头可以展开对应的线程进行查看,展开后的线程如下图,如果存在堆内存占用情况,会显示出对应泳道图,如果出现两个名字和id一样的线程,则第一个为线程的使用情况,第二个为线程内的方法栈调用情况。 ![GitHub Logo](../../figures/Web/threadinfo.jpg) + #### 进程、线程和方法数据的框选功能 + 可以对线程的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,包含线程运行状态,线程调用栈的统计情况。当框选的数据中同时存在线程运行状态和线程调用栈数据,下方的弹出层中就会出现多个tab选项,可以进行切换。 下图是线程运行状态框选统计信息,包括进程名、进程号、线程名、线程号、线程状态、状态持续时间、平均持续时间、该线程状态发生的次数。 @@ -62,33 +84,65 @@ Thread States、Thread Switches的2个Tab页,点击移动到某一行,鼠标 下图是线程调用栈框选统计信息,包括方法名、持续时间、平均持续时间、调用的次数。 ![GitHub Logo](../../figures/Web/callstackselect.jpg) + #### 进程、线程和方法数据的单选功能 + 单选线程的state数据时,会展示当前选中线程的状态数据,开始时间(相对和绝对时间)和持续时长,线程状态,所在进程名称,选中状态的前一个状态,选中状态的后一个状态。 ![GitHub Logo](../../figures/Web/threadclick.jpg) 单选调用栈数据,单击方法会在选中的方法外层加上黑色边框,能够突出当前选中的方法,弹出层中会展示当前方法的名称、开始时间(相对和绝对时间)和运行时长信息,调用栈深度。 ![GitHub Logo](../../figures/Web/callstackclick.jpg) + #### 线程的跳转功能 + 点击画红框处的带箭头的标志,会从CPU的线程概览视图跳转到线程的详情视图,同时从线程的详情视图也能跳转到CPU的线程概览视图。 ![GitHub Logo](../../figures/Web/jumpthread.jpg) + +#### 获取频点的busy_time + +框选Cpu Frequency泳道的Tab页有GetBusyTime的按钮,该按钮获取每个频点在Cpu State等于0时的时间信息,体现频点的忙碌时间。 +![GitHub Logo](../../figures/Web/getbusytime.jpg) + +#### CPU频点数据切割 + +框选区域内所有running状态的频点数据,以用户输入的某一方法作为切割依据,将频点数据以Single和Loop两种方式切割后展示在Tab标签页的表格中。 +![GitHub Logo](../../figures/Web/Singe_loop.jpg) + +#### 关键路径标识 + +在ftrace数据中的cpu泳道的区域,在界面顶部增加json文件导入按钮,导入json文件后,根据线程号跟对应的时间,在cpu区域高亮该时间的线程色块,点击界面上的x,可以取消高亮。json格式如下: +![GitHub Logo](../../figures/Web/json.jpg) +导入json文件以后,会将ACCS0 [2716]线程对应时间点的slice色块高亮显示 +![GitHub Logo](../../figures/Web/keyslice.jpg) + ### trace的其他功能 + #### 小旗标志的功能 + 将选中数据的时间点通过小旗的方式在时间轴上展示,直观的展示选中数据的时间。 ![GitHub Logo](../../figures/Web/flag.jpg) + #### 勾选功能 + 框选某一区域,该区域左边会出现CheckBox的复选框,选中的区域的复选框会出现打勾的状态,可以取消勾选,也可以重新勾选。 ![GitHub Logo](../../figures/Web/checkbox.jpg) + #### 搜索功能 + 在搜索框中,可以输入线程,线程号等搜索自己想要的信息,搜索完成会高亮显示。 ![GitHub Logo](../../figures/Web/search.jpg) 在搜索框中输入调用栈的方法名,会跳转到对应的调用栈。 ![GitHub Logo](../../figures/Web/searchcallstack.jpg) + ### Tab页信息和泳道图可跳转(点击和框选场景,框选类似搜索) + 泳道图高亮场景:框选Cpu Frequency 或者Cpu State泳道图后,弹出Cpu Frequency或Cpu State Tab页,在点击Tab页表格的行时,框选范围泳道图的当前行的Value值一样的部分上方会出现一条以圆点开头颜色比趋势图颜色同色但稍深的粗线条,如下图: ![GitHub Logo](../../figures/Web/Tabskill.jpg) 搜索场景:框选函数调用栈的泳道图,弹出Slices Tab页,点击表格行,会跳转到框选范围内的第一条调用栈的位置,点击下图Slices Tab页的Background concurrent copying GC调用栈。 ![GitHub Logo](../../figures/Web/Tabskillcalltack.jpg) 会在搜索栏显示出该调用栈的搜索结果,并且会跳转到框选范围内第一条Background concurrent copying GC调用栈的位置。 ![GitHub Logo](../../figures/Web/Tabcallstackskip.jpg) + #### M键测量功能 + 放大trace中的色块,选中色块,键盘按下M,会出现像标尺一样的形状。 -![GitHub Logo](../../figures/Web/M.jpg) \ No newline at end of file +![GitHub Logo](../../figures/Web/M.jpg) diff --git a/ide/src/doc/md/quickstart_taskpool.md b/ide/src/doc/md/quickstart_taskpool.md index c3a98c17e1480d01c1d424b11bf5cd397c729abd..c33d53dfbf4b7a70633e6902cbd7ce19d8b0cd41 100644 --- a/ide/src/doc/md/quickstart_taskpool.md +++ b/ide/src/doc/md/quickstart_taskpool.md @@ -1,40 +1,61 @@ # TaskPool抓取和展示说明 + TaskPool分析模块主要展示应用程序使用taskpool时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。 + ## TaskPool的抓取 + #### TaskPool的抓取配置参数 + 打开Task pool开关抓取taskpool数据。 ![GitHub Logo](../../figures/Taskpool/taskpoolconfig.jpg) + ### TaskPool展示说明 + 将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。 ![GitHub Logo](../../figures/Taskpool/taskpoolrow.jpg) + ### TaskPool的任务关联关系跟踪 + 任务关联关系就是根据任务的executeId,把一个taskpool任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。 ![GitHub Logo](../../figures/Taskpool/taskpoolrelation.jpg) 如上图所示,点击H:Task Perform: taskId : 2, executeId : 2的调用栈会出现红色连线,红色连线展示了executeId是2的任务的关联关系,连接的调用栈分别是: -+ H:Task Allocation: taskId : 2, executeId : 2, priority : 1, executeState : 1:任务分发。 -+ H:Task Perform: taskId : 2, executeId : 2:任务执行。 -+ H:Task PerformTask End: taskId : 2, executeId : 2, performResult : Successful:任务返回。 + +- H:Task Allocation: taskId : 2, executeId : 2, priority : 1, executeState : 1:任务分发。 +- H:Task Perform: taskId : 2, executeId : 2:任务执行。 +- H:Task PerformTask End: taskId : 2, executeId : 2, performResult : Successful:任务返回。 + ### TaskPool的并发度 + 点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是3。 ![GitHub Logo](../../figures/Taskpool/taskpoolconcurrency.jpg) + ### TaskPool泳道图的点选功能 + 点选taskpool的Slice,展示该taskpool信息的tab页。 ![GitHub Logo](../../figures/Taskpool/taskpoolselect.jpg) -+ Name: 任务调用栈名称。 -+ StartTime: 任务调用栈开始时间。 -+ Duration:任务调用栈持续时间。 -+ depth:调用栈层级。 + +- Name: 任务调用栈名称。 +- StartTime: 任务调用栈开始时间。 +- Duration:任务调用栈持续时间。 +- depth:调用栈层级。 + ### TaskPool泳道图的框选功能 + 框选taskpool的泳道图,展示Frames的tab页。 ![GitHub Logo](../../figures/Taskpool/taskpooldrag.jpg) -+ Execute Id: 任务id。 -+ Task Priority: 任务优先级(HIGH,MEDIUM,LOW)。 -+ Scheduling Time(ms):调度耗时(任务执行起始时间 - 任务分发起始时间)。 -+ Execution Time(ms):执行耗时(任务执行的duration)。 -+ Return Time(ms):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。 + +- Execute Id: 任务id。 +- Task Priority: 任务优先级(HIGH,MEDIUM,LOW)。 +- Scheduling Time(ms):调度耗时(任务执行起始时间 - 任务分发起始时间)。 +- Execution Time(ms):执行耗时(任务执行的duration)。 +- Return Time(ms):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。 + ### TaskPool的队列任务数和线程池里线程状态统计 + ![GitHub Logo](../../figures/Taskpool/taskpoolnum.jpg) 如上图,H:threadNum,H:runningThreadNum,H:idleThreadNum,H:timeoutThreadNum是线程池里线程状态统计,H:taskNum是队列任务数。 + ### TaskPool的任务超时退出 + 在带有H:Thread Timeout Exit的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。 -![GitHub Logo](../../figures/Taskpool/taskpoolexit.jpg) \ No newline at end of file +![GitHub Logo](../../figures/Taskpool/taskpoolexit.jpg) diff --git a/ide/src/doc/quickstart_Application_operation_skills.html b/ide/src/doc/quickstart_Application_operation_skills.html index 9942e0170bd59b26bae59dc2b18a45eefe7368d9..487baa40f70a9f81936e92d7672f30cba5e5abbe 100644 --- a/ide/src/doc/quickstart_Application_operation_skills.html +++ b/ide/src/doc/quickstart_Application_operation_skills.html @@ -1,4 +1,4 @@ - + @@ -23,7 +23,7 @@ -ms-hyphens: none; hyphens: none; } - + /* Code blocks */ pre[class*='smartperf-'] { padding: 0.9em; @@ -39,23 +39,23 @@ padding: 1px 0.2em; border-radius: 1px 0.3em; } - + .tk.comment, .tk.blockquote { color: #8c918c; } - + .tk.cdata { color: #183898; } - + .tk.doctype, .tk.punctuation, .tk.variable, .tk.macro.property { color: #424242; } - + .tk.operator, .tk.important, .tk.keyword, @@ -63,14 +63,14 @@ .tk.builtin { color: #b71d65; } - + .tk.string, .tk.url, .tk.regex, .tk.attr-value { color: #16338d; } - + .tk.property, .tk.number, .tk.boolean, @@ -82,13 +82,13 @@ .tk.code { color: #037aa2; } - + .tk.tag, .tk.selector, .tk.prolog { color: #69ad62; } - + .tk.function, .tk.namespace, .tk.pseudo-element, @@ -100,91 +100,91 @@ .tk.attr-name { color: #775d9d; } - + .tk.entity { cursor: help; } - + .tk.title, .tk.title .tk.punctuation { font-weight: bold; color: #1a3773; } - + .tk.list { color: #f56940; } - + .tk.inserted { background-color: #eaffea; color: #509b2f; } - + .tk.deleted { background-color: #fae1e1; color: #ad2d06; } - + .tk.bold { font-weight: bolder; } - + .tk.italic { font-style: normal; } - + /* JSON */ .smartperf-json .tk.property { color: #19358c; } - + .smartperf-markup .tk.tag .tk.punctuation { color: #2c2b2b; } - + /* CSS */ code.smartperf-css, .smartperf-css .tk.function { color: #047ca4; } - + /* YAML */ .smartperf-yaml .tk.atrule { color: #609b5a; } - + code.smartperf-yaml { color: #153491; } - + /* Ruby */ .smartperf-ruby .tk.function { color: #3f3e3e; } - + /* Markdown */ .smartperf-markdown .tk.url { color: #6e5298; } - + /* Makefile */ .smartperf-makefile .tk.symbol { color: #6c5393; } - + .smartperf-makefile .tk.variable { color: #183488; } - + .smartperf-makefile .tk.builtin { color: #027ba4; } - + /* Bash */ .smartperf-bash .tk.keyword { color: #027fa9; } - + /* highlight */ pre[dl] { position: relative; @@ -198,7 +198,7 @@ display: block; width: 99%; } - + pre[dl] .line-highlight { position: absolute; left: 1px; @@ -211,7 +211,7 @@ line-height: inherit; white-space: pre; } - + pre[dl] .line-highlight:before, pre[dl] .line-highlight[data-end]:after { content: attr(data-start); @@ -228,7 +228,7 @@ border-radius: 10000px; box-shadow: 1px 2px #fdf6f6; } - + pre[dl] .line-highlight[data-end]:after { content: attr(data-end); top: auto; @@ -244,11 +244,11 @@ font-family: Helvetica; box-sizing: border-box; } - + html body > :first-child { margin-top: 0px; } - + html body h1, html body h2, html body h3, @@ -260,39 +260,39 @@ color: #000000; line-height: 1.2; } - + html body h1 { font-weight: 300; font-size: 2.25em; padding-bottom: 0.3em; } - + html body h2 { font-weight: 410; font-size: 1.74em; padding-bottom: 0.2em; } - + html body h3 { font-size: 1.6em; font-weight: 501; } - + html body h4 { font-size: 1.26em; font-weight: 601; } - + html body h5 { font-size: 1.2em; font-weight: 601; } - + html body h6 { font-size: 0.9em; font-weight: 601; } - + html body h1, html body h2, html body h3, @@ -300,64 +300,64 @@ html body h5 { font-weight: 601; } - + html body h5 { font-size: 0.9em; } - + html body h6 { color: #5c5c5c; } - + html body strong { color: #090909; } - + html body del { color: #525252; } - + html body a:not([href]) { color: inherit; text-decoration: none; } - + html body a { color: #0192da; text-decoration: none; } - + html body a:hover { color: #029dea; text-decoration: none; } - + html body img { max-width: 99%; } - + html body > p { margin-top: 1px; margin-bottom: 15px; word-wrap: break-word; } - + html body > ul, html body > ol { margin-bottom: 15px; } - + html body ul, html body ol { padding-left: 1.9em; } - + html body ul.no-list, html body ol.no-list { padding: 0px; list-style-type: none; } - + html body ul ul, html body ul ol, html body ol ol, @@ -365,29 +365,29 @@ margin-top: 1px; margin-bottom: 1px; } - + html body li { margin-bottom: 1px; } - + html body li.task-list-item { list-style: none; } - + html body li > p { margin-top: 1px; margin-bottom: 1px; } - + html body .task-list-item-checkbox { margin: 0 0.3em 0.24em -1.7em; vertical-align: middle; } - + html body .task-list-item-checkbox:hover { cursor: pointer; } - + html body blockquote { padding: 0.1px 15px 0 0.1px; font-size: inherit; @@ -396,44 +396,44 @@ border-left: 3px solid #cbc9c9; background-color: #e8e6e6; } - + html body blockquote > :first-child { margin-top: 0.2px; } - + html body blockquote > :last-child { margin-bottom: 0.1px; } - + html body hr { height: 5px; background-color: #cbcaca; margin: 32px 0 0.1px 0; border: 0 none; } - + html body table { overflow: auto; border-collapse: collapse; margin: 15px 0.1px 20px 0.1px; border-spacing: 0; } - + html body table th { font-weight: bold; color: #000000; } - + html body table td, html body table th { border: 1px solid #d6d6d6; padding: 2px 14px; } - + html body dl { padding: 0px; } - + html body dl dt { padding: 0px; margin-top: 15px; @@ -441,12 +441,12 @@ font-style: italic; font-weight: bold; } - + html body dl dd { padding: 0px 17px; margin-bottom: 17px; } - + html body code { font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 0.86em !important; @@ -455,13 +455,13 @@ border-radius: 4px; padding: 0.3em 0px; } - + html body code::before, html body code::after { letter-spacing: -0.1em; content: '\00a0'; } - + html body pre > code { padding: 1px; margin: 0px; @@ -471,11 +471,11 @@ background: transparent; border: 0px; } - + html body .highlight { margin-bottom: 17px; } - + html body .highlight pre, html body pre { padding: 0.9em; @@ -485,12 +485,12 @@ border: #d6d6d6; border-radius: 4px; } - + html body .highlight pre { margin-bottom: 0px; word-break: normal; } - + html body pre code, html body pre tt { display: inline; @@ -503,14 +503,14 @@ background-color: transparent; border: 1px; } - + html body pre code:before, html body pre tt:before, html body pre code:after, html body pre tt:after { content: normal; } - + html body p, html body blockquote, html body ul, @@ -520,7 +520,7 @@ margin-top: 1px; margin-bottom: 17px; } - + html body kbd { color: #000000; border: 3px solid #d6d6d6; @@ -529,12 +529,12 @@ background-color: #f0f0f0; border-radius: 2px; } - + @media print { html body { background-color: #ffffff; } - + html body h1, html body h2, html body h3, @@ -544,25 +544,25 @@ color: #000000; page-break-after: avoid; } - + html body blockquote { color: #5c5c53; } - + html body pre { page-break-inside: avoid; } - + html body table { display: table; } - + html body img { display: block; max-width: 99%; max-height: 99%; } - + html body pre, html body code { word-wrap: break-word; @@ -574,22 +574,22 @@ height: 99%; box-sizing: border-box; } - + .smartperf-preview .pagebreak, .smartperf-preview .newpage { page-break-before: always; } - + .smartperf-preview pre.line-numbers { position: relative; padding-left: 3.7em; counter-reset: linenumber; } - + .smartperf-preview pre.line-numbers > code { position: relative; } - + .smartperf-preview pre.line-numbers .line-numbers-rows { position: absolute; pointer-events: none; @@ -604,13 +604,13 @@ -ms-user-select: none; user-select: none; } - + .smartperf-preview pre.line-numbers .line-numbers-rows > span { pointer-events: none; display: block; counter-increment: linenumber; } - + .smartperf-preview pre.line-numbers .line-numbers-rows > span:before { content: counter(linenumber); color: #999; @@ -618,39 +618,39 @@ padding-right: 0.79em; text-align: right; } - + .smartperf-preview .mathjax-exps .MathJax_Display { text-align: center !important; } - + .smartperf-preview:not([for='preview']) .code-chunk .btn-group { display: none; } - + .smartperf-preview:not([for='preview']) .code-chunk .status { display: none; } - + .smartperf-preview:not([for='preview']) .code-chunk .output-div { margin-bottom: 16px; } - + .scrollbar-style::-webkit-scrollbar { width: 8px; } - + .scrollbar-style::-webkit-scrollbar-track { border-radius: 9px; background-color: transparent; } - + .scrollbar-style::-webkit-scrollbar-thumb { border-radius: 6px; background-color: rgba(150, 150, 150, 1); border: 4px solid rgba(150, 150, 150, 1); background-clip: content-box; } - + html body[for='html-export']:not([dpm]) { position: relative; width: 99%; @@ -661,37 +661,37 @@ padding: 1px; overflow: auto; } - + html body[for='html-export']:not([dpm]) .smartperf-preview { position: relative; top: 1px; } - + @media screen and (min-width: 914px) { html body[for='html-export']:not([dpm]) .smartperf-preview { padding: 2em calc(50% - 458px + 2em); } } - + @media screen and (max-width: 914px) { html body[for='html-export']:not([dpm]) .smartperf-preview { padding: 1.9em; } } - + @media screen and (max-width: 450px) { html body[for='html-export']:not([dpm]) .smartperf-preview { font-size: 15px !important; padding: 1.1em; } } - + @media print { html body[for='html-export']:not([dpm]) #sidebar-toc-btn { display: none; } } - + html body[for='html-export']:not([dpm]) #sidebar-toc-btn { position: fixed; bottom: 9px; @@ -704,11 +704,11 @@ text-align: center; opacity: 0.5; } - + html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn { opacity: 1; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc { position: fixed; top: 1px; @@ -722,40 +722,40 @@ overflow: auto; background-color: inherit; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar { width: 9px; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track { border-radius: 11px; background-color: transparent; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb { border-radius: 6px; background-color: rgba(150, 150, 150, 0.66); border: 3px solid rgba(150, 150, 150, 0.66); background-clip: content-box; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a { text-decoration: none; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { padding: 1px 1.7em; margin-top: 0.9em; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li { margin-bottom: 0.8em; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { list-style-type: none; } - + html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { left: 301px; width: calc(100% - 300px); @@ -763,24 +763,24 @@ margin: 1px; box-sizing: border-box; } - + @media screen and (max-width: 1274px) { html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { padding: 1.9em; } } - + @media screen and (max-width: 450px) { html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { width: 99%; } } - + html body[for='html-export']:not([dpm]):not([hsst]) .smartperf-preview { left: 50%; transform: translateX(-50%); } - + html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc { display: none; } @@ -789,27 +789,23 @@

应用操作技巧

- +

应用操作技巧主要展示各个小模块的使用技巧。

可导入符号表

- +

符号表导入适用于所有支持调用栈的Tab页,选择一个文件夹,获取文件下及其子文件夹的所有so文件,更新数据库中符号数据。文件夹内so的格式需要与在设备上的路径一致,并且导入的so需要是有符号的,例如下图中,选择的文件夹为import,选择导入的libnative_hook.z.so,在设备上的路径是/system/lib64/,那么在本地选择的文件夹内也需要保证路径是import/system/lib64/libnative_hook.z.so。
GitHub Logo
以NativeMemory举例,导入NativeMemory文件,点击Call info的Tab页,在搜索框中输入libnative_hook.z.so,会发现该so下的调用栈没有符号化完全。
- GitHub Logo
+ GitHub Logo
将本地编译的so通过导入按钮导入,本地导入路径是import/system/lib64/libnative_hook.z.so,红框处是导入按钮。
- GitHub Logo
+ GitHub Logo
导入so以后,在搜索框中输入libnative_hook.z.so,会发现符号化数据已经更新。
GitHub Logo

网页链接文件打开接口

- +

网页链接文件打开接口可以在网址后增加文件地址,打开后直接打开trace。
接口的url路径如下:
@@ -819,7 +815,8 @@

  •  蓝色框:是Smartperf工具的url(https://localhost:9000/application/)。
    -
    +
  • @@ -827,17 +824,18 @@
                   第一部分是?trace=(固定格式)。
                   第二部分是trace文件的url(https://iot.itocm.com:9001/upload/ftrace_small.txt),此处根据文件的url实际地址填写。
                   第三部分,&link=true(固定格式)。
    -
    +
  • 内容支持宽度可伸缩

    - +

    在表格每行的表头添加一个灰色竖线,拖动时单元格宽度随之改变。
    GitHub Logo

    一键展开和收起,逐级展开和收起

    - +

    将树形表格全部改为默认收起,在表头左上角添加双尖箭头图标,默认箭头朝外,点击图标,表格的每一层都展开,图标上的箭头改为朝里面,再次点击表格每一层都收起,图标上的箭头改为朝外面。
    GitHub Logo @@ -845,57 +843,57 @@

    支持shift+m多次框选,框选列表显示和操作(跳转,取消),快捷键跳转ctrl+[/]和一键取消

    - +

    每次框选泳道图后,按下shift+m键,在当前框选的开始和结束位置出现卡尺,如果只按下m键,会将上一次按m键出现的卡尺清除,在当前框选位置画卡尺,页面上每个卡尺都放进tab页中,在tab页中可以给卡尺改变颜色和移除旗子。用快捷键改变当前选中的卡尺。按下快捷键“ctrl+[”或“ctrl+]”的时候,会跳转到当前选中卡尺的上\下一个卡尺上,也就是上\下一个卡尺两侧变为实心,对应表格中的那行背景颜色变浅蓝色。

    旗子标记可快速跳转,框选列表显示和操作(跳转,取消),快捷跳转ctrl+,/.和一键取消

    - +

    在时间刻度下方点击会出现旗子和tab页,每次点击都将旗子都放进tab页中,在tab页中可以给旗子改变颜色和移除旗子。用快捷键改变当前选中的旗子。按下快捷键“ctrl+,”或“ctrl+.”的时候,会跳转到当前选中旗子的上\下一个旗子上,也就是上\下一个旗子变为实心有旗杆,对应表格中的那行背景颜色变浅蓝色。
    GitHub Logo

    泳道图支持一键收起和展开(收起前的状态)

    - +

    点击时间刻度的最左边的双箭头,可以对已展开的泳道图进行一键收起和展开。
    GitHub Logo

    单个泳道图显示为多行时可折叠为1行(收藏和非收藏)

    - +

    单个泳道图点击会将泳道图折叠为一行,折叠后的字体是蓝色。
    GitHub Logo

    已支持的泳道图按照模板分类显示,NaitveMemory,Hisysevent,应用内存等

    - +

    导入trace文件后,页面右上角的出现漏斗图标,点击会出现Display Template页面,Template Select区域显示已经添加到显示模板中的泳道图,每类泳道图后面会有一个多选框,默认不勾选,如果勾选页面上就只保留勾选的泳道图。
    GitHub Logo

    所有进程的用户输入事件归一显示,观察操作事件和对象

    - +

    对于用户InputEvent会绘制到固定的泳道图。
    GitHub Logo

    支持收藏的泳道图整体画布可伸缩

    - +

    收藏以后的泳道图可以在红线位置处上下伸缩拖动。
    GitHub Logo

    用户自定义分组化收藏(2组),及一键取消所有收藏

    - +

    选择界面上的G1和G2,可以根据自己的需求将泳道图收藏到对应G1或者G2中,点击G1和G2旁边的星号可以一键取消所有收藏。
    GitHub Logo

    trace顶部的cpu负载预览颜色随着负载降低,亮度降低的能力对比度提升

    - +

    CPU负载颜色的亮度,负载越大颜色更深,负载越小颜色越浅。
    GitHub Logo @@ -903,19 +901,19 @@

    导航栏/泳道图背景颜色支持颜色可选,字体颜色可感知slice的颜色而进行变化,颜色动态可配

    - +

    给用户提供两种模式,浅色模式(导航栏白底黑字,泳道图颜色偏淡)和深色模式(导航栏黑底白字,泳道图颜色偏深),点击最左下方的小桶标志用户可以按需选择,并且用户可以自定义systemTrace页面的颜色,给用户更多自由,自己动手设置自己喜欢的颜色,提升用户体验。
    GitHub Logo

    Trace抓取动态可停

    - +

    在抓取trace过程中,点击StopRecord按钮会对抓取命令进行启停,等待抓取停止命令返回后,将生成的文件拉取下来进行文件的解析。
    GitHub Logo

    Smartperf web端集成hdc命令能力

    - +

    在现有的配置界面上,新增一个Web版本的shell界面,可以支持shell命令。
    GitHub Logo diff --git a/ide/src/doc/quickstart_Frametimeline.html b/ide/src/doc/quickstart_Frametimeline.html index f52ac9b47a5f03dce14beb096df24c7faa6e284d..2e4c6340fa4270b83c4ac73f920cc781830dbdc7 100644 --- a/ide/src/doc/quickstart_Frametimeline.html +++ b/ide/src/doc/quickstart_Frametimeline.html @@ -1,4 +1,4 @@ - + diff --git a/ide/src/doc/quickstart_Import_so.html b/ide/src/doc/quickstart_Import_so.html index fa16d87969d1b2a21ccb624ddc9b6076d53451b4..4e62e000fac6e611212124669227e5db9f1bb18d 100644 --- a/ide/src/doc/quickstart_Import_so.html +++ b/ide/src/doc/quickstart_Import_so.html @@ -1,4 +1,4 @@ - + diff --git a/ide/src/doc/quickstart_Js_memory.html b/ide/src/doc/quickstart_Js_memory.html index b2ef07c0b9ffd1d73340838ef097ed4a60b223bf..7d5eb9904236737890102441fc3dbff0c5e6d976 100644 --- a/ide/src/doc/quickstart_Js_memory.html +++ b/ide/src/doc/quickstart_Js_memory.html @@ -1,4 +1,4 @@ - + diff --git a/ide/src/doc/quickstart_ability_monitor.html b/ide/src/doc/quickstart_ability_monitor.html index b74904ec30e10ca70bcef95eb65ff5c079478bd3..11e39ffc6194ccf594e5f7bb51d4ce8658fa3c51 100644 --- a/ide/src/doc/quickstart_ability_monitor.html +++ b/ide/src/doc/quickstart_ability_monitor.html @@ -1,4 +1,4 @@ - + diff --git a/ide/src/doc/quickstart_app_startup.html b/ide/src/doc/quickstart_app_startup.html index 36fbd7096bcaf3fe193329e995fca706c5168960..d3d3afa29564e0990ed1bdfed8112e301bade084 100644 --- a/ide/src/doc/quickstart_app_startup.html +++ b/ide/src/doc/quickstart_app_startup.html @@ -1,4 +1,4 @@ - + @@ -804,7 +804,8 @@

  •  App startup:配置项的总开关。解析时请打开对应的Flags标记(Disabled切换为Enabled)。
    -
    +
  • App startup展示说明

    @@ -831,27 +832,32 @@ App startup:配置项的总开关。解析时请打开对应的Flags标记(Dis
  •  StartTime(Relative): 应用启动开始时间(相对时间)。
    -
    +
  •  StartTime(Absolute): 应用启动开始时间(绝对时间)。
    -
    +
  •  EndTime(Relative):应用启动的结束时间(相对时间)。
    -
    +
  •  EndTime(Absolute):应用启动的结束时间(绝对时间)。
    -
    +
  •  Duration:应用启动的持续时间。
    -
    +
  • App startup泳道图Tab页跳转功能

    @@ -866,12 +872,14 @@ Duration:应用启动的持续时间。
  •  StartTime(Relative)的跳转: 跳转到H:virtual int OHOS::AAFwk::AbilityManagerService::StartAbility关键字函数。
    -
    +
  •  EndTime(Relative)的跳转: 跳转到H:virtual void OHOS::AppExecFwk::AppMgrServiceInner::AttachApplication关键字函数,并且调用栈要带##应用名,如##com.ohos.smartperf。
    -
    +
  • App startup泳道图的框选功能

    @@ -884,17 +892,20 @@ EndTime(Relative)的跳转: 跳转到H:virtual void OHOS::AppExecFwk::AppMgrSe
  •  Process / Startup: 应用名称和启动阶段名称。
    -
    +
  •  Duration:应用各阶段启动时长。
    -
    +
  •  %:应用各阶段启动时长的占比。
    -
    +
  • So初始化泳道图展示

    @@ -913,22 +924,26 @@ Duration:应用各阶段启动时长。
  •  Name:So的名称。
    -
    +
  •  StartTime(Relative):So初始化开始时间(相对时间)。
    -
    +
  •  StartTime(Absolute):So初始化开始时间(绝对时间)。
    -
    +
  •  Duration:So初始化耗时。
    -
    +
  • So初始化泳道图Tab页跳转功能

    @@ -942,7 +957,8 @@ Duration:So初始化耗时。
  •  StartTime(Relative)的跳转: 跳转到dlopen:  system/lib64/extensionability/libinputmethod_extension_module.z.so。
    -
    +
  • So初始化泳道图的框选功能

    @@ -955,15 +971,17 @@ StartTime(Relative)的跳转: 跳转到dlopen: system/lib64/extensionability/
  •  Process / Lib: 应用名称和So名称。
    -
    +
  •  Duration:So的耗费时长。
    -
    +
  • -
    + + diff --git a/ide/src/doc/quickstart_hiperf.html b/ide/src/doc/quickstart_hiperf.html index 2505e53ec5e71abf4b6d6936fa9f1b559e4498b6..7598edcbc75b669b7f7399909ae226eac0944d05 100644 --- a/ide/src/doc/quickstart_hiperf.html +++ b/ide/src/doc/quickstart_hiperf.html @@ -1,4 +1,4 @@ - + @@ -44,18 +44,18 @@ .tk.blockquote { color: #8c918c; } - + .tk.cdata { color: #183898; } - + .tk.doctype, .tk.punctuation, .tk.variable, .tk.macro.property { color: #424242; } - + .tk.operator, .tk.important, .tk.keyword, @@ -63,14 +63,14 @@ .tk.builtin { color: #b71d65; } - + .tk.string, .tk.url, .tk.regex, .tk.attr-value { color: #16338d; } - + .tk.property, .tk.number, .tk.boolean, @@ -82,13 +82,13 @@ .tk.code { color: #037aa2; } - + .tk.tag, .tk.selector, .tk.prolog { color: #69ad62; } - + .tk.function, .tk.namespace, .tk.pseudo-element, @@ -100,97 +100,97 @@ .tk.attr-name { color: #775d9d; } - + .tk.entity { cursor: help; } - + .tk.title, .tk.title .tk.punctuation { font-weight: bold; color: #1a3773; } - + .tk.list { color: #f56940; } - + .tk.inserted { background-color: #eaffea; color: #509b2f; } - + .tk.deleted { background-color: #fae1e1; color: #ad2d06; } - + .tk.bold { font-weight: bolder; } - + .tk.italic { font-style: normal; } - + /* JSON */ .smartperf-json .tk.property { color: #19358c; } - + .smartperf-markup .tk.tag .tk.punctuation { color: #2c2b2b; } - + /* CSS */ code.smartperf-css, .smartperf-css .tk.function { color: #047ca4; } - + /* YAML */ .smartperf-yaml .tk.atrule { color: #609b5a; } - + code.smartperf-yaml { color: #153491; } - + /* Ruby */ .smartperf-ruby .tk.function { color: #3f3e3e; } - + /* Markdown */ .smartperf-markdown .tk.url { color: #6e5298; } - + /* Makefile */ .smartperf-makefile .tk.symbol { color: #6c5393; } - + .smartperf-makefile .tk.variable { color: #183488; } - + .smartperf-makefile .tk.builtin { color: #027ba4; } - + /* Bash */ .smartperf-bash .tk.keyword { color: #027fa9; } - + /* highlight */ pre[dl] { position: relative; padding: 1em 1px 1px 0.9em; } - + pre[dl] .line-highlight-wrapper { position: absolute; top: 1px; @@ -199,7 +199,7 @@ display: block; width: 99%; } - + pre[dl] .line-highlight { position: absolute; left: 1px; @@ -212,7 +212,7 @@ line-height: inherit; white-space: pre; } - + pre[dl] .line-highlight:before, pre[dl] .line-highlight[data-end]:after { content: attr(data-start); @@ -229,13 +229,13 @@ border-radius: 10000px; box-shadow: 1px 2px #fdf6f6; } - + pre[dl] .line-highlight[data-end]:after { content: attr(data-end); top: auto; bottom: 0.5em; } - + html body { line-height: 1.6; font-size: 16px; @@ -246,11 +246,11 @@ font-family: Helvetica; box-sizing: border-box; } - + html body > :first-child { margin-top: 0px; } - + html body h1, html body h2, html body h3, @@ -262,39 +262,39 @@ color: #000000; line-height: 1.2; } - + html body h1 { font-weight: 300; font-size: 2.25em; padding-bottom: 0.3em; } - + html body h2 { font-weight: 410; font-size: 1.74em; padding-bottom: 0.2em; } - + html body h3 { font-size: 1.6em; font-weight: 501; } - + html body h4 { font-size: 1.26em; font-weight: 601; } - + html body h5 { font-size: 1.2em; font-weight: 601; } - + html body h6 { font-size: 0.9em; font-weight: 601; } - + html body h1, html body h2, html body h3, @@ -302,33 +302,33 @@ html body h5 { font-weight: 601; } - + html body h5 { font-size: 0.9em; } - + html body h6 { color: #5c5c5c; } - + html body strong { color: #090909; } - + html body del { color: #525252; } - + html body a:not([href]) { color: inherit; text-decoration: none; } - + html body a { color: #0192da; text-decoration: none; } - + html body a:hover { color: #029dea; text-decoration: none; @@ -348,18 +348,18 @@ html body > ol { margin-bottom: 15px; } - + html body ul, html body ol { padding-left: 1.9em; } - + html body ul.no-list, html body ol.no-list { padding: 0px; list-style-type: none; } - + html body ul ul, html body ul ol, html body ol ol, @@ -367,29 +367,29 @@ margin-top: 1px; margin-bottom: 1px; } - + html body li { margin-bottom: 1px; } - + html body li.task-list-item { list-style: none; } - + html body li > p { margin-top: 1px; margin-bottom: 1px; } - + html body .task-list-item-checkbox { margin: 0 0.3em 0.24em -1.7em; vertical-align: middle; } - + html body .task-list-item-checkbox:hover { cursor: pointer; } - + html body blockquote { padding: 0.1px 15px 0 0.1px; font-size: inherit; @@ -398,44 +398,44 @@ border-left: 3px solid #cbc9c9; background-color: #e8e6e6; } - + html body blockquote > :first-child { margin-top: 0.2px; } - + html body blockquote > :last-child { margin-bottom: 0.1px; } - + html body hr { height: 5px; background-color: #cbcaca; margin: 32px 0 0.1px 0; border: 0 none; } - + html body table { overflow: auto; border-collapse: collapse; margin: 15px 0.1px 20px 0.1px; border-spacing: 0; } - + html body table th { font-weight: bold; color: #000000; } - + html body table td, html body table th { border: 1px solid #d6d6d6; padding: 2px 14px; } - + html body dl { padding: 0px; } - + html body dl dt { padding: 0px; margin-top: 15px; @@ -443,12 +443,12 @@ font-style: italic; font-weight: bold; } - + html body dl dd { padding: 0px 17px; margin-bottom: 17px; } - + html body code { font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 0.86em !important; @@ -457,13 +457,13 @@ border-radius: 4px; padding: 0.3em 0px; } - + html body code::before, html body code::after { letter-spacing: -0.1em; content: '\00a0'; } - + html body pre > code { padding: 1px; margin: 0px; @@ -473,11 +473,11 @@ background: transparent; border: 0px; } - + html body .highlight { margin-bottom: 17px; } - + html body .highlight pre, html body pre { padding: 0.9em; @@ -487,12 +487,12 @@ border: #d6d6d6; border-radius: 4px; } - + html body .highlight pre { margin-bottom: 0px; word-break: normal; } - + html body pre code, html body pre tt { display: inline; @@ -505,14 +505,14 @@ background-color: transparent; border: 1px; } - + html body pre code:before, html body pre tt:before, html body pre code:after, html body pre tt:after { content: normal; } - + html body p, html body blockquote, html body ul, @@ -522,7 +522,7 @@ margin-top: 1px; margin-bottom: 17px; } - + html body kbd { color: #000000; border: 3px solid #d6d6d6; @@ -531,12 +531,12 @@ background-color: #f0f0f0; border-radius: 2px; } - + @media print { html body { background-color: #ffffff; } - + html body h1, html body h2, html body h3, @@ -546,53 +546,53 @@ color: #000000; page-break-after: avoid; } - + html body blockquote { color: #5c5c53; } - + html body pre { page-break-inside: avoid; } - + html body table { display: table; } - + html body img { display: block; max-width: 99%; max-height: 99%; } - + html body pre, html body code { word-wrap: break-word; white-space: pre; } } - + .smartperf-preview { width: 99%; height: 99%; box-sizing: border-box; } - + .smartperf-preview .pagebreak, .smartperf-preview .newpage { page-break-before: always; } - + .smartperf-preview pre.line-numbers { position: relative; padding-left: 3.7em; counter-reset: linenumber; } - + .smartperf-preview pre.line-numbers > code { position: relative; } - + .smartperf-preview pre.line-numbers .line-numbers-rows { position: absolute; pointer-events: none; @@ -607,13 +607,13 @@ -ms-user-select: none; user-select: none; } - + .smartperf-preview pre.line-numbers .line-numbers-rows > span { pointer-events: none; display: block; counter-increment: linenumber; } - + .smartperf-preview pre.line-numbers .line-numbers-rows > span:before { content: counter(linenumber); color: #999; @@ -621,39 +621,39 @@ padding-right: 0.79em; text-align: right; } - + .smartperf-preview .mathjax-exps .MathJax_Display { text-align: center !important; } - + .smartperf-preview:not([for='preview']) .code-chunk .btn-group { display: none; } - + .smartperf-preview:not([for='preview']) .code-chunk .status { display: none; } - + .smartperf-preview:not([for='preview']) .code-chunk .output-div { margin-bottom: 16px; } - + .scrollbar-style::-webkit-scrollbar { width: 8px; } - + .scrollbar-style::-webkit-scrollbar-track { border-radius: 9px; background-color: transparent; } - + .scrollbar-style::-webkit-scrollbar-thumb { border-radius: 6px; background-color: rgba(150, 150, 150, 1); border: 4px solid rgba(150, 150, 150, 1); background-clip: content-box; } - + html body[for='html-export']:not([dpm]) { position: relative; width: 99%; @@ -664,37 +664,37 @@ padding: 1px; overflow: auto; } - + html body[for='html-export']:not([dpm]) .smartperf-preview { position: relative; top: 1px; } - + @media screen and (min-width: 914px) { html body[for='html-export']:not([dpm]) .smartperf-preview { padding: 2em calc(50% - 458px + 2em); } } - + @media screen and (max-width: 914px) { html body[for='html-export']:not([dpm]) .smartperf-preview { padding: 1.9em; } } - + @media screen and (max-width: 450px) { html body[for='html-export']:not([dpm]) .smartperf-preview { font-size: 15px !important; padding: 1.1em; } } - + @media print { html body[for='html-export']:not([dpm]) #sidebar-toc-btn { display: none; } } - + html body[for='html-export']:not([dpm]) #sidebar-toc-btn { position: fixed; bottom: 9px; @@ -707,11 +707,11 @@ text-align: center; opacity: 0.5; } - + html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn { opacity: 1; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc { position: fixed; top: 1px; @@ -725,40 +725,40 @@ overflow: auto; background-color: inherit; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar { width: 9px; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track { border-radius: 11px; background-color: transparent; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb { border-radius: 6px; background-color: rgba(150, 150, 150, 0.66); border: 3px solid rgba(150, 150, 150, 0.66); background-clip: content-box; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a { text-decoration: none; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { padding: 1px 1.7em; margin-top: 0.9em; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li { margin-bottom: 0.8em; } - + html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { list-style-type: none; } - + html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { left: 301px; width: calc(100% - 300px); @@ -766,24 +766,24 @@ margin: 1px; box-sizing: border-box; } - + @media screen and (max-width: 1274px) { html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { padding: 1.9em; } } - + @media screen and (max-width: 450px) { html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { width: 99%; } } - + html body[for='html-export']:not([dpm]):not([hsst]) .smartperf-preview { left: 50%; transform: translateX(-50%); } - + html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc { display: none; } @@ -793,232 +793,250 @@

    HiPerf的抓取和展示说明

    -

    HiPerf工具是对系统性能数据进行采样记录,并将采样数据保存为文件,进行读取,展示分析。

    -

    HiPerf的抓取

    +

    HiPerf工具是对系统性能数据进行采样记录,并将采样数据保存为文件,进行读取,展示分析。

    +

    HiPerf的抓取

    -

    HiPerf抓取配置参数

    +

    HiPerf抓取配置参数

    -

    - GitHub Logo
    - 配置项说明: -

    -
      -
    • +

      + GitHub Logo
      + 配置项说明: +

      +
        +
      •  Start Hiperf Sampling:配置项的总开关。
        -
        -
      • -
      • + +
      • +
      •  Process:离线模式下配置的是整个系统的。
        -
        -
      • -
      • + +
      • +
      •  Frequency:配置抓取的频率。
        -
        -
      • -
      • + +
      • +
      •  Call Stack:配置抓取的堆栈类型。
        -
        -
      • -
      • + +
      • +
      •  Advance Options:更多的抓取配置项。
        -
        -
      • -
      -

      - 再点击Record setting,在output file path输入文件名hiprofiler_data_perf.htrace,拖动滚动条设置buffer - size大小是64M,抓取时长是50s。
      - GitHub Logo
      - 点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
      - GitHub Logo
      - 输入hdc_shell,进入设备,执行命令。
      - GitHub Logo
      - 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。
      - GitHub Logo -

      -

      HiPerf展示说明

      - -

      - 将抓取的trace文件导入smartperf界面查看。
      - GitHub Logo -

      -

      界面布局介绍:Perf整体界面布局分为3个部分:

      -
        -
      • + +
      • +
      +

      + 再点击Record setting,在output file path输入文件名hiprofiler_data_perf.htrace,拖动滚动条设置buffer + size大小是64M,抓取时长是50s。
      + GitHub Logo
      + 点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
      + GitHub Logo
      + 输入hdc_shell,进入设备,执行命令。
      + GitHub Logo
      + 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。
      + GitHub Logo +

      +

      HiPerf展示说明

      + +

      + 将抓取的trace文件导入smartperf界面查看。
      + GitHub Logo +

      +

      界面布局介绍:Perf整体界面布局分为3个部分:

      +
        +
      •  红色区域:泳道图。
        -
        -
      • -
      • + +
      • +
      •  绿色区域:详细信息(Perf Profile和Sample List)。
        -
        -
      • -
      • + +
      • +
      •  黄色区域:辅助信息(Callstack)。
        -
        -
      • -
      -

      HiPerf泳道图展示

      - -

      - Perf泳道图展示按照CPU使用量和线程和进程展示,鼠标移动到泳道图上,悬浮框会显示CPU的使用量。
      - GitHub Logo
      - 按住w键放大界面,泳道图会出现P的标志,鼠标移动到P图标上,悬浮框会显示每个callstack和调用的深度如下图。
      - GitHub Logo
      - Perf泳道图上浅色表示无效调用栈的采样点,抓取时由于设备上的对应的so无符号信息,函数跟地址都无法获取到,固该采样点在tab页中不做显示。
      - GitHub Logo -

      -

      HiPerf泳道图的框选功能

      - -

      - 可以对CPU使用量区,线程和进程区数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个tab页。
      - Perf Profile的Tab页如图:
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      HiPerf泳道图展示

      + +

      + Perf泳道图展示按照CPU使用量和线程和进程展示,鼠标移动到泳道图上,悬浮框会显示CPU的使用量。
      + GitHub Logo
      + 按住w键放大界面,泳道图会出现P的标志,鼠标移动到P图标上,悬浮框会显示每个callstack和调用的深度如下图。
      + GitHub Logo
      + Perf泳道图上浅色表示无效调用栈的采样点,抓取时由于设备上的对应的so无符号信息,函数跟地址都无法获取到,固该采样点在tab页中不做显示。
      + GitHub Logo +

      +

      HiPerf泳道图的框选功能

      + +

      + 可以对CPU使用量区,线程和进程区数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个tab页。
      + Perf Profile的Tab页如图:
      + GitHub Logo +

      +
        +
      •  Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。
        -
        -
      • -
      • + +
      • +
      •  Local:为该调用方法自身占用的CPU时间。
        -
        -
      • -
      • + +
      • +
      •  Weight:调用方法的执行次数和占比。
        -
        -
      • -
      -

      - Sample List的Tab页如图:
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      + Sample List的Tab页如图:
      + GitHub Logo +

      +
        +
      •  Sample Time:采样的时间戳信息。
        -
        -
      • -
      • + +
      • +
      •  Core:当前的CPU核信息。
        -
        -
      • -
      • + +
      • +
      •  Process:进程名。
        -
        -
      • -
      • + +
      • +
      •  Thread:线程名。
        -
        -
      • -
      • + +
      • +
      •  State:运行状态。
        -
        -
      • -
      • + +
      • +
      •  Backtrace:栈顶的调用栈名称。
         
        -
      • -
      -

      HiPerf支持多种Options展示风格

      - -

      - 点击Perf Profile的Tab页底部的Options,会有两个CheckBox复选框。
      - GitHub Logo -

      -
        -
      • + > +
      • +
      +

      HiPerf支持多种Options展示风格

      + +

      + 点击Perf Profile的Tab页底部的Options,会有两个CheckBox复选框。
      + GitHub Logo +

      +
        +
      •  Invert:反向输出调用树。
        -
        -
      • -
      • + +
      • +
      •  Hide System so:隐藏系统库文件。
        -
        -
      • -
      -

      HiPerf支持过滤调用栈调用次数的展示风格

      - -

      - 点击Perf Profile的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。
      - GitHub Logo -

      -

      HiPerf功能的调用栈Group展示-数据分析支持剪裁功能

      - -

      GitHub Logo

      -
        -
      • + +
      • +
      +

      HiPerf支持过滤调用栈调用次数的展示风格

      + +

      + 点击Perf Profile的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。
      + GitHub Logo +

      +

      HiPerf功能的调用栈Group展示-数据分析支持剪裁功能

      + +

      GitHub Logo

      +
        +
      • +

        + 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol + Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 +

        +
      • +
      • +

        裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。

        +
      • +
      • +

        点击Reset按钮,将恢复选中的裁剪内容。

        +
      • +
      +

      HiPerf功能的调用栈Group展示支持按条件过滤

      + +

      + 在Input Filter输入关键字,会显示出带有该关键字的展示信息。
      + GitHub Logo +

      +

      HiPerf辅助信息区展示调用栈

      + +

      + 当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。对上展示到根节点,对下则展示CPU占用率最大的调用栈。调用栈右侧有Sliding + bar可以滚动。
      + 如下图的Heaviest Stack Trace:
      + GitHub Logo +

      +

      HiPerf的火焰图功能

      + +

      + 点击Perf Profile左下角的柱状图的图标,会切换到火焰图页面。
      + GitHub Logo
      + 进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称,lib,addr,Count,%in + current thread,%in current process,&in all process。
      + GitHub Logo +

      +

      HiPerf的show event count功能

      + +

      + 在Hiperf的父级泳道图上增加筛选功能,可在Cpu Usage 和各种event + type之间选择,切换选择之后即可将Hiperf下级各个泳道图数据更新,悬浮框可以根据选择的事件名显示对应的event + count。
      + GitHub Logo +

      +

      + HiPerf的CPU/进程级/线程级泳道支持时序火焰图, 按照每个时间点的调用栈显示功能 +

      +

      - 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol - Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 + 根据Hiperf父级泳道图所筛选的类型,来显示各个CPU或者线程的时序火焰图,用户可根据自己的需要,点击泳道图旁边的齿轮标志筛选出某个cpu + 或者线程的火焰时序图数据。
      + GitHub Logo

      -
    • -
    • -

      裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。

      -
    • -
    • -

      点击Reset按钮,将恢复选中的裁剪内容。

      -
    • -
    -

    HiPerf功能的调用栈Group展示支持按条件过滤

    - -

    - 在Input Filter输入关键字,会显示出带有该关键字的展示信息。
    - GitHub Logo -

    -

    HiPerf辅助信息区展示调用栈

    - -

    - 当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。对上展示到根节点,对下则展示CPU占用率最大的调用栈。调用栈右侧有Sliding - bar可以滚动。
    - 如下图的Heaviest Stack Trace:
    - GitHub Logo -

    -

    HiPerf的火焰图功能

    - -

    - 点击Perf Profile左下角的柱状图的图标,会切换到火焰图页面。
    - GitHub Logo
    - 进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称,lib,addr,Count,%in - current thread,%in current process,&in all process。
    - GitHub Logo -

    -

    HiPerf的show event count功能

    - -

    - 在Hiperf的父级泳道图上增加筛选功能,可在Cpu Usage 和各种event - type之间选择,切换选择之后即可将Hiperf下级各个泳道图数据更新,悬浮框可以根据选择的事件名显示对应的event - count。
    - GitHub Logo -

    -

    - HiPerf的CPU/进程级/线程级泳道支持时序火焰图, 按照每个时间点的调用栈显示功能 -

    - -

    - 根据Hiperf父级泳道图所筛选的类型,来显示各个CPU或者线程的时序火焰图,用户可根据自己的需要,点击泳道图旁边的齿轮标志筛选出某个cpu - 或者线程的火焰时序图数据。
    - GitHub Logo -

    -

    - HiPerf的调用栈分析饼图/火焰图支持按进程、线程粒度可选, 饼图和火焰图可以跳转功能 -

    +

    + HiPerf的调用栈分析饼图/火焰图支持按进程、线程粒度可选, 饼图和火焰图可以跳转功能 +

    HiPerf分为process、thread、library、function四层,调用栈均可在每层的表格上鼠标点击右键跳转到对应的火焰图Tab页。火焰图上方标题显示是由哪一层跳转而来,点击关闭图标火焰图重置为当前框选范围的所有数据。
    diff --git a/ide/src/doc/quickstart_hisystemevent.html b/ide/src/doc/quickstart_hisystemevent.html index 707ace3921c10f46070f005fc597f342b0ea0600..38d2e7e8c10cf74e3be97ad320174dac143e3de4 100644 --- a/ide/src/doc/quickstart_hisystemevent.html +++ b/ide/src/doc/quickstart_hisystemevent.html @@ -1,4 +1,4 @@ - + @@ -790,418 +790,479 @@ -

    -

    HiSystemEvent的抓取和展示说明

    - -

    - HiSystemEvent应用功耗模块主要是展示应用的各个子类别功耗占比信息、应用的资源申请使用记录信息、应用功耗异常事件信息、功耗关联系统状态信息。 -

    -

    HiSystemEvent的抓取

    - -

    HiSystemEvent抓取配置参数

    - -

    - 打开Start Hisystem Event Tracker Record开关抓取HiSystemEvent数据。
    - GitHub Logo
    - 再点击Record setting,在output file path输入文件名hiprofiler_data_hisystemevent.htrace,拖动滚动条设置buffer - size大小是64M,抓取时长是50s。
    - GitHub Logo
    - 点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
    - GitHub Logo
    - 输入hdc_std shell,进入设备,执行上述生成的命令。
    - GitHub Logo
    - 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。
    - GitHub Logo -

    -

    HiSystemEvent展示说明

    - -

    HiSystemEvent的Energy泳道图展示

    - -

    - 将抓取的trace文件导入smartperf界面查看。
    - GitHub Logo
    - 泳道图说明: -

    -
      -
    • +
      +

      HiSystemEvent的抓取和展示说明

      + +

      + HiSystemEvent应用功耗模块主要是展示应用的各个子类别功耗占比信息、应用的资源申请使用记录信息、应用功耗异常事件信息、功耗关联系统状态信息。 +

      +

      HiSystemEvent的抓取

      + +

      HiSystemEvent抓取配置参数

      + +

      + 打开Start Hisystem Event Tracker Record开关抓取HiSystemEvent数据。
      + GitHub Logo
      + 再点击Record setting,在output file path输入文件名hiprofiler_data_hisystemevent.htrace,拖动滚动条设置buffer + size大小是64M,抓取时长是50s。
      + GitHub Logo
      + 点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。
      + GitHub Logo
      + 输入hdc_std shell,进入设备,执行上述生成的命令。
      + GitHub Logo
      + 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。
      + GitHub Logo +

      +

      HiSystemEvent展示说明

      + +

      HiSystemEvent的Energy泳道图展示

      + +

      + 将抓取的trace文件导入smartperf界面查看。
      + GitHub Logo
      + 泳道图说明: +

      +
        +
      •  Anomaly Event泳道: 显示系统异常和应用异常的ToolTip。
        -
        -
      • -
      • + +
      • +
      •  System Event泳道: 以条状图显示,红色代表后台任务(WORKSCHEDULER),黄色代表应用锁(POWER),蓝色代表GPS定位(LOCATION)。
        -
        -
      • -
      • + +
      • +
      •  Power泳道:应用各个子类的功耗柱状图、折线图以及应用各个子类绘制的图例,鼠标的悬浮可以显示出各个子类功耗的具体值。
        -
        -
      • -
      • + +
      • +
      •  Brightness Nit泳道:鼠标悬浮可以显示屏幕亮度值。
        -
        -
      • -
      • + +
      • +
      •  Wifi Event Received泳道:鼠标悬浮可以显示WiFi信号强度值。
        -
        -
      • -
      • + +
      • +
      •  Audio Stream Change泳道:鼠标悬浮可以显示Audio状态(AUDIO_STREAM_CHANGE事件)。
        -
        -
      • -
      • + +
      • +
      •  Audio Volume Change泳道:鼠标悬浮可以显示Audio状态(AUDIO_VOLUME_CHANGE事件)。
        -
        -
      • -
      • + +
      • +
      •  Wifi State泳道:鼠标悬浮可以显示wifi开关状态(enable:开,disable:关)。
        -
        -
      • -
      • + +
      • +
      •  Bluetooth Br Switch State泳道:鼠标悬浮可以显示蓝牙开关状态(enable:开, disable:关)。
        -
        -
      • -
      • + +
      • +
      •  Location Switch State泳道:鼠标悬浮可以显示GPS开关状态(enable:开,disable:关)。
        -
        -
      • -
      -

      HiSystemEvent的Energy泳道图的框选功能

      - -

      - 可以对Energy各泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格。
      - System Details的Tab页如图:
      - GitHub Logo -

      -
        -
      • - -Event Name: 事件名称,事件包括后台任务,应用锁,GPS定位。 - -
      • -
      • + +
      • +
      +

      HiSystemEvent的Energy泳道图的框选功能

      + +

      + 可以对Energy各泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格。
      + System Details的Tab页如图:
      + GitHub Logo +

      +
        +
      • + Event Name: 事件名称,事件包括后台任务,应用锁,GPS定位。 +
      • +
      •  Time: 时间戳信息。
        -
        -
      • -
      -

      - 点击事件名会显示该事件的详细信息的Tab页。
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      + 点击事件名会显示该事件的详细信息的Tab页。
      + GitHub Logo +

      +
        +
      •  EVENT_NAME:事件名称。
        -
        -
      • -
      • + +
      • +
      •  PID:应用PID。
        -
        -
      • -
      • + +
      • +
      •  UID:应用UID。
        -
        -
      • -
      • + +
      • +
      •  TYPE:类型。
        -
        -
      • -
      • + +
      • +
      •  STATE:状态值。
        -
        -
      • -
      • + +
      • +
      •  LOG_LEVEL:日志级别。
        -
        -
      • -
      • + +
      • +
      •  NAME:NAME信息。
        -
        -
      • -
      • + +
      • +
      •  MESSAGE:MESSAGE信息。
        -
        -
      • -
      • + +
      • +
      •  TAG:锁名。
        -
        -
      • -
      -

      - Power Battery的Tab页如图:
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      + Power Battery的Tab页如图:
      + GitHub Logo +

      +
        +
      •  Gas Gauge: 电池电量。
        -
        -
      • -
      • + +
      • +
      •  Charge:充电状态。
        -
        -
      • -
      • + +
      • +
      •  Screen:屏幕状态。
        -
        -
      • -
      • + +
      • +
      •  Level:电池百分比。
        -
        -
      • -
      • + +
      • +
      •  Current:电池电流。
        -
        -
      • -
      • + +
      • +
      •  Capacity:电池容量。
        -
        -
      • -
      • + +
      • +
      •  APP Name:应用包名。
        -
        -
      • -
      -

      - Power Details的Tab页如图:
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      + Power Details的Tab页如图:
      + GitHub Logo +

      +
        +
      •  UID: 应用UID。
        -
        -
      • -
      • + +
      • +
      •  Charge:充电状态。
        -
        -
      • -
      • + +
      • +
      •  Foreground Duration(ms):前台使用时长。
        -
        -
      • -
      • + +
      • +
      •  Foreground Energy(mAs):前台使用功耗值。
        -
        -
      • -
      • + +
      • +
      •  Background Duration(ms):后台使用时长。
        -
        -
      • -
      • + +
      • +
      •  Background Energy(mAs):后台使用功耗值。
         
        -
      • -
      • + > +
      • +
      •  Screen On Duration(ms):亮屏使用时长。
        -
        -
      • -
      • + +
      • +
      •  Screen On Energy(mAs):亮屏使用功耗值。
        -
        -
      • -
      • + +
      • +
      •  Screen Off Duration(ms):灭屏使用时长。
        -
        -
      • -
      • + +
      • +
      •  Screen Off Energy(mAs):灭屏使用功耗值。
        -
        -
      • -
      • + +
      • +
      •  Foreground Count:应用前台扫描次数。
        -
        -
      • -
      • + +
      • +
      •  Background Count:应用后台扫描次数。
        -
        -
      • -
      • + +
      • +
      •  Screen On Count:应用亮屏扫描次数。
        -
        -
      • -
      • + +
      • +
      •  Screen Off Count:应用灭屏扫描次数。
        -
        -
      • -
      • + +
      • +
      •  Background Time(ms):灭屏使用功耗值。
        -
        -
      • -
      • + +
      • +
      •  Screen On Time(ms):应用亮屏使用时长。
        -
        -
      • -
      • + +
      • +
      •  Screen Off Time(ms):应用灭屏使用时长。
        -
        -
      • -
      • + +
      • +
      •  Energy(mAs):功耗值。
        -
        -
      • -
      • + +
      • +
      •  Load(%):占用率。
        -
        -
      • -
      • + +
      • +
      •  Usage(ms):应用使用时长。
        -
        -
      • -
      • + +
      • +
      •  Duration(ms):持续时长。
        -
        -
      • -
      • + +
      • +
      •  Camera Id:Camera类型,0:后置,1:前置。
        -
        -
      • -
      • + +
      • +
      •  Count:应用个数。
        -
        -
      • -
      • + +
      • +
      •  Energy Percent(%):功耗占比。
        -
        -
      • -
      -

      HiSystemEvent的Hisysevent泳道图展示

      - -

      GitHub Logo

      -

      HiSystemEvent的Hisysevent泳道图框选功能

      - -

      - 框选Hisysevent的泳道图,展示Hisysevents的tab页,有Filter by Domain,Filter by eventname,Filter by - contents输入框。All下拉框可以选择level级别
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      HiSystemEvent的Hisysevent泳道图展示

      + +

      GitHub Logo

      +

      HiSystemEvent的Hisysevent泳道图框选功能

      + +

      + 框选Hisysevent的泳道图,展示Hisysevents的tab页,有Filter by Domain,Filter by eventname,Filter by + contents输入框。All下拉框可以选择level级别
      + GitHub Logo +

      +
        +
      •  id: id值。
        -
        -
      • -
      • + +
      • +
      •  domain:domain值。
        -
        -
      • -
      • + +
      • +
      •  eventname:事件名。
        -
        -
      • -
      • + +
      • +
      •  type:事件类型。
        -
        -
      • -
      • + +
      • +
      •  time:时间戳信息。
        -
        -
      • -
      • + +
      • +
      •  pid:进程id。
        -
        -
      • -
      • + +
      • +
      •  tid:线程id。
        -
        -
      • -
      • + +
      • +
      •  uid:uid。
        -
        -
      • -
      • + +
      • +
      •  info:info信息。
         
        -
      • -
      • + > +
      • +
      •  level:事件级别。
        -
        -
      • -
      • + +
      • +
      •  seq:序列号。
        -
        -
      • -
      • + +
      • +
      •  contents:抓取内容。
        -
        -
      • -
      -

      - 框选Hisysevent的泳道图,展示Statistics的tab页。
      - GitHub Logo -

      -
        -
      • + +
      • +
      +

      + 框选Hisysevent的泳道图,展示Statistics的tab页。
      + GitHub Logo +

      +
        +
      •  Level/Domain/EventName:根据级别,Domain,事件名显示。
        -
        -
      • -
      • + +
      • +
      •  Count: 各级别事件个数。
        -
        -
      • -
      -
      + +
    • +
    +