From 76fc7b250e9ea6f8ec9005b9b5c0c799e0151200 Mon Sep 17 00:00:00 2001 From: zhangzepeng Date: Sat, 7 Oct 2023 09:50:35 +0800 Subject: [PATCH 1/9] update-build.js Signed-off-by: zhangzepeng --- ide/build.js | 22 ++++++++++++++-------- ide/package.json | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ide/build.js b/ide/build.js index 4ead05d7..17ea40aa 100644 --- a/ide/build.js +++ b/ide/build.js @@ -27,6 +27,15 @@ const sdkWams = [ 'trace_streamer_sdk_builtin.wasm', 'trace_streamer_dubai_builtin.js', 'trace_streamer_dubai_builtin.wasm', + 'trace_converter_builtin.js', + 'trace_converter_builtin.wasm', +]; + +const necessaryWams = [ + 'trace_streamer_builtin.js', + 'trace_streamer_builtin.wasm', + 'trace_converter_builtin.js', + 'trace_converter_builtin.wasm', ]; const staticPath = ['/src/img', '/server/cert', '/src/doc', '/src/figures']; @@ -155,19 +164,16 @@ function main() { let dest = path.normalize(path.join(__dirname, outDir, '/bin')); copyDirectory(traceStreamer, dest); // to mv traceStream Wasm and js - cpFile( - traceStreamer + '/trace_streamer_builtin.js', - rootPath + outDir + '/trace/database/trace_streamer_builtin.js' - ); - cpFile( - traceStreamer + '/trace_streamer_builtin.wasm', - rootPath + outDir + '/trace/database/trace_streamer_builtin.wasm' - ); if (sdkWams.length > 0) { sdkWams.forEach((fileName) => { cpFile(traceStreamer + '/' + fileName, rootPath + outDir + '/trace/database/' + fileName); }); } + if (necessaryWams.length > 0) { + necessaryWams.forEach((fileName) => { + cpFile(traceStreamer + '/' + fileName, rootPath + outDir + '/trace/database/' + fileName); + }); + } } else { log.error('traceStreamer dir is not Exits'); return; diff --git a/ide/package.json b/ide/package.json index cf9da316..adc2039b 100644 --- a/ide/package.json +++ b/ide/package.json @@ -20,7 +20,8 @@ "!/dist/trace/database/worker.sql-wasm-debug.js", "!/dist/trace/database/trace_streamer_builtin.js", "!/dist/trace/database/trace_streamer_sdk_builtin.js", - "!/dist/trace/database/trace_streamer_dubai_builtin.js" + "!/dist/trace/database/trace_streamer_dubai_builtin.js", + "!/dist/trace/database/trace_converter_builtin.js" ], "globals": { "useWb": true -- Gitee From 259c56b8f7d65fb325ca09cdfc4f721c096be776 Mon Sep 17 00:00:00 2001 From: zhangzepeng Date: Sat, 7 Oct 2023 09:53:18 +0800 Subject: [PATCH 2/9] fix.raw.trace.sort.error Signed-off-by: zhangzepeng --- trace_streamer/doc/des_tables.md | 22 +-- trace_streamer/format-code.sh | 11 +- trace_streamer/src/base/ts_common.h | 26 ++- .../src/cfg/trace_streamer_config.cpp | 13 +- .../src/cfg/trace_streamer_config.h | 5 + .../src/filter/animation_filter.cpp | 3 +- trace_streamer/src/filter/cpu_filter.cpp | 36 ++-- trace_streamer/src/filter/cpu_filter.h | 2 +- .../bytrace_parser/bytrace_event_parser.cpp | 4 +- .../src/parser/ebpf_parser/ebpf_splitter.cpp | 1 - .../htrace_event_parser.cpp | 5 +- .../htrace_js_memory_parser.cpp | 3 - .../htrace_js_memory_parser.h | 4 +- .../htrace_mem_parser.cpp | 161 +++++++++++++----- .../htrace_mem_parser.h | 13 +- .../src/parser/rawtrace_parser/BUILD.gn | 2 +- ...etail_parser.cpp => cpu_detail_parser.cpp} | 100 +++++++++-- ...pu_detail_parser.h => cpu_detail_parser.h} | 17 +- .../ftrace_event_processor.cpp | 63 ++++++- .../rawtrace_parser/ftrace_field_processor.h | 2 +- .../rawtrace_parser/ftrace_processor.cpp | 19 +-- .../parser/rawtrace_parser/ftrace_processor.h | 8 +- .../kernel_symbols_processor.cpp | 3 - .../rawtrace_parser/rawtrace_parser.cpp | 45 ++--- .../parser/rawtrace_parser/rawtrace_parser.h | 2 +- .../src/parser/thread_state_flag.cpp | 6 - trace_streamer/src/parser/thread_state_flag.h | 15 +- .../memory_data/memory_plugin_result.proto | 53 ++++-- trace_streamer/src/rpc/rpc_server.cpp | 2 +- trace_streamer/src/table/monitor/BUILD.gn | 3 + .../src/table/monitor/memory_cpu_table.cpp | 63 +++++++ .../src/table/monitor/memory_cpu_table.h | 43 +++++ .../table/monitor/memory_profile_table.cpp | 67 ++++++++ .../src/table/monitor/memory_profile_table.h | 43 +++++ .../table/monitor/memory_rs_image_table.cpp | 84 +++++++++ .../src/table/monitor/memory_rs_image_table.h | 43 +++++ .../table/monitor/memory_window_gpu_table.cpp | 9 +- .../src/trace_data/trace_data_cache.cpp | 17 +- .../src/trace_data/trace_data_cache_base.h | 11 +- .../trace_data/trace_data_cache_reader.cpp | 12 ++ .../src/trace_data/trace_data_cache_reader.h | 3 + .../trace_data/trace_data_cache_writer.cpp | 14 +- .../src/trace_data/trace_data_cache_writer.h | 3 + .../src/trace_data/trace_stdtype.cpp | 68 ++++++++ trace_streamer/src/trace_data/trace_stdtype.h | 54 ++++++ .../test/unittest/animation_filter_test.cpp | 4 +- .../test/unittest/hilog_parser_test.cpp | 22 ++- .../unittest/htrace_binder_event_test.cpp | 37 ++-- .../htrace_cpu_detail_parser_test.cpp | 12 +- .../unittest/htrace_event_parser_test.cpp | 57 ++++--- .../test/unittest/htrace_irq_event_test.cpp | 44 +++-- .../test/unittest/js_cpu_profiler_test.cpp | 15 +- .../test/unittest/js_memory_test.cpp | 72 ++++---- .../test/unittest/native_hook_parser_test.cpp | 61 ++++--- .../test/unittest/parser_pbreader_test.cpp | 8 +- .../test/unittest/query_metrics_test.cpp | 2 +- 56 files changed, 1180 insertions(+), 337 deletions(-) rename trace_streamer/src/parser/rawtrace_parser/{rawtrace_cpu_detail_parser.cpp => cpu_detail_parser.cpp} (84%) rename trace_streamer/src/parser/rawtrace_parser/{rawtrace_cpu_detail_parser.h => cpu_detail_parser.h} (86%) create mode 100644 trace_streamer/src/table/monitor/memory_cpu_table.cpp create mode 100644 trace_streamer/src/table/monitor/memory_cpu_table.h create mode 100644 trace_streamer/src/table/monitor/memory_profile_table.cpp create mode 100644 trace_streamer/src/table/monitor/memory_profile_table.h create mode 100644 trace_streamer/src/table/monitor/memory_rs_image_table.cpp create mode 100644 trace_streamer/src/table/monitor/memory_rs_image_table.h diff --git a/trace_streamer/doc/des_tables.md b/trace_streamer/doc/des_tables.md index 79d9d4f1..888a1f16 100755 --- a/trace_streamer/doc/des_tables.md +++ b/trace_streamer/doc/des_tables.md @@ -1512,22 +1512,22 @@ js_heap_sample:记录timeline的时间轴信息 'R', Runnable状态 "S", interruptible sleep "D", uninterruptible sleep -"D-IO", uninterruptible io -"D-NIO", uninterruptible nio -"Runing", Runing状态 -"I", interrupted -"T", Traced +"D-IO", uninterruptible io +"D-NIO", uninterruptible nio +"Runing", Runing状态 +"T", Task stoped. +"t" Traced. "X", ExitedDead "Z", Zombie -"I", CloneThread -"I", TaskKilled +"P", Parked +"I", Task_Dead "DK", "DK-IO", "DK-NIO", -"TK", TracedKill -"R", WakeKill -"P", Parked -"R+", ForeGround +"TK", TracedKill +"R+", WakeKill +"R+", TaskNew +"R-B", Task runnable binder. ``` ### clock_snapshot表 diff --git a/trace_streamer/format-code.sh b/trace_streamer/format-code.sh index 45c761f7..82e28c63 100755 --- a/trace_streamer/format-code.sh +++ b/trace_streamer/format-code.sh @@ -27,10 +27,19 @@ cd ${PRJ_ROOT_DIR} FORMAT_DIR_LIST=( "${PRJ_ROOT_DIR}/build" "${PRJ_ROOT_DIR}/gn" - "${PRJ_ROOT_DIR}/prebuilts" "${PRJ_ROOT_DIR}/sdk" "${PRJ_ROOT_DIR}/src" "${PRJ_ROOT_DIR}/test" + "${PRJ_ROOT_DIR}/prebuilts/fuzz" + "${PRJ_ROOT_DIR}/prebuilts/linux" + "${PRJ_ROOT_DIR}/prebuilts/macx" + "${PRJ_ROOT_DIR}/prebuilts/patch_bounds_checking_function" + "${PRJ_ROOT_DIR}/prebuilts/patch_googletest" + "${PRJ_ROOT_DIR}/prebuilts/patch_hiperf" + "${PRJ_ROOT_DIR}/prebuilts/patch_libunwind" + "${PRJ_ROOT_DIR}/prebuilts/patch_perf_event" + "${PRJ_ROOT_DIR}/prebuilts/patch_protobuf" + "${PRJ_ROOT_DIR}/prebuilts/patch_sqlite" ) echo "formatting code ..." for d in ${FORMAT_DIR_LIST[@]}; do diff --git a/trace_streamer/src/base/ts_common.h b/trace_streamer/src/base/ts_common.h index 0242bfa5..faf7abd0 100644 --- a/trace_streamer/src/base/ts_common.h +++ b/trace_streamer/src/base/ts_common.h @@ -23,6 +23,7 @@ using ClockId = uint32_t; const std::string INVALID_STRING = "INVALID_STRING"; const uint64_t INVALID_ITID = std::numeric_limits::max(); +const uint64_t INVALID_IPID = std::numeric_limits::max(); const uint64_t INVALID_UINT64 = std::numeric_limits::max(); const uint64_t MAX_UINT32 = std::numeric_limits::max(); const uint64_t MAX_UINT64 = std::numeric_limits::max(); @@ -135,34 +136,41 @@ enum EndState { // (D) Indicates that the process is in deep sleep, waiting for resources, and does not respond to signals. // Typical scenario: process acquisition semaphore blocking. TASK_UNINTERRUPTIBLE = 2, + // (D-IO) TASK_UNINTERRUPTIBLE_IO = 21, + // (D-NIO) TASK_UNINTERRUPTIBLE_NIO = 22, // (Running) Indicates that the thread is running TASK_RUNNING = 3, - // (I) Thread in interrupt state - TASK_INTERRUPTED = 4, - // (T) Task being traced + // (T) Thread in interrupt state + TASK_STOPPED = 4, + // (t) Task being traced TASK_TRACED = 8, // (X) Exit status, the process is about to be destroyed. TASK_EXIT_DEAD = 16, // (Z) Zombie state TASK_ZOMBIE = 32, + // (P) TASK_PARKED = 64, - // (K) Process killed - TASK_KILLED = 128, + // (I) Process killed + TASK_DEAD = 128, // (DK) TASK_DK = 130, + // (DK-IO) TASK_DK_IO = 131, + // (DK-NIO) TASK_DK_NIO = 132, - // the process is being debug now + // (tK)the process is being debug now TASK_TRACED_KILL = 136, - // (W) The process is in a deep sleep state and will be killed directly after waking up + // (R+) The process is in a deep sleep state and will be killed directly after waking up TASK_WAKEKILL = 256, + // TASK_WAKING = 512 (R) waking dont use for Runable state + // TASK_NOLOAD = 1024 // (R+) Process groups in the foreground - TASK_FOREGROUND = 2048, + TASK_NEW = 2048, TASK_RUNNABLE_BINDER = 2049, TASK_MAX = 4096, - TASK_INVALID = 9999 + TASK_INVALID = 0x8000 }; enum TSLogLevel { TS_DEBUG = 68, // Debug diff --git a/trace_streamer/src/cfg/trace_streamer_config.cpp b/trace_streamer/src/cfg/trace_streamer_config.cpp index f4822b5d..316e82c9 100644 --- a/trace_streamer/src/cfg/trace_streamer_config.cpp +++ b/trace_streamer/src/cfg/trace_streamer_config.cpp @@ -43,7 +43,7 @@ TraceStreamerConfig::TraceStreamerConfig() {MEM_VM_SWAP, MEM_INFO_SWAP_DESC}, {MEM_VM_LOCKED, MEM_INFO_VIRT_DESC}, {MEM_VM_HWM, MEM_INFO_HWM_DESC}, {MEM_OOM_SCORE_ADJ, MEM_INFO_SCORE_ADJ_DESC}, {MEM_PURG_SUM, MEM_INFO_PURG_SUM_DESC}, {MEM_PURG_PIN, MEM_INFO_PURG_PIN_DESC}, - {MEM_GL_PSS, MEM_INFO_GL_PSS_DESC}, + {MEM_GL_PSS, MEM_INFO_GL_PSS_DESC}, {MEM_GRAPH_PSS, MEM_INFO_GRAPH_PSS_DESC}, }; InitSysMemMap(); @@ -180,6 +180,7 @@ void TraceStreamerConfig::InitEventNameMap() {TRACE_DMAMEM, TRACE_ACTION_DMAMEM}, {TRACE_GPU_PROCESS_MEM, TRACE_ACTION_GPU_PROCESS_MEM}, {TRACE_GPU_WINDOW_MEM, TRACE_ACTION_GPU_WINDOW_MEM}, + {TRACE_WINDOW_MANAGER_SERVICE, TRACE_ACTION_WINDOW_MANAGER_SERVICE}, {TRACE_VSYNC, TRACE_ACTION_VSYNC}, {TRACE_ON_DO_COMPOSITION, TRACE_ACTION_ON_DO_COMPOSITION}, {TRACE_FRAMEQUEUE, TRACE_ACTION_FRAMEQUEUE}, @@ -1226,6 +1227,16 @@ void TraceStreamerConfig::InitSecurityMap() {STAT_EVENT_DATA_INVALID, STAT_SEVERITY_LEVEL_ERROR}, }, }, + { + TRACE_WINDOW_MANAGER_SERVICE, + { + {STAT_EVENT_RECEIVED, STAT_SEVERITY_LEVEL_INFO}, + {STAT_EVENT_DATA_LOST, STAT_SEVERITY_LEVEL_ERROR}, + {STAT_EVENT_NOTMATCH, STAT_SEVERITY_LEVEL_INFO}, + {STAT_EVENT_NOTSUPPORTED, STAT_SEVERITY_LEVEL_WARN}, + {STAT_EVENT_DATA_INVALID, STAT_SEVERITY_LEVEL_ERROR}, + }, + }, { TRACE_VSYNC, { diff --git a/trace_streamer/src/cfg/trace_streamer_config.h b/trace_streamer/src/cfg/trace_streamer_config.h index 033a8506..7789bd8a 100644 --- a/trace_streamer/src/cfg/trace_streamer_config.h +++ b/trace_streamer/src/cfg/trace_streamer_config.h @@ -114,6 +114,7 @@ enum SupportedTraceEventType { TRACE_DMAMEM, TRACE_GPU_PROCESS_MEM, TRACE_GPU_WINDOW_MEM, + TRACE_WINDOW_MANAGER_SERVICE, TRACE_EVENT_OTHER, TRACE_EVENT_MAX }; @@ -130,6 +131,7 @@ enum MemInfoType { MEM_PURG_SUM, MEM_PURG_PIN, MEM_GL_PSS, + MEM_GRAPH_PSS, MEM_MAX }; enum StatType { @@ -288,6 +290,7 @@ private: const std::string TRACE_ACTION_DMAMEM = "trace_dma_mem"; const std::string TRACE_ACTION_GPU_PROCESS_MEM = "trace_gpu_process_mem"; const std::string TRACE_ACTION_GPU_WINDOW_MEM = "trace_gpu_window_mem"; + const std::string TRACE_ACTION_WINDOW_MANAGER_SERVICE = "trace_window_manager_service"; const std::string TRACE_ACTION_OTHER = "other"; const std::string MEM_INFO_VM_SIZE_DESC = "mem.vm.size"; @@ -303,6 +306,7 @@ private: const std::string MEM_INFO_PURG_SUM_DESC = "mem.purg_sum"; const std::string MEM_INFO_PURG_PIN_DESC = "mem.purg_pin"; const std::string MEM_INFO_GL_PSS_DESC = "mem.gl_pss"; + const std::string MEM_INFO_GRAPH_PSS_DESC = "mem.graph_pss"; const std::string SYS_MEMINFO_UNSPECIFIED_DESC = "sys.mem.unspecified"; const std::string SYS_MEMINFO_MEM_TOTAL_DESC = "sys.mem.total"; @@ -342,6 +346,7 @@ private: const std::string SYS_MEMINFO_ACTIVE_PURG_DESC = "sys.mem.active.purg"; const std::string SYS_MEMINFO_INACTIVE_PURG_DESC = "sys.mem.inactive.purg"; const std::string SYS_MEMINFO_PINED_PURG_DESC = "sys.mem.pined.purg"; + const std::string SYS_VMEMINFO_UNSPECIFIED_DESC = "sys.virtual.mem.unspecified"; const std::string SYS_VMEMINFO_NR_FREE_PAGES_DESC = "sys.virtual.mem.nr.free.pages"; const std::string SYS_VMEMINFO_NR_ALLOC_BATCH_DESC = "sys.virtual.mem.nr.alloc.batch"; diff --git a/trace_streamer/src/filter/animation_filter.cpp b/trace_streamer/src/filter/animation_filter.cpp index d70fd299..914d61d4 100644 --- a/trace_streamer/src/filter/animation_filter.cpp +++ b/trace_streamer/src/filter/animation_filter.cpp @@ -112,7 +112,8 @@ bool AnimationFilter::BeginDynamicFrameEvent(const TracePoint& point, size_t cal auto animationRow = iter->second; auto curRealFrameRate = SplitStringToVec(infos.front(), " ").back(); auto curFrameNum = "0:"; - traceDataCache_->GetAnimation()->UpdateFrameInfo(animationRow, traceDataCache_->GetDataIndex(curFrameNum + curRealFrameRate)); + traceDataCache_->GetAnimation()->UpdateFrameInfo(animationRow, + traceDataCache_->GetDataIndex(curFrameNum + curRealFrameRate)); return true; } else if (!StartWith(point.name_, frameBeginCmd_)) { return false; diff --git a/trace_streamer/src/filter/cpu_filter.cpp b/trace_streamer/src/filter/cpu_filter.cpp index 79fd98df..ea5288cc 100644 --- a/trace_streamer/src/filter/cpu_filter.cpp +++ b/trace_streamer/src/filter/cpu_filter.cpp @@ -98,10 +98,10 @@ void CpuFilter::InsertSwitchEvent(uint64_t ts, ts, INVALID_TIME, INVALID_CPU, prevPid, prevState); btInfo.threadStateRow = threadStateRow; if (prevState == TASK_UNINTERRUPTIBLE || prevState == TASK_DK) { - if (!pidToThreadSliceRow.count(prevPid)) { - pidToThreadSliceRow.emplace(std::make_pair(prevPid, threadStateRow)); + if (!pidToThreadSliceRow_.count(prevPid)) { + pidToThreadSliceRow_.emplace(std::make_pair(prevPid, threadStateRow)); } else { - pidToThreadSliceRow.at(prevPid) = threadStateRow; + pidToThreadSliceRow_.at(prevPid) = threadStateRow; } } (void)RemberInternalTidInStateTable(prevPid, threadStateRow, prevState); @@ -110,7 +110,7 @@ void CpuFilter::InsertSwitchEvent(uint64_t ts, if (traceDataCache_->BinderRunnableTraceEnabled() && iTidToTransaction_.find(prevPid) != iTidToTransaction_.end()) { uint64_t transactionId = iTidToTransaction_.at(prevPid); auto iter = transactionIdToInfo_.find(transactionId); - if (prevState != TASK_FOREGROUND || iter == transactionIdToInfo_.end() || iter->second.iTidFrom != prevPid || + if (prevState != TASK_NEW || iter == transactionIdToInfo_.end() || iter->second.iTidFrom != prevPid || btInfo.schedSliceRow == INVALID_UINT64 || btInfo.threadStateRow == INVALID_UINT64) { TransactionClear(prevState, transactionId); return; @@ -126,7 +126,7 @@ bool CpuFilter::InsertBlockedReasonEvent(uint64_t ts, DataIndex caller, uint32_t delay) { - if (pidToThreadSliceRow.count(iTid)) { + if (pidToThreadSliceRow_.count(iTid)) { // ArgSet ArgsSet args; args.AppendArg(ioWait_, BASE_DATA_TYPE_INT, iowait); @@ -135,7 +135,7 @@ bool CpuFilter::InsertBlockedReasonEvent(uint64_t ts, args.AppendArg(delay_, BASE_DATA_TYPE_INT, delay); } auto argSetId = streamFilters_->argsFilter_->NewArgs(args); - auto row = pidToThreadSliceRow.at(iTid); + auto row = pidToThreadSliceRow_.at(iTid); traceDataCache_->GetThreadStateData()->SetArgSetId(row, argSetId); if (iowait) { auto state = traceDataCache_->GetThreadStateData()->StatesData()[row]; @@ -152,7 +152,7 @@ bool CpuFilter::InsertBlockedReasonEvent(uint64_t ts, traceDataCache_->GetThreadStateData()->UpdateState(row, TASK_DK_NIO); } } - pidToThreadSliceRow.erase(iTid); + pidToThreadSliceRow_.erase(iTid); } return true; } @@ -211,8 +211,8 @@ void CpuFilter::Finish() const auto slice = traceDataCache_->GetConstSchedSliceData(); size = slice.Size(); for (auto i = 0; i < size; i++) { - traceDataCache_->GetSchedSliceData()->ReviseInternalPid(i, - traceDataCache_->GetThreadData(slice.InternalTidsData()[i])->internalPid_); + traceDataCache_->GetSchedSliceData()->ReviseInternalPid( + i, traceDataCache_->GetThreadData(slice.InternalTidsData()[i])->internalPid_); } } void CpuFilter::Clear() @@ -241,24 +241,24 @@ uint64_t CpuFilter::RemberInternalTidInStateTable(uint32_t uid, uint64_t row, ui } uint64_t CpuFilter::RowOfInternalTidInStateTable(uint32_t uid) const { - auto row = internalTidToRowThreadState_.find(uid); - if (row != internalTidToRowThreadState_.end()) { - return (*row).second.row_; + auto itor = internalTidToRowThreadState_.find(uid); + if (itor != internalTidToRowThreadState_.end()) { + return (*itor).second.row_; } return INVALID_UINT64; } void CpuFilter::ClearInternalTidInStateTable(uint32_t uid) { - auto row = internalTidToRowThreadState_.find(uid); - if (row != internalTidToRowThreadState_.end()) { - internalTidToRowThreadState_.erase(row); + auto itor = internalTidToRowThreadState_.find(uid); + if (itor != internalTidToRowThreadState_.end()) { + internalTidToRowThreadState_.erase(itor); } } uint64_t CpuFilter::StateOfInternalTidInStateTable(uint32_t uid) const { - auto row = internalTidToRowThreadState_.find(uid); - if (row != internalTidToRowThreadState_.end()) { - return (*row).second.state_; + auto itor = internalTidToRowThreadState_.find(uid); + if (itor != internalTidToRowThreadState_.end()) { + return (*itor).second.state_; } return TASK_INVALID; } diff --git a/trace_streamer/src/filter/cpu_filter.h b/trace_streamer/src/filter/cpu_filter.h index 701bfe1b..a2d77fc5 100644 --- a/trace_streamer/src/filter/cpu_filter.h +++ b/trace_streamer/src/filter/cpu_filter.h @@ -76,7 +76,7 @@ private: std::map cpuToRowSched_ = {}; std::map lastWakeUpMsg_ = {}; - std::map pidToThreadSliceRow = {}; + std::map pidToThreadSliceRow_ = {}; struct TPthread { uint64_t row_; uint64_t state_; diff --git a/trace_streamer/src/parser/bytrace_parser/bytrace_event_parser.cpp b/trace_streamer/src/parser/bytrace_parser/bytrace_event_parser.cpp index df590e91..0d8681f3 100644 --- a/trace_streamer/src/parser/bytrace_parser/bytrace_event_parser.cpp +++ b/trace_streamer/src/parser/bytrace_parser/bytrace_event_parser.cpp @@ -121,7 +121,7 @@ BytraceEventParser::BytraceEventParser(TraceDataCache* dataCache, const TraceStr bool BytraceEventParser::SchedSwitchEvent(const ArgsMap& args, const BytraceLine& line) const { if (args.empty() || args.size() < MIN_SCHED_SWITCH_ARGS_COUNT) { - TS_LOGD("Failed to parse sched_switch event, no args or args size < 6"); + TS_LOGW("Failed to parse sched_switch event, no args or args size < 6, argsStr=%s.", line.argsStr.data()); streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_SCHED_SWITCH, STAT_EVENT_DATA_INVALID); return false; } @@ -145,7 +145,7 @@ bool BytraceEventParser::SchedSwitchEvent(const ArgsMap& args, const BytraceLine auto prevStateStr = args.at("prev_state"); auto threadState = ThreadStateFlag(prevStateStr.c_str()); uint64_t prevState = threadState.State(); - if (!threadState.IsValid()) { + if (threadState.IsInvalid()) { streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_SCHED_SWITCH, STAT_EVENT_DATA_INVALID); } uint32_t nextInternalTid = 0; diff --git a/trace_streamer/src/parser/ebpf_parser/ebpf_splitter.cpp b/trace_streamer/src/parser/ebpf_parser/ebpf_splitter.cpp index 55b22135..373a175d 100644 --- a/trace_streamer/src/parser/ebpf_parser/ebpf_splitter.cpp +++ b/trace_streamer/src/parser/ebpf_parser/ebpf_splitter.cpp @@ -86,7 +86,6 @@ void EbpfSplitter::SplitEbpfBodyData() ebpfBuffer_.size() > EBPF_TITLE_SIZE) { EbpfTypeAndLength dataTitle; std::copy_n(ebpfBuffer_.begin(), EBPF_TITLE_SIZE, reinterpret_cast(&dataTitle)); - // TS_LOGE("dataTitle.length = %lu, dataTitle.type = %lu", dataTitle.length, dataTitle.type); if (dataTitle.length + EBPF_TITLE_SIZE > ebpfBuffer_.size()) { return; } diff --git a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_event_parser/htrace_event_parser.cpp b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_event_parser/htrace_event_parser.cpp index a954f0d3..ae2a4e98 100644 --- a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_event_parser/htrace_event_parser.cpp +++ b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_event_parser/htrace_event_parser.cpp @@ -404,9 +404,6 @@ bool HtraceEventParser::SchedSwitchEvent(const ProtoReader::DataArea& event) std::string prevCommStr = msg.prev_comm().ToStdString(); std::string nextCommStr = msg.next_comm().ToStdString(); auto prevState = msg.prev_state(); - if (prevState == TASK_WAKEKILL) { - prevState = TASK_RUNNABLE; - } auto nextInternalTid = streamFilters_->processFilter_->UpdateOrCreateThreadWithName(eventTimeStamp_, nextPidValue, nextCommStr); @@ -529,7 +526,7 @@ bool HtraceEventParser::SchedWakingEvent(const ProtoReader::DataArea& event) con auto instants = traceDataCache_->GetInstantsData(); auto internalTid = streamFilters_->processFilter_->UpdateOrCreateThread(eventTimeStamp_, wakePidValue); auto wakeupFromPid = streamFilters_->processFilter_->UpdateOrCreateThread(eventTimeStamp_, eventTid_); - streamFilters_->cpuFilter_->InsertWakeupEvent(eventTimeStamp_, internalTid); + streamFilters_->cpuFilter_->InsertWakeupEvent(eventTimeStamp_, internalTid, true); instants->AppendInstantEventData(eventTimeStamp_, schedWakingName_, internalTid, wakeupFromPid); uint32_t targetCpu = msg.target_cpu(); traceDataCache_->GetRawData()->AppendRawData(0, eventTimeStamp_, RAW_SCHED_WAKING, targetCpu, wakeupFromPid); diff --git a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.cpp b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.cpp index ad0455ce..64187585 100644 --- a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.cpp +++ b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.cpp @@ -378,7 +378,6 @@ void HtraceJSMemoryParser::SerializeSnapshotData(ProfilerPluginData& profilerPlu profilerPluginDataResult.set_data(endString); std::string arkTsEndString = ""; profilerPluginDataResult.SerializeToString(&arkTsEndString); - dataSize_ = profilerArktsData.size() + arkTsEndString.size(); std::string bufflen(sizeof(uint32_t), '\0'); uint32_t profilerArktsDataSize = profilerArktsData.size(); memcpy_s(&bufflen[0], sizeof(uint32_t), &profilerArktsDataSize, sizeof(uint32_t)); @@ -415,7 +414,6 @@ void HtraceJSMemoryParser::SerializeTimelineData(uint64_t startTime, profilerPluginDataResult.set_data(endString); std::string timelineEndString = ""; profilerPluginDataResult.SerializeToString(&timelineEndString); - dataSize_ = timelineStartString.size() + profilerArktsData.size() + timelineEndString.size(); std::string startLen(sizeof(uint32_t), '\0'); uint32_t size = timelineStartString.size(); memcpy_s(&startLen[0], sizeof(uint32_t), &size, sizeof(uint32_t)); @@ -449,7 +447,6 @@ void HtraceJSMemoryParser::SerializeCpuProfilerData(uint64_t startTime, profilerPluginDataResult.set_tv_nsec(endTs.tv_nsec); std::string profilerArktsData = ""; profilerPluginDataResult.SerializeToString(&profilerArktsData); - dataSize_ += arkTsStartString.size() + profilerArktsData.size(); std::string startLen(sizeof(uint32_t), '\0'); uint32_t size = arkTsStartString.size(); memcpy_s(&startLen[0], sizeof(uint32_t), &size, sizeof(uint32_t)); diff --git a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.h b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.h index 8076a545..4b6deab4 100644 --- a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.h +++ b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_js_memory_parser.h @@ -54,11 +54,10 @@ public: } auto GetArkTsSize() { - return dataSize_; + return profilerArktsData_.size(); } void ClearArkTsSplitFileData() { - dataSize_ = 0; jsMemorySplitFileData_ = ""; cpuProfilerSplitFileData_ = ""; arkTsSplitFileDataResult_ = ""; @@ -122,7 +121,6 @@ private: json updatedJson_; uint32_t nodeFileId_ = INVALID_UINT32; uint32_t nodeCount_ = 0; - uint32_t dataSize_ = 0; bool hasCpuProfiler_ = false; SnapShotData snapShotData_; bool curTypeIsCpuProfile_ = false; diff --git a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.cpp b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.cpp index fc11b4cf..0a91b06e 100644 --- a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.cpp +++ b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.cpp @@ -39,36 +39,37 @@ std::vector g_unknownAnonMemInfo = { "[anon:arc4random data]", }; std::map g_checkMemStart = { - {"[stack", HtraceMemParser::SMAPS_MEM_TYPE_STACK}, - {"[anon:stack_and_tls:", HtraceMemParser::SMAPS_MEM_TYPE_STACK}, - {"[anon:stack:", HtraceMemParser::SMAPS_MEM_TYPE_STACK}, - {"[anon:signal_stack:", HtraceMemParser::SMAPS_MEM_TYPE_STACK}, - {"[anon:maple_alloc_ros]", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-allocspace", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-main space", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-large object", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-free list large", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-non moving", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-zygote space", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:dalvik-", HtraceMemParser::SMAPS_MEM_TYPE_JAVA_VM}, - {"/dev/ashmem/jit-zygote-cache", HtraceMemParser::SMAPS_MEM_TYPE_JAVA_VM}, - {"/memfd:jit-cache", HtraceMemParser::SMAPS_MEM_TYPE_JAVA_VM}, - {"/memfd:jit-zygote-cache", HtraceMemParser::SMAPS_MEM_TYPE_JAVA_VM}, - {"[heap]", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, - {"[anon:libc_malloc", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, - {"[anon:scudo", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, - {"[anon:GWP-Asan", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"[stack", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_STACK}, + {"[anon:stack_and_tls:", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_STACK}, + {"[anon:stack:", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_STACK}, + {"[anon:signal_stack:", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_STACK}, + {"[anon:maple_alloc_ros]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-allocspace", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-main space", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-large object", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-free list large", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-non moving", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-zygote space", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:dalvik-", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JAVA_VM}, + {"/dev/ashmem/jit-zygote-cache", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JAVA_VM}, + {"/memfd:jit-cache", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JAVA_VM}, + {"/memfd:jit-zygote-cache", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JAVA_VM}, + {"[heap]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"[anon:libc_malloc", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"[anon:scudo", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"[anon:GWP-Asan", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, }; std::map g_checkMemEnd = { - {".art", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {".art]", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, + {".art", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {".art]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {".tty", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_FONT}, }; std::map g_checkMemContain = { - {"[anon:ArkJS Heap]", HtraceMemParser::SMAPS_MEM_TYPE_JS_HEAP}, - {"[anon:native_heap:jemalloc]", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, - {"[heap]", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, - {"[anon:native_heap:musl]", HtraceMemParser::SMAPS_MEM_TYPE_NATIVE_HEAP}, - {"/dev/ashmem/", HtraceMemParser::SMAPS_MEM_TYPE_ASHMEM}, + {"[anon:ArkJS Heap]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_JS_HEAP}, + {"[anon:native_heap:jemalloc]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"[heap]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"[anon:native_heap:musl]", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP}, + {"/dev/ashmem/", (uint32_t)HtraceMemParser::SmapsMemType::SMAPS_MEM_TYPE_ASHMEM}, }; HtraceMemParser::HtraceMemParser(TraceDataCache* dataCache, const TraceStreamerFilters* ctx) : EventParserBase(dataCache, ctx) @@ -121,6 +122,18 @@ void HtraceMemParser::Parse(HtraceDataSegment& seg, uint64_t timeStamp, BuiltinC if (memData.has_gpudumpinfo()) { ParseGpuWindowMemInfo(&memData, newTimeStamp); } + if (memData.has_windowinfo()) { + ParseWindowManagerServiceInfo(&memData, newTimeStamp); + } + if (memData.has_cpudumpinfo()) { + ParseCpuDumpInfo(&memData, newTimeStamp); + } + if (memData.has_profilememinfo()) { + ParseProfileMemInfo(&memData, newTimeStamp); + } + if (memData.has_rsdumpinfo()) { + ParseRSImageDumpInfo(&memData, newTimeStamp); + } } void HtraceMemParser::ParseProcessInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const { @@ -162,6 +175,10 @@ void HtraceMemParser::ParseProcessInfo(const ProtoReader::MemoryData_Reader* tra hasValue += streamFilters_->processMeasureFilter_->AppendNewMeasureData( ipid, memNameDictMap_.at(MEM_GL_PSS), timeStamp, processMemoryInfo.gl_pss_kb()); } + if (processMemoryInfo.has_graph_pss_kb()) { + hasValue += streamFilters_->processMeasureFilter_->AppendNewMeasureData( + ipid, memNameDictMap_.at(MEM_GRAPH_PSS), timeStamp, processMemoryInfo.graph_pss_kb()); + } if (hasValue) { streamFilters_->processFilter_->AddProcessMemory(ipid); } @@ -179,39 +196,39 @@ uint32_t HtraceMemParser::ParseSmapsBlockDetail(ProtoReader::SmapsInfo_Reader& s if (EndWith(path, ".so")) { if (hasX) { if (StartWith(path, "/data/app/") || hasAppNmae) { - return SMAPS_MEM_TYPE_CODE_APP; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_CODE_APP; } else { - return SMAPS_MEM_TYPE_CODE_SYS; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_CODE_SYS; } } else { if (StartWith(path, "[anon:.bss]/data/app/") || StartWith(path, "/data/app/") || hasAppNmae) { - return SMAPS_MEM_TYPE_DATA_APP; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_APP; } else { - return SMAPS_MEM_TYPE_DATA_SYS; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_SYS; } } } if ((EndWith(path, ".jar")) || (EndWith(path, ".apk")) || (EndWith(path, ".vdex")) || (EndWith(path, ".odex")) || (EndWith(path, ".oat")) || (path.find("dex") != std::string::npos)) { - return hasX ? (hasAppNmae ? SMAPS_MEM_TYPE_CODE_APP : SMAPS_MEM_TYPE_CODE_SYS) - : (hasAppNmae ? SMAPS_MEM_TYPE_DATA_APP : SMAPS_MEM_TYPE_DATA_SYS); + return hasX ? (hasAppNmae ? (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_CODE_APP : (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_CODE_SYS) + : (hasAppNmae ? (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_APP : (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_SYS); } if (hasX && path.find("/bin/") != std::string::npos) { - return SMAPS_MEM_TYPE_CODE_SYS; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_CODE_SYS; } if ((!hasX) && (path.find("/bin/") != std::string::npos || path.find("[anon:.bss]") != std::string::npos)) { - return SMAPS_MEM_TYPE_DATA_SYS; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_SYS; } if (path.find("[bss]") != std::string::npos) { - return hasAppNmae ? SMAPS_MEM_TYPE_DATA_APP : SMAPS_MEM_TYPE_DATA_SYS; + return hasAppNmae ? (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_APP : (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_DATA_SYS; } if ((path.find("[anon]") != std::string::npos) || (path.find("[anon:") != std::string::npos)) { if (std::find(g_unknownAnonMemInfo.begin(), g_unknownAnonMemInfo.end(), path) != g_unknownAnonMemInfo.end()) { - return SMAPS_MEM_TYPE_UNKNOWN_ANON; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_UNKNOWN_ANON; } - return SMAPS_MEM_TYPE_NATIVE_HEAP; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_NATIVE_HEAP; } - return SMAPS_MEM_TYPE_INVALID; + return (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_INVALID; } uint32_t HtraceMemParser::ParseSmapsBlockType(ProtoReader::SmapsInfo_Reader& smapsInfo) const @@ -239,10 +256,10 @@ uint32_t HtraceMemParser::ParseSmapsBlockType(ProtoReader::SmapsInfo_Reader& sma } bool hasAppNmae = path.find("com.huawei.wx") != std::string::npos; uint32_t detailRet = ParseSmapsBlockDetail(smapsInfo, path, hasAppNmae); - if (detailRet != SMAPS_MEM_TYPE_INVALID) { + if (detailRet != (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_INVALID) { return detailRet; } - return hasAppNmae ? SMAPS_MEM_TYPE_OTHER_APP : SMAPS_MEM_TYPE_OTHER_SYS; + return hasAppNmae ? (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_OTHER_APP : (uint32_t)SmapsMemType::SMAPS_MEM_TYPE_OTHER_SYS; } void HtraceMemParser::ParseSmapsInfoEasy(const ProtoReader::ProcessMemoryInfo_Reader* memInfo, @@ -1104,7 +1121,7 @@ void HtraceMemParser::AshMemDeduplicate() const if (pidMap.find(ipid) == pidMap.end()) { pidMap.emplace(ipid, i); } else { - ashMemData->SetFlag(i, MEM_DEDUPLICATE_FLAG_DUP_SAME_PROCESS); + ashMemData->SetFlag(i, (uint32_t)MemDeduplicateFlag::MEM_DEDUPLICATE_FLAG_DUP_SAME_PROCESS); } } @@ -1115,7 +1132,7 @@ void HtraceMemParser::AshMemDeduplicate() const continue; } for (++iter; iter != pidMap.end(); ++iter) { - ashMemData->SetFlag(iter->second, MEM_DEDUPLICATE_FLAG_DUP_DIFF_PROCESS); + ashMemData->SetFlag(iter->second, (uint32_t)MemDeduplicateFlag::MEM_DEDUPLICATE_FLAG_DUP_DIFF_PROCESS); } } } @@ -1124,11 +1141,11 @@ HtraceMemParser::MemProcessType HtraceMemParser::GetMemProcessType(uint64_t ipid { const auto& iterProcess = traceDataCache_->GetConstProcessData(ipid); if (iterProcess.cmdLine_ == "composer_host") { - return PID_TYPE_COMPOSER; + return MemProcessType::PID_TYPE_COMPOSER; } else if (iterProcess.cmdLine_ == "render_service") { - return PID_TYPE_RENDER_SERVICES; + return MemProcessType::PID_TYPE_RENDER_SERVICES; } else { - return PID_TYPE_APP; + return MemProcessType::PID_TYPE_APP; } } @@ -1185,7 +1202,7 @@ void HtraceMemParser::DmaMemDeduplicate() const auto ipid = dmaMemData->Ipids()[i]; auto& pidMap = inoMap[ino]; if (pidMap.find(ipid) != pidMap.end()) { - dmaMemData->SetFlag(i, MEM_DEDUPLICATE_FLAG_DUP_SAME_PROCESS); + dmaMemData->SetFlag(i, (uint32_t)MemDeduplicateFlag::MEM_DEDUPLICATE_FLAG_DUP_SAME_PROCESS); } else { auto processType = GetMemProcessType(ipid); pidMap.emplace(ipid, std::make_pair(i, processType)); @@ -1200,7 +1217,7 @@ void HtraceMemParser::DmaMemDeduplicate() const const auto& pidMap = item.second; for (const auto& pidItem : pidMap) { if (pidItem.second.second < maxPidType) { - dmaMemData->SetFlag(pidItem.second.first, MEM_DEDUPLICATE_FLAG_DUP_DIFF_PROCESS); + dmaMemData->SetFlag(pidItem.second.first, (uint32_t)MemDeduplicateFlag::MEM_DEDUPLICATE_FLAG_DUP_DIFF_PROCESS); } } } @@ -1267,7 +1284,56 @@ void HtraceMemParser::ParseGpuWindowMemInfo(const ProtoReader::MemoryData_Reader FillGpuWindowMemInfo(GpuDumpInfo, timeStamp); } } +void HtraceMemParser::ParseWindowManagerServiceInfo(const ProtoReader::MemoryData_Reader* tracePacket, + uint64_t timeStamp) +{ + if (tracePacket->has_windowinfo()) { + streamFilters_->statFilter_->IncreaseStat(TRACE_WINDOW_MANAGER_SERVICE, STAT_EVENT_RECEIVED); + } + for (auto i = tracePacket->windowinfo(); i; ++i) { + ProtoReader::WindowManagerServiceInfo_Reader windowInfo(i->ToBytes().data_, i->ToBytes().size_); + if (!windowInfo.has_pid() || !windowInfo.has_window_name()) { + continue; + } + auto windowNameId = traceDataCache_->GetDataIndex(windowInfo.window_name().ToStdString()); + auto ipid = + streamFilters_->processFilter_->GetOrCreateInternalPid(timeStamp, static_cast(windowInfo.pid())); + windowIdToipidMap_.insert({windowNameId, ipid}); + } +} +void HtraceMemParser::ParseCpuDumpInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const +{ + for (auto i = tracePacket->cpudumpinfo(); i; ++i) { + ProtoReader::CpuDumpInfo_Reader cpuDumpInfo(i->ToBytes().data_, i->ToBytes().size_); + auto totalSize = cpuDumpInfo.total_cpu_memory_size(); + traceDataCache_->GetCpuDumpInfo()->AppendNewData(timeStamp, totalSize); + } +} +void HtraceMemParser::ParseProfileMemInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const +{ + for (auto i = tracePacket->profilememinfo(); i; ++i) { + ProtoReader::ProfileMemInfo_Reader profileMemInfo(i->ToBytes().data_, i->ToBytes().size_); + auto channelIndex = traceDataCache_->GetDataIndex(profileMemInfo.channel().ToStdString()); + auto totalSize = profileMemInfo.total_memory_size(); + traceDataCache_->GetProfileMemInfo()->AppendNewData(timeStamp, channelIndex, totalSize); + } +} +void HtraceMemParser::ParseRSImageDumpInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const +{ + for (auto i = tracePacket->rsdumpinfo(); i; ++i) { + ProtoReader::RSImageDumpInfo_Reader rsImageDumpInfo(i->ToBytes().data_, i->ToBytes().size_); + auto size = rsImageDumpInfo.size(); + auto typeIndex = traceDataCache_->GetDataIndex(rsImageDumpInfo.type().ToStdString()); + InternalPid ipid = INVALID_IPID; + if (rsImageDumpInfo.has_pid()) { + ipid = streamFilters_->processFilter_->GetOrCreateInternalPid(timeStamp, + static_cast(rsImageDumpInfo.pid())); + } + auto surfaceNameIndex = traceDataCache_->GetDataIndex(rsImageDumpInfo.surface_name().ToStdString()); + traceDataCache_->GetRSImageDumpInfo()->AppendNewData(timeStamp, size, typeIndex, ipid, surfaceNameIndex); + } +} void HtraceMemParser::ParseMemoryConfig(HtraceDataSegment& seg) { ProtoReader::MemoryConfig_Reader memConfigData(seg.protoData.data_, seg.protoData.size_); @@ -1289,6 +1355,7 @@ void HtraceMemParser::ParseMemoryConfig(HtraceDataSegment& seg) void HtraceMemParser::Finish() { + traceDataCache_->GetGpuWindowMemData()->RevicesIpid(windowIdToipidMap_); if (traceDataCache_->traceStartTime_ == INVALID_UINT64 || traceDataCache_->traceEndTime_ == 0) { traceDataCache_->MixTraceTime(GetPluginStartTime(), GetPluginEndTime()); } else { diff --git a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.h b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.h index 98061b33..473aa67a 100644 --- a/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.h +++ b/trace_streamer/src/parser/htrace_pbreader_parser/htrace_mem_parser.h @@ -36,7 +36,7 @@ public: void Parse(HtraceDataSegment& seg, uint64_t, BuiltinClocks clock); void ParseMemoryConfig(HtraceDataSegment& seg); void Finish(); - enum SmapsMemType { + enum class SmapsMemType { SMAPS_MEM_TYPE_CODE_SYS = 0, // 系统代码段 SMAPS_MEM_TYPE_CODE_APP = 1, // 应用代码段 SMAPS_MEM_TYPE_DATA_SYS = 2, // 系统数据段 @@ -49,14 +49,15 @@ public: SMAPS_MEM_TYPE_ASHMEM = 9, // Ashmem SMAPS_MEM_TYPE_OTHER_SYS = 10, // 系统其他杂类资源 SMAPS_MEM_TYPE_OTHER_APP = 11, // 应用其他杂类资源 + SMAPS_MEM_TYPE_FONT = 12, // Font SMAPS_MEM_TYPE_INVALID = 127, }; - enum MemProcessType { + enum class MemProcessType { PID_TYPE_COMPOSER = 0, PID_TYPE_RENDER_SERVICES, PID_TYPE_APP, }; - enum MemDeduplicateFlag { + enum class MemDeduplicateFlag { MEM_DEDUPLICATE_FLAG_NOMAL = 0, MEM_DEDUPLICATE_FLAG_DUP_SAME_PROCESS, MEM_DEDUPLICATE_FLAG_DUP_DIFF_PROCESS, @@ -83,7 +84,10 @@ private: void DmaMemDeduplicate() const; MemProcessType GetMemProcessType(uint64_t ipid) const; void FillGpuWindowMemInfo(const ProtoReader::GpuDumpInfo_Reader& gpuDumpInfo, uint64_t timeStamp) const; - + void ParseWindowManagerServiceInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp); + void ParseCpuDumpInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const; + void ParseProfileMemInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const; + void ParseRSImageDumpInfo(const ProtoReader::MemoryData_Reader* tracePacket, uint64_t timeStamp) const; std::map memNameDictMap_ = {}; std::map sysMemNameDictMap_ = {}; std::map sysVMemNameDictMap_ = {}; @@ -93,6 +97,7 @@ private: const DataIndex zramIndex_ = traceDataCache_->GetDataIndex("sys.mem.zram"); const DataIndex gpuLimitSizeIndex_ = traceDataCache_->GetDataIndex("sys.mem.gpu.limit"); const DataIndex gpuUsedSizeIndex_ = traceDataCache_->GetDataIndex("sys.mem.gpu.used"); + std::map windowIdToipidMap_ = {}; TraceStreamerConfig config_{}; }; diff --git a/trace_streamer/src/parser/rawtrace_parser/BUILD.gn b/trace_streamer/src/parser/rawtrace_parser/BUILD.gn index ee9104b9..b1f4dd8a 100755 --- a/trace_streamer/src/parser/rawtrace_parser/BUILD.gn +++ b/trace_streamer/src/parser/rawtrace_parser/BUILD.gn @@ -44,7 +44,7 @@ ohos_source_set("rawtrace_parser_src") { "ftrace_processor.cpp", "kernel_symbols_processor.cpp", "printk_formats_processor.cpp", - "rawtrace_cpu_detail_parser.cpp", + "cpu_detail_parser.cpp", "rawtrace_parser.cpp", ] diff --git a/trace_streamer/src/parser/rawtrace_parser/rawtrace_cpu_detail_parser.cpp b/trace_streamer/src/parser/rawtrace_parser/cpu_detail_parser.cpp similarity index 84% rename from trace_streamer/src/parser/rawtrace_parser/rawtrace_cpu_detail_parser.cpp rename to trace_streamer/src/parser/rawtrace_parser/cpu_detail_parser.cpp index f73cdbce..25bbb948 100644 --- a/trace_streamer/src/parser/rawtrace_parser/rawtrace_cpu_detail_parser.cpp +++ b/trace_streamer/src/parser/rawtrace_parser/cpu_detail_parser.cpp @@ -13,7 +13,7 @@ * limitations under the License. */ -#include "rawtrace_cpu_detail_parser.h" +#include "cpu_detail_parser.h" #include #include #include "app_start_filter.h" @@ -31,7 +31,7 @@ #include "string_to_numerical.h" namespace { -constexpr uint64_t FILTER_MAX_SIZE = 2000000; +constexpr uint64_t FILTER_MAX_SIZE = 3000000; } namespace SysTuning { namespace TraceStreamer { @@ -72,7 +72,9 @@ CpuDetailParser::CpuDetailParser(TraceDataCache* dataCache, const TraceStreamerF {config_.eventNameMap_.at(TRACE_EVENT_TASK_NEWTASK), std::bind(&CpuDetailParser::TaskNewtaskEvent, this, std::placeholders::_1)}, {config_.eventNameMap_.at(TRACE_EVENT_PRINT), - std::bind(&CpuDetailParser::ParsePrintEvent, this, std::placeholders::_1)}, + std::bind(&CpuDetailParser::ParseTracingMarkWriteOrPrintEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_TRACING_MARK_WRITE), + std::bind(&CpuDetailParser::ParseTracingMarkWriteOrPrintEvent, this, std::placeholders::_1)}, {config_.eventNameMap_.at(TRACE_EVENT_CPU_IDLE), std::bind(&CpuDetailParser::CpuIdleEvent, this, std::placeholders::_1)}, {config_.eventNameMap_.at(TRACE_EVENT_CPU_FREQUENCY), @@ -99,6 +101,20 @@ CpuDetailParser::CpuDetailParser(TraceDataCache* dataCache, const TraceStreamerF std::bind(&CpuDetailParser::SoftIrqRaiseEvent, this, std::placeholders::_1)}, {config_.eventNameMap_.at(TRACE_EVENT_SOFTIRQ_EXIT), std::bind(&CpuDetailParser::SoftIrqExitEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_CLOCK_SET_RATE), + std::bind(&CpuDetailParser::SetRateEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_CLOCK_ENABLE), + std::bind(&CpuDetailParser::ClockEnableEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_CLOCK_DISABLE), + std::bind(&CpuDetailParser::ClockDisableEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_SET_VOLTAGE), + std::bind(&CpuDetailParser::RegulatorSetVoltageEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_SET_VOLTAGE_COMPLETE), + std::bind(&CpuDetailParser::RegulatorSetVoltageCompleteEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_DISABLE), + std::bind(&CpuDetailParser::RegulatorDisableEvent, this, std::placeholders::_1)}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_DISABLE_COMPLETE), + std::bind(&CpuDetailParser::RegulatorDisableCompleteEvent, this, std::placeholders::_1)}, }; } void CpuDetailParser::EventAppend(std::unique_ptr event) @@ -128,6 +144,9 @@ bool CpuDetailParser::FilterAllEvents(FtraceCpuDetailMsg& cpuDetail, bool isFini #else std::stable_sort(rawTraceEventList_.begin(), rawTraceEventList_.end(), cmp); #endif + if (rawTraceEventList_.empty()) { + return false; + } traceDataCache_->UpdateTraceTime(rawTraceEventList_.front()->msgPtr->timestamp()); traceDataCache_->UpdateTraceTime(rawTraceEventList_.back()->msgPtr->timestamp()); for (size_t i = 0; i < rawTraceEventList_.size(); i++) { @@ -137,6 +156,7 @@ bool CpuDetailParser::FilterAllEvents(FtraceCpuDetailMsg& cpuDetail, bool isFini } DealEvent(*rawTraceEventList_[i].get()); } + TS_LOGI("event_size=%d, rawTraceEventList_.size=%zu", cpuDetail.event().size(), rawTraceEventList_.size()); rawTraceEventList_.clear(); cpuDetail.Clear(); TS_CHECK_TRUE_RET(isFinished, true); @@ -179,14 +199,12 @@ bool CpuDetailParser::SchedSwitchEvent(const RawTraceEventInfo& event) auto schedSwitchMsg = event.msgPtr->sched_switch_format(); streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_SCHED_SWITCH, STAT_EVENT_RECEIVED); + auto schedSwitchPrevState = schedSwitchMsg.prev_state(); auto nextInternalTid = streamFilters_->processFilter_->UpdateOrCreateThreadWithName( event.msgPtr->timestamp(), schedSwitchMsg.next_pid(), schedSwitchMsg.next_comm()); auto uprevtid = streamFilters_->processFilter_->UpdateOrCreateThreadWithName( event.msgPtr->timestamp(), schedSwitchMsg.prev_pid(), schedSwitchMsg.prev_comm()); - auto schedSwitchPrevState = schedSwitchMsg.prev_state(); - if (schedSwitchPrevState == TASK_WAKEKILL) { - schedSwitchPrevState = TASK_RUNNABLE; - } + streamFilters_->cpuFilter_->InsertSwitchEvent( event.msgPtr->timestamp(), event.cpuId, uprevtid, static_cast(schedSwitchMsg.prev_prio()), schedSwitchPrevState, nextInternalTid, static_cast(schedSwitchMsg.next_prio()), INVALID_DATAINDEX); @@ -230,7 +248,7 @@ bool CpuDetailParser::SchedWakingEvent(const RawTraceEventInfo& event) const auto internalTid = streamFilters_->processFilter_->UpdateOrCreateThread(event.msgPtr->timestamp(), wakeingMsg.pid()); auto wakeupFromPid = streamFilters_->processFilter_->UpdateOrCreateThread(event.msgPtr->timestamp(), eventTid_); - streamFilters_->cpuFilter_->InsertWakeupEvent(event.msgPtr->timestamp(), internalTid); + streamFilters_->cpuFilter_->InsertWakeupEvent(event.msgPtr->timestamp(), internalTid, true); instants->AppendInstantEventData(event.msgPtr->timestamp(), schedWakingIndex_, internalTid, wakeupFromPid); traceDataCache_->GetRawData()->AppendRawData(0, event.msgPtr->timestamp(), RAW_SCHED_WAKING, wakeingMsg.target_cpu(), wakeupFromPid); @@ -350,10 +368,9 @@ bool CpuDetailParser::TaskNewtaskEvent(const RawTraceEventInfo& event) const streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_TASK_NEWTASK, STAT_EVENT_NOTSUPPORTED); return true; } -bool CpuDetailParser::ParsePrintEvent(const RawTraceEventInfo& event) +bool CpuDetailParser::ParseTracingMarkWriteOrPrintEvent(const RawTraceEventInfo& event) { auto printMsg = event.msgPtr->print_format(); - streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_PRINT, STAT_EVENT_RECEIVED); BytraceLine line; line.tgid = eventPid_; line.pid = eventTid_; @@ -448,17 +465,18 @@ bool CpuDetailParser::WorkqueueExecuteStartEvent(const RawTraceEventInfo& event) traceDataCache_->GetInternalSlicesData()->AppendDistributeInfo(); if (result == INVALID_UINT32) { - streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_TRACING_MARK_WRITE, STAT_EVENT_DATA_LOST); + streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_WORKQUEUE_EXECUTE_START, STAT_EVENT_DATA_LOST); } return true; } bool CpuDetailParser::WorkqueueExecuteEndEvent(const RawTraceEventInfo& event) const { auto executeEndMsg = event.msgPtr->workqueue_execute_end_format(); - streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_WORKQUEUE_EXECUTE_END, STAT_EVENT_RECEIVED); - if (streamFilters_->sliceFilter_->EndSlice(event.msgPtr->timestamp(), eventPid_, eventPid_, workQueueIndex_)) { + if (!streamFilters_->sliceFilter_->EndSlice(event.msgPtr->timestamp(), eventPid_, eventPid_, workQueueIndex_)) { streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_WORKQUEUE_EXECUTE_END, STAT_EVENT_NOTMATCH); + return false; } + streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_WORKQUEUE_EXECUTE_END, STAT_EVENT_RECEIVED); return true; } bool CpuDetailParser::IrqHandlerEntryEvent(const RawTraceEventInfo& event) const @@ -514,5 +532,61 @@ bool CpuDetailParser::SoftIrqExitEvent(const RawTraceEventInfo& event) const static_cast(softIrqExitMsg.vec())); return true; } +bool CpuDetailParser::SetRateEvent(const RawTraceEventInfo& event) const +{ + auto clockSetRateMsg = event.msgPtr->clock_set_rate_format(); + DataIndex nameIndex = traceDataCache_->GetDataIndex(clockSetRateMsg.name()); + streamFilters_->clockRateFilter_->AppendNewMeasureData(clockSetRateMsg.cpu_id(), nameIndex, + event.msgPtr->timestamp(), clockSetRateMsg.state()); + streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_CLOCK_SET_RATE, STAT_EVENT_RECEIVED); + return true; +} +bool CpuDetailParser::ClockEnableEvent(const RawTraceEventInfo& event) const +{ + auto clockEnableMsg = event.msgPtr->clock_enable_format(); + DataIndex nameIndex = traceDataCache_->GetDataIndex(clockEnableMsg.name()); + streamFilters_->clockEnableFilter_->AppendNewMeasureData(clockEnableMsg.cpu_id(), nameIndex, + event.msgPtr->timestamp(), clockEnableMsg.state()); + streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_CLOCK_ENABLE, STAT_EVENT_RECEIVED); + return true; +} +bool CpuDetailParser::ClockDisableEvent(const RawTraceEventInfo& event) const +{ + auto clockDisableMsg = event.msgPtr->clock_disable_format(); + DataIndex nameIndex = traceDataCache_->GetDataIndex(clockDisableMsg.name()); + streamFilters_->clockDisableFilter_->AppendNewMeasureData(clockDisableMsg.cpu_id(), nameIndex, + event.msgPtr->timestamp(), clockDisableMsg.state()); + streamFilters_->statFilter_->IncreaseStat(TRACE_EVENT_CLOCK_DISABLE, STAT_EVENT_RECEIVED); + return true; +} +bool CpuDetailParser::RegulatorSetVoltageEvent(const RawTraceEventInfo& event) const +{ + UNUSED(event); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_SET_VOLTAGE, STAT_EVENT_NOTSUPPORTED); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_SET_VOLTAGE, STAT_EVENT_RECEIVED); + return true; +} +bool CpuDetailParser::RegulatorSetVoltageCompleteEvent(const RawTraceEventInfo& event) const +{ + UNUSED(event); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_SET_VOLTAGE_COMPLETE, + STAT_EVENT_NOTSUPPORTED); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_SET_VOLTAGE_COMPLETE, STAT_EVENT_RECEIVED); + return true; +} +bool CpuDetailParser::RegulatorDisableEvent(const RawTraceEventInfo& event) const +{ + UNUSED(event); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_DISABLE, STAT_EVENT_NOTSUPPORTED); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_DISABLE, STAT_EVENT_RECEIVED); + return true; +} +bool CpuDetailParser::RegulatorDisableCompleteEvent(const RawTraceEventInfo& event) const +{ + UNUSED(event); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_DISABLE_COMPLETE, STAT_EVENT_NOTSUPPORTED); + traceDataCache_->GetStatAndInfo()->IncreaseStat(TRACE_EVENT_REGULATOR_DISABLE_COMPLETE, STAT_EVENT_RECEIVED); + return true; +} } // namespace TraceStreamer } // namespace SysTuning diff --git a/trace_streamer/src/parser/rawtrace_parser/rawtrace_cpu_detail_parser.h b/trace_streamer/src/parser/rawtrace_parser/cpu_detail_parser.h similarity index 86% rename from trace_streamer/src/parser/rawtrace_parser/rawtrace_cpu_detail_parser.h rename to trace_streamer/src/parser/rawtrace_parser/cpu_detail_parser.h index 6e741a46..d2203164 100644 --- a/trace_streamer/src/parser/rawtrace_parser/rawtrace_cpu_detail_parser.h +++ b/trace_streamer/src/parser/rawtrace_parser/cpu_detail_parser.h @@ -12,8 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef RAW_TRACE_CPU_DETAIL_PARSER_H -#define RAW_TRACE_CPU_DETAIL_PARSER_H +#ifndef CPU_DETAIL_PARSER_H +#define CPU_DETAIL_PARSER_H #include "print_event_parser.h" #include "trace_data_cache.h" #include "trace_plugin_result.pb.h" @@ -24,7 +24,7 @@ namespace TraceStreamer { struct RawTraceEventInfo { uint8_t cpuId = INVALID_UINT8; uint32_t eventId = INVALID_UINT32; - FtraceEvent* msgPtr = nullptr; + std::unique_ptr msgPtr; }; class CpuDetailParser { public: @@ -51,7 +51,7 @@ private: bool BinderTractionUnLockEvent(const RawTraceEventInfo& event) const; bool TaskRenameEvent(const RawTraceEventInfo& event) const; bool TaskNewtaskEvent(const RawTraceEventInfo& event) const; - bool ParsePrintEvent(const RawTraceEventInfo& event); + bool ParseTracingMarkWriteOrPrintEvent(const RawTraceEventInfo& event); bool CpuIdleEvent(const RawTraceEventInfo& event) const; bool CpuFrequencyEvent(const RawTraceEventInfo& event) const; bool CpuFrequencyLimitsEvent(const RawTraceEventInfo& event) const; @@ -65,6 +65,13 @@ private: bool SoftIrqEntryEvent(const RawTraceEventInfo& event) const; bool SoftIrqRaiseEvent(const RawTraceEventInfo& event) const; bool SoftIrqExitEvent(const RawTraceEventInfo& event) const; + bool SetRateEvent(const RawTraceEventInfo& event) const; + bool ClockEnableEvent(const RawTraceEventInfo& event) const; + bool ClockDisableEvent(const RawTraceEventInfo& event) const; + bool RegulatorSetVoltageEvent(const RawTraceEventInfo& event) const; + bool RegulatorSetVoltageCompleteEvent(const RawTraceEventInfo& event) const; + bool RegulatorDisableEvent(const RawTraceEventInfo& event) const; + bool RegulatorDisableCompleteEvent(const RawTraceEventInfo& event) const; private: using FuncCall = std::function; @@ -90,4 +97,4 @@ private: } // namespace TraceStreamer } // namespace SysTuning -#endif // RAW_TRACE_CPU_DETAIL_PARSER_H_ +#endif // CPU_DETAIL_PARSER_H_ diff --git a/trace_streamer/src/parser/rawtrace_parser/ftrace_event_processor.cpp b/trace_streamer/src/parser/rawtrace_parser/ftrace_event_processor.cpp index c0641860..6de9f330 100644 --- a/trace_streamer/src/parser/rawtrace_parser/ftrace_event_processor.cpp +++ b/trace_streamer/src/parser/rawtrace_parser/ftrace_event_processor.cpp @@ -154,7 +154,7 @@ void TaskNewtask(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const Ev newTaskMsg->set_oom_score_adj(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); } -void PrintFormat(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +void TracingMarkWriteOrPrintFormat(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) { uint8_t index = 0; auto printMsg = ftraceEvent.mutable_print_format(); @@ -253,6 +253,57 @@ void SoftirqExit(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const Ev auto softirqExitMsg = ftraceEvent.mutable_softirq_exit_format(); softirqExitMsg->set_vec(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); } +void ClockSetRate(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto clockSetRateMsg = ftraceEvent.mutable_clock_set_rate_format(); + clockSetRateMsg->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); + clockSetRateMsg->set_state(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); + clockSetRateMsg->set_cpu_id(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); +} +void ClockEnable(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto clockEnable = ftraceEvent.mutable_clock_enable_format(); + clockEnable->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); + clockEnable->set_state(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); + clockEnable->set_cpu_id(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); +} +void ClockDisable(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto clockDisable = ftraceEvent.mutable_clock_disable_format(); + clockDisable->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); + clockDisable->set_state(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); + clockDisable->set_cpu_id(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); +} +void RegulatorSetVoltage(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto regulatorSetVoltage = ftraceEvent.mutable_regulator_set_voltage_format(); + regulatorSetVoltage->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); + regulatorSetVoltage->set_min(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); + regulatorSetVoltage->set_max(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); +} +void RegulatorSetVoltageComplete(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto regulatorSetVoltage = ftraceEvent.mutable_regulator_set_voltage_complete_format(); + regulatorSetVoltage->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); + regulatorSetVoltage->set_val(FtraceFieldProcessor::HandleIntField(format.fields, index++, data, size)); +} +void RegulatorDisable(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto regulatorDisable = ftraceEvent.mutable_regulator_disable_format(); + regulatorDisable->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); +} +void RegulatorDisableComplete(FtraceEvent& ftraceEvent, uint8_t data[], size_t size, const EventFormat& format) +{ + uint8_t index = 0; + auto regulatorDisableComplete = ftraceEvent.mutable_regulator_disable_complete_format(); + regulatorDisableComplete->set_name(FtraceFieldProcessor::HandleStrField(format.fields, index++, data, size)); +} FtraceEventProcessor& FtraceEventProcessor::GetInstance() { @@ -276,7 +327,8 @@ FtraceEventProcessor::FtraceEventProcessor() {config_.eventNameMap_.at(TRACE_EVENT_CPU_IDLE), CpuIdle}, {config_.eventNameMap_.at(TRACE_EVENT_CPU_FREQUENCY), CpuFrequency}, {config_.eventNameMap_.at(TRACE_EVENT_CPU_FREQUENCY_LIMITS), CpuFrequencyLimits}, - {config_.eventNameMap_.at(TRACE_EVENT_PRINT), PrintFormat}, + {config_.eventNameMap_.at(TRACE_EVENT_PRINT), TracingMarkWriteOrPrintFormat}, + {config_.eventNameMap_.at(TRACE_EVENT_TRACING_MARK_WRITE), TracingMarkWriteOrPrintFormat}, {config_.eventNameMap_.at(TRACE_EVENT_TASK_RENAME), TaskRename}, {config_.eventNameMap_.at(TRACE_EVENT_TASK_NEWTASK), TaskNewtask}, {config_.eventNameMap_.at(TRACE_EVENT_BINDER_TRANSACTION), BinderTransaction}, @@ -292,6 +344,13 @@ FtraceEventProcessor::FtraceEventProcessor() {config_.eventNameMap_.at(TRACE_EVENT_SCHED_WAKEUP_NEW), SchedWakeupNew}, {config_.eventNameMap_.at(TRACE_EVENT_PROCESS_EXIT), SchedProcessExit}, {config_.eventNameMap_.at(TRACE_EVENT_PROCESS_FREE), SchedProcessFree}, + {config_.eventNameMap_.at(TRACE_EVENT_CLOCK_SET_RATE), ClockSetRate}, + {config_.eventNameMap_.at(TRACE_EVENT_CLOCK_ENABLE), ClockEnable}, + {config_.eventNameMap_.at(TRACE_EVENT_CLOCK_DISABLE), ClockDisable}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_SET_VOLTAGE), RegulatorSetVoltage}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_SET_VOLTAGE_COMPLETE), RegulatorSetVoltageComplete}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_DISABLE), RegulatorDisable}, + {config_.eventNameMap_.at(TRACE_EVENT_REGULATOR_DISABLE_COMPLETE), RegulatorDisableComplete}, }; } diff --git a/trace_streamer/src/parser/rawtrace_parser/ftrace_field_processor.h b/trace_streamer/src/parser/rawtrace_parser/ftrace_field_processor.h index 7a04bc07..94741a69 100644 --- a/trace_streamer/src/parser/rawtrace_parser/ftrace_field_processor.h +++ b/trace_streamer/src/parser/rawtrace_parser/ftrace_field_processor.h @@ -14,9 +14,9 @@ */ #ifndef FTRACE_FIELD_PROCESSOR_H #define FTRACE_FIELD_PROCESSOR_H -#include "ftrace_common_type.h" #include #include +#include "ftrace_common_type.h" #include "log.h" namespace SysTuning { diff --git a/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.cpp b/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.cpp index 02ff2001..288515b9 100644 --- a/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.cpp +++ b/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.cpp @@ -75,7 +75,7 @@ FtraceProcessor::~FtraceProcessor() bool FtraceProcessor::SetupEvent(const std::string& desc) { EventFormat format; - TS_CHECK_TRUE_RET(HandleEventFormat(desc.data(), format), false); + TS_CHECK_TRUE(HandleEventFormat(desc.data(), format), false, "HandleEventFormat failed!"); TS_CHECK_TRUE(FtraceEventProcessor::GetInstance().SetupEvent(format), false, "setup %s failed!", format.eventName.c_str()); eventFormatDict_[format.eventId] = format; @@ -138,7 +138,8 @@ bool FtraceProcessor::HandleEventFormat(const std::string& formatInfo, EventForm format.eventId = static_cast(atoi(idStr.c_str())); } else if (StartWith(curLine, nameLinePrefix_)) { format.eventName = curLine.substr(nameLinePrefix_.size() + 1); - TS_CHECK_TRUE_RET(FtraceEventProcessor::GetInstance().IsSupported(format.eventName), false); + TS_CHECK_TRUE(FtraceEventProcessor::GetInstance().IsSupported(format.eventName), false, + "Isn't Supported %s event!", format.eventName.data()); } } @@ -211,7 +212,7 @@ static std::string GetNameFromTypeName(const std::string& typeName) curName = rightPart; } else { auto posT1 = rightPart.rfind('['); - TS_CHECK_TRUE_RET(posT1 == std::string::npos, ""); + TS_CHECK_TRUE(posT1 != std::string::npos, "", "GetNameFromTypeName Failed!"); curName = rightPart.substr(0, posT1); } return curName; @@ -370,7 +371,6 @@ bool FtraceProcessor::HandleFieldType(const std::string& type, FieldFormat& fiel } // for flex array with __data_loc mark, likes: __data_loc char[] name; - // __data_loc __u8[] buf; if (std::regex_match(curTypeName, flexDataLocArrayRegex_)) { if (field.size != sizeof(uint32_t)) { TS_LOGW("__data_loc: %s, size: %hu", curTypeName.c_str(), field.size); @@ -533,7 +533,7 @@ bool FtraceProcessor::HandleTimeStamp(const FtraceEventHeader& eventHeader) // refers kernel function rb_update_write_stamp in ring_buffer.c curTimestamp_ = eventHeader.timeDelta + TimestampIncrements(deltaExt); - TS_LOGI("update ts with %u to %" PRIu64, deltaExt, curTimestamp_); + TS_LOGD("update ts with %u to %" PRIu64, deltaExt, curTimestamp_); return true; } @@ -569,14 +569,14 @@ bool FtraceProcessor::HandleDataRecord(const FtraceEventHeader& eventHeader, TS_LOGD("HandleDataRecord: eventId = %u, name = %s", eventId, format.eventName.c_str()); if (FtraceEventProcessor::GetInstance().IsSupported(format.eventId)) { - auto ftraceEvent = cpuMsg.add_event(); + std::unique_ptr ftraceEvent = std::make_unique(); ftraceEvent->set_timestamp(curTimestamp_); + HandleFtraceEvent(*ftraceEvent, eventStart, eventSize, format); std::unique_ptr event = std::make_unique(); event->cpuId = cpuMsg.cpu(); event->eventId = eventId; - event->msgPtr = ftraceEvent; + event->msgPtr = std::move(ftraceEvent); cpuDetailParser.EventAppend(std::move(event)); - HandleFtraceEvent(*ftraceEvent, eventStart, eventSize, format); } else { TS_LOGD("event %u %s not supported!", format.eventId, format.eventName.c_str()); } @@ -680,8 +680,7 @@ bool FtraceProcessor::HandleFtraceEvent(FtraceEvent& ftraceEvent, } else { TS_LOGD("pid = %d, taskName can't find.taskName = %s", pid, std::to_string(pid).data()); } - TS_LOGD("pid = %5d, tgid = %5d, taskName = %16s, event = %s", pid, ftraceEvent.tgid(), - ftraceEvent.taskName().c_str(), format.eventName.c_str()); + TS_LOGD("pid = %5d, tgid = %5d, event = %s", pid, ftraceEvent.tgid(), format.eventName.c_str()); } FtraceEventProcessor::GetInstance().HandleEvent(ftraceEvent, data, dataSize, format); return true; diff --git a/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.h b/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.h index abf9e3b2..671972ea 100644 --- a/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.h +++ b/trace_streamer/src/parser/rawtrace_parser/ftrace_processor.h @@ -18,17 +18,15 @@ #include #include #include +#include "cpu_detail_parser.h" #include "ftrace_common_type.h" #include "ftrace_field_processor.h" #include "printk_formats_processor.h" -#include "rawtrace_cpu_detail_parser.h" #include "ftrace_event_processor.h" namespace SysTuning { namespace TraceStreamer { -#ifndef PAGE_SIZE -constexpr uint32_t PAGE_SIZE = 4096; -#endif +constexpr uint32_t FTRACE_PAGE_SIZE = 4096; class FtraceProcessor { public: FtraceProcessor(); @@ -39,7 +37,7 @@ public: bool HandlePage(FtraceCpuDetailMsg& cpuDetailMsg, CpuDetailParser& cpuDetailParser, uint8_t page[], - size_t size = PAGE_SIZE); + size_t size = FTRACE_PAGE_SIZE); bool HandleTgids(const std::string& tgids); bool HandleCmdlines(const std::string& cmdlines); diff --git a/trace_streamer/src/parser/rawtrace_parser/kernel_symbols_processor.cpp b/trace_streamer/src/parser/rawtrace_parser/kernel_symbols_processor.cpp index 9653fb81..809bff8f 100644 --- a/trace_streamer/src/parser/rawtrace_parser/kernel_symbols_processor.cpp +++ b/trace_streamer/src/parser/rawtrace_parser/kernel_symbols_processor.cpp @@ -14,9 +14,6 @@ */ #include "kernel_symbols_processor.h" -#include -#include - #include "log.h" #include "symbols_filter.h" #include "string_help.h" diff --git a/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.cpp b/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.cpp index 07cbfaa9..e7ce3c53 100644 --- a/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.cpp +++ b/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.cpp @@ -33,11 +33,11 @@ RawTraceParser::RawTraceParser(TraceDataCache* dataCache, const TraceStreamerFil RawTraceParser::~RawTraceParser() {} bool RawTraceParser::ParseCpuRawData(uint32_t cpuId, const std::string& buffer) { - TS_CHECK_TRUE_RET(buffer.size() > 0, false); + TS_CHECK_TRUE(buffer.size() > 0, false, "buffer.size() is zero!"); auto startPtr = reinterpret_cast(buffer.c_str()); auto endPtr = startPtr + buffer.size(); cpuDetail_->set_cpu(cpuId); - for (uint8_t* page = const_cast(startPtr); page < endPtr; page += PAGE_SIZE) { + for (uint8_t* page = const_cast(startPtr); page < endPtr; page += FTRACE_PAGE_SIZE) { TS_CHECK_TRUE(ftraceProcessor_->HandlePage(*cpuDetail_.get(), *cpuDetailParser_.get(), page), false, "handle page failed!"); } @@ -49,7 +49,7 @@ void RawTraceParser::ParseTraceDataSegment(std::unique_ptr bufferStr, packagesBuffer_.insert(packagesBuffer_.end(), &bufferStr[0], &bufferStr[size]); auto packagesCurIter = packagesBuffer_.begin(); if (ParseDataRecursively(packagesCurIter)) { - packagesBuffer_.erase(packagesBuffer_.begin(), packagesCurIter); + packagesCurIter = packagesBuffer_.erase(packagesBuffer_.begin(), packagesCurIter); } return; } @@ -66,7 +66,7 @@ bool RawTraceParser::InitRawTraceFileHeader(std::deque::iterator& packa TS_LOGI("magicNumber=%d, isArch32=%u, cpuNum=%u", header.magicNumber, isArch32, cpuNum); packagesCurIter += sizeof(RawTraceFileHeader); - packagesBuffer_.erase(packagesBuffer_.begin(), packagesCurIter); + packagesCurIter = packagesBuffer_.erase(packagesBuffer_.begin(), packagesCurIter); hasGotHeader_ = true; return true; } @@ -91,40 +91,45 @@ void RawTraceParser::WaitForParserEnd() } bool RawTraceParser::ParseDataRecursively(std::deque::iterator& packagesCurIter) { + uint32_t type = INVALID_UINT8; + uint32_t len = INVALID_UINT32; if (!hasGotHeader_) { TS_CHECK_TRUE(InitRawTraceFileHeader(packagesCurIter), false, "get rawtrace file header failed"); } while (true) { - uint32_t type = INVALID_UINT8; - uint32_t len = INVALID_UINT32; - auto ret = memcpy_s(&type, sizeof(uint32_t), &(*packagesCurIter), sizeof(uint32_t)); + auto ret = memcpy_s(&type, sizeof(type), &(*packagesCurIter), sizeof(type)); TS_CHECK_TRUE(ret == EOK, false, "Memcpy FAILED!Error code is %d, data size is %zu.", ret, packagesBuffer_.size()); - packagesCurIter += sizeof(uint32_t); - ret = memcpy_s(&len, sizeof(uint32_t), &(*packagesCurIter), sizeof(uint32_t)); + packagesCurIter += sizeof(type); + ret = memcpy_s(&len, sizeof(len), &(*packagesCurIter), sizeof(len)); TS_CHECK_TRUE(ret == EOK, false, "Memcpy FAILED!Error code is %d, data size is %zu.", ret, packagesBuffer_.size()); - packagesCurIter += sizeof(uint32_t); - TS_CHECK_TRUE_RET(len < packagesBuffer_.end() - packagesCurIter, false); + packagesCurIter += sizeof(len); + uint32_t restDataLen = std::distance(packagesCurIter, packagesBuffer_.end()); + TS_CHECK_TRUE_RET(len <= restDataLen && packagesBuffer_.size() > 0, false); std::string bufferLine(packagesCurIter, packagesCurIter + len); packagesCurIter += len; - packagesBuffer_.erase(packagesBuffer_.begin(), packagesCurIter); - if (type >= CONTENT_TYPE_CPU_RAW && type <= cpuRawMax_) { - auto cpuId = type - CONTENT_TYPE_CPU_RAW; + packagesCurIter = packagesBuffer_.erase(packagesBuffer_.begin(), packagesCurIter); + uint8_t curType = static_cast(type); + if (curType >= CONTENT_TYPE_CPU_RAW && curType <= cpuRawMax_) { + auto cpuId = curType - CONTENT_TYPE_CPU_RAW; TS_CHECK_TRUE(ParseCpuRawData(cpuId, bufferLine), false, "cpu raw parse failed"); - } else if (type == CONTENT_TYPE_CMDLINES) { + } else if (curType == CONTENT_TYPE_CMDLINES) { TS_CHECK_TRUE(ftraceProcessor_->HandleCmdlines(bufferLine), false, "parse cmdlines failed"); - } else if (type == CONTENT_TYPE_TGIDS) { + } else if (curType == CONTENT_TYPE_TGIDS) { TS_CHECK_TRUE(ftraceProcessor_->HandleTgids(bufferLine), false, "parse tgid failed"); - } else if (type == CONTENT_TYPE_EVENTS_FORMAT) { + } else if (curType == CONTENT_TYPE_EVENTS_FORMAT) { TS_CHECK_TRUE(InitEventFormats(bufferLine), false, "init event format failed"); - } else if (type == CONTENT_TYPE_HEADER_PAGE) { + } else if (curType == CONTENT_TYPE_HEADER_PAGE) { TS_CHECK_TRUE(ftraceProcessor_->HandleHeaderPageFormat(bufferLine), false, "init header page failed"); - } else if (type == CONTENT_TYPE_PRINTK_FORMATS) { + } else if (curType == CONTENT_TYPE_PRINTK_FORMATS) { TS_CHECK_TRUE(PrintkFormatsProcessor::GetInstance().HandlePrintkSyms(bufferLine), false, "init printk_formats failed"); - } else if (type == CONTENT_TYPE_KALLSYMS) { + } else if (curType == CONTENT_TYPE_KALLSYMS) { TS_CHECK_TRUE(ksymsProcessor_->HandleKallSyms(bufferLine), false, "init printk_formats failed"); + } else { + TS_LOGW("Raw Trace Type(%d) Unknown.", curType); + return false; } } return true; diff --git a/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.h b/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.h index 6a44a087..b9fd4daf 100644 --- a/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.h +++ b/trace_streamer/src/parser/rawtrace_parser/rawtrace_parser.h @@ -16,10 +16,10 @@ #ifndef RAWTRACE_PARSER_H #define RAWTRACE_PARSER_H #include "common_types.h" +#include "cpu_detail_parser.h" #include "parser_base.h" #include "ftrace_processor.h" #include "kernel_symbols_processor.h" -#include "rawtrace_cpu_detail_parser.h" #include "trace_data_cache.h" namespace SysTuning { diff --git a/trace_streamer/src/parser/thread_state_flag.cpp b/trace_streamer/src/parser/thread_state_flag.cpp index 59a5c0e5..59e2ad0a 100644 --- a/trace_streamer/src/parser/thread_state_flag.cpp +++ b/trace_streamer/src/parser/thread_state_flag.cpp @@ -37,23 +37,17 @@ void ThreadStateFlag::ProcessSate(const std::string& stateStr) { for (size_t i = 0; i < stateStr.size(); i++) { if (stateStr[i] == '+') { - invalid_ = true; SetStat(TASKNEW); continue; } Direction ret = SetStatByChar(stateStr[i]); if (ret == NEED_CONTINUE) { - invalid_ = true; continue; } else if (ret == NEED_BREAK) { break; } } - - if (state_ == WAKEKILL) { - state_ = RUNNABLE; - } } ThreadStateFlag::ThreadStateFlag(const std::string& stateStr) diff --git a/trace_streamer/src/parser/thread_state_flag.h b/trace_streamer/src/parser/thread_state_flag.h index b31a58b8..269763ea 100644 --- a/trace_streamer/src/parser/thread_state_flag.h +++ b/trace_streamer/src/parser/thread_state_flag.h @@ -30,10 +30,10 @@ enum Stat : uint32_t { TRACED = 8, // the process is being debug EXITDEAD = 16, EXITZOMBIE = 32, - TASKDEAD = 64, - WAKEKILL = 128, - WAKING = 256, - PARKED = 512, + PARKED = 64, + TASKDEAD = 128, + WAKEKILL = 256, + WAKING = 512, NOLOAD = 1024, TASKNEW = 2048, VALID = 0X8000, @@ -47,7 +47,7 @@ public: { return state_ & ~VALID; } - bool IsValid() const + bool IsInvalid() const { return invalid_; } @@ -71,11 +71,8 @@ private: {'t', TRACED}, {'X', EXITDEAD}, {'Z', EXITZOMBIE}, - {'x', TASKDEAD}, - {'I', TASKDEAD}, - {'K', WAKEKILL}, {'P', PARKED}, - {'N', NOLOAD}, + {'I', TASKDEAD}, {'|', VALID}, }; bool invalid_ = false; diff --git a/trace_streamer/src/protos/types/plugins/memory_data/memory_plugin_result.proto b/trace_streamer/src/protos/types/plugins/memory_data/memory_plugin_result.proto index 2ae6fa6a..71fbf3ae 100755 --- a/trace_streamer/src/protos/types/plugins/memory_data/memory_plugin_result.proto +++ b/trace_streamer/src/protos/types/plugins/memory_data/memory_plugin_result.proto @@ -35,18 +35,18 @@ message SmapsInfo { string end_addr = 2; string permission = 3; string path = 4; - uint64 size = 5; - uint64 rss = 6; - uint64 pss = 7; + uint64 size = 5; // kb + uint64 rss = 6; // kb + uint64 pss = 7; // kb double reside = 8; - uint64 dirty = 9; - uint64 swapper = 10; - uint64 private_clean = 11; - uint64 private_dirty = 12; - uint64 shared_clean = 13; - uint64 shared_dirty = 14; - uint64 swap = 15; - uint64 swap_pss = 16; + uint64 dirty = 9; // kb + uint64 swapper = 10; // kb + uint64 private_clean = 11; // kb + uint64 private_dirty = 12; // kb + uint64 shared_clean = 13; // kb + uint64 shared_dirty = 14; // kb + uint64 swap = 15; // kb + uint64 swap_pss = 16; // kb string category = 17; }; @@ -80,6 +80,7 @@ message ProcessMemoryInfo { uint64 purg_pin_kb = 15; // data from hidumper uint64 gl_pss_kb = 16; + uint64 graph_pss_kb = 17; } message AshmemInfo { @@ -108,7 +109,6 @@ message DmaInfo { string buf_name = 8; string exp_name = 9; } - message GpuProcessInfo { string addr = 1; int32 pid = 2; @@ -139,6 +139,31 @@ message GpuDumpInfo { uint64 gpu_purgeable_size = 4; // bytes } +message RSImageDumpInfo { + // data from hidumper + uint64 size = 1; // bytes + string type = 2; + int32 pid = 3; + string surface_name = 4; +} + +message CpuDumpInfo { + // data from hidumper + uint64 total_cpu_memory_size = 1; // bytes +} + +message WindowManagerServiceInfo { + // data from hidumper + string window_name = 1; + int32 pid = 2; +} + +message ProfileMemInfo { + // /sys/kernel/debug/mali0/ctx/$(pidof xxx)_0/mem_profile + string channel = 1; + uint64 total_memory_size = 2; // bytes +} + message MemoryData { repeated ProcessMemoryInfo processesinfo = 1; repeated SysMeminfo meminfo = 2; @@ -150,4 +175,8 @@ message MemoryData { repeated GpuDumpInfo gpudumpinfo = 8; uint64 gpu_limit_size = 9; // bytes uint64 gpu_used_size = 10; // bytes + repeated RSImageDumpInfo rsdumpinfo = 11; + repeated CpuDumpInfo cpudumpinfo = 12; + repeated WindowManagerServiceInfo windowinfo = 13; + repeated ProfileMemInfo profilememinfo = 14; } diff --git a/trace_streamer/src/rpc/rpc_server.cpp b/trace_streamer/src/rpc/rpc_server.cpp index 2f36de87..f4139845 100644 --- a/trace_streamer/src/rpc/rpc_server.cpp +++ b/trace_streamer/src/rpc/rpc_server.cpp @@ -170,6 +170,7 @@ bool RpcServer::ParseSplitFileData(const uint8_t* data, if (isSplitFile && isFinish && ts_->GetFileType() == TRACE_FILETYPE_H_TRACE) { uint64_t dataSize = 0; std::string result = VALUE; + ts_->GetHtraceData()->ClearNativehookData(); for (const auto& itemHtrace : ts_->GetHtraceData()->GetTraceDataHtrace()) { dataSize += itemHtrace.second; result += OFFSET + std::to_string(itemHtrace.first); @@ -218,7 +219,6 @@ bool RpcServer::ParseSplitFileData(const uint8_t* data, } void RpcServer::ProcHookCommSplitResult(SplitFileCallBack splitFileCallBack) { - ts_->GetHtraceData()->ClearNativehookData(); std::string lenBuffer(sizeof(uint32_t), 0); for (auto& commProto : ts_->GetTraceDataCache()->HookCommProtos()) { uint32_t len = commProto->size(); diff --git a/trace_streamer/src/table/monitor/BUILD.gn b/trace_streamer/src/table/monitor/BUILD.gn index de0738d4..554a5f50 100644 --- a/trace_streamer/src/table/monitor/BUILD.gn +++ b/trace_streamer/src/table/monitor/BUILD.gn @@ -24,8 +24,11 @@ ohos_source_set("monitor_tables") { "live_process_table.cpp", "log_table.cpp", "memory_ashmem_table.cpp", + "memory_cpu_table.cpp", "memory_dma_table.cpp", "memory_process_gpu_table.cpp", + "memory_profile_table.cpp", + "memory_rs_image_table.cpp", "memory_window_gpu_table.cpp", "network_table.cpp", "paged_memory_sample_table.cpp", diff --git a/trace_streamer/src/table/monitor/memory_cpu_table.cpp b/trace_streamer/src/table/monitor/memory_cpu_table.cpp new file mode 100644 index 00000000..98c4441b --- /dev/null +++ b/trace_streamer/src/table/monitor/memory_cpu_table.cpp @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "memory_cpu_table.h" + +namespace SysTuning { +namespace TraceStreamer { +enum class Index : int32_t { ID = 0, TS, TOTAL_SIZE }; +MemoryCpuTable::MemoryCpuTable(const TraceDataCache* dataCache) : TableBase(dataCache) +{ + tableColumn_.push_back(TableBase::ColumnInfo("id", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("ts", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("total_size", "INTEGER")); + tablePriKey_.push_back("id"); +} + +MemoryCpuTable::~MemoryCpuTable() {} + +std::unique_ptr MemoryCpuTable::CreateCursor() +{ + return std::make_unique(dataCache_, this); +} + +MemoryCpuTable::Cursor::Cursor(const TraceDataCache* dataCache, TableBase* table) + : TableBase::Cursor(dataCache, table, static_cast(dataCache->GetConstCpuDumpInfo().Size())), + cpuDumpInfoObj_(dataCache->GetConstCpuDumpInfo()) +{ +} + +MemoryCpuTable::Cursor::~Cursor() {} + +int32_t MemoryCpuTable::Cursor::Column(int32_t column) const +{ + switch (static_cast(column)) { + case Index::ID: + sqlite3_result_int64(context_, cpuDumpInfoObj_.IdsData()[CurrentRow()]); + break; + case Index::TS: + sqlite3_result_int64(context_, cpuDumpInfoObj_.TimeStampData()[CurrentRow()]); + break; + case Index::TOTAL_SIZE: + sqlite3_result_int64(context_, cpuDumpInfoObj_.TotalSizes()[CurrentRow()]); + break; + default: + TS_LOGF("Unregistered column : %d", column); + break; + } + return SQLITE_OK; +} +} // namespace TraceStreamer +} // namespace SysTuning diff --git a/trace_streamer/src/table/monitor/memory_cpu_table.h b/trace_streamer/src/table/monitor/memory_cpu_table.h new file mode 100644 index 00000000..24ad1033 --- /dev/null +++ b/trace_streamer/src/table/monitor/memory_cpu_table.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MEMORY_CPU_TABLE_H +#define MEMORY_CPU_TABLE_H + +#include "table_base.h" +#include "trace_data_cache.h" + +namespace SysTuning { +namespace TraceStreamer { +class MemoryCpuTable : public TableBase { +public: + explicit MemoryCpuTable(const TraceDataCache* dataCache); + ~MemoryCpuTable() override; + std::unique_ptr CreateCursor() override; + +private: + class Cursor : public TableBase::Cursor { + public: + explicit Cursor(const TraceDataCache* dataCache, TableBase* table); + ~Cursor() override; + int32_t Column(int32_t column) const override; + + private: + const CpuDumpInfo& cpuDumpInfoObj_; + }; +}; +} // namespace TraceStreamer +} // namespace SysTuning +#endif // MEMORY_CPU_TABLE_H diff --git a/trace_streamer/src/table/monitor/memory_profile_table.cpp b/trace_streamer/src/table/monitor/memory_profile_table.cpp new file mode 100644 index 00000000..e60ac9f7 --- /dev/null +++ b/trace_streamer/src/table/monitor/memory_profile_table.cpp @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "memory_profile_table.h" + +namespace SysTuning { +namespace TraceStreamer { +enum class Index : int32_t { ID = 0, TS, CHANNEL_INDEX, TOTAL_SIZE }; +MemoryProfileTable::MemoryProfileTable(const TraceDataCache* dataCache) : TableBase(dataCache) +{ + tableColumn_.push_back(TableBase::ColumnInfo("id", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("ts", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("channel_id", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("total_size", "INTEGER")); + tablePriKey_.push_back("id"); +} + +MemoryProfileTable::~MemoryProfileTable() {} + +std::unique_ptr MemoryProfileTable::CreateCursor() +{ + return std::make_unique(dataCache_, this); +} + +MemoryProfileTable::Cursor::Cursor(const TraceDataCache* dataCache, TableBase* table) + : TableBase::Cursor(dataCache, table, static_cast(dataCache->GetConstProfileMemInfo().Size())), + profileMemoryInfoObj_(dataCache->GetConstProfileMemInfo()) +{ +} + +MemoryProfileTable::Cursor::~Cursor() {} + +int32_t MemoryProfileTable::Cursor::Column(int32_t column) const +{ + switch (static_cast(column)) { + case Index::ID: + sqlite3_result_int64(context_, profileMemoryInfoObj_.IdsData()[CurrentRow()]); + break; + case Index::TS: + sqlite3_result_int64(context_, profileMemoryInfoObj_.TimeStampData()[CurrentRow()]); + break; + case Index::CHANNEL_INDEX: + sqlite3_result_int64(context_, profileMemoryInfoObj_.ChannelIndexs()[CurrentRow()]); + break; + case Index::TOTAL_SIZE: + sqlite3_result_int64(context_, profileMemoryInfoObj_.TotalSizes()[CurrentRow()]); + break; + default: + TS_LOGF("Unregistered column : %d", column); + break; + } + return SQLITE_OK; +} +} // namespace TraceStreamer +} // namespace SysTuning diff --git a/trace_streamer/src/table/monitor/memory_profile_table.h b/trace_streamer/src/table/monitor/memory_profile_table.h new file mode 100644 index 00000000..c37e507b --- /dev/null +++ b/trace_streamer/src/table/monitor/memory_profile_table.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MEMORY_PROFILER_TABLE_H +#define MEMORY_PROFILER_TABLE_H + +#include "table_base.h" +#include "trace_data_cache.h" + +namespace SysTuning { +namespace TraceStreamer { +class MemoryProfileTable : public TableBase { +public: + explicit MemoryProfileTable(const TraceDataCache* dataCache); + ~MemoryProfileTable() override; + std::unique_ptr CreateCursor() override; + +private: + class Cursor : public TableBase::Cursor { + public: + explicit Cursor(const TraceDataCache* dataCache, TableBase* table); + ~Cursor() override; + int32_t Column(int32_t column) const override; + + private: + const ProfileMemInfo& profileMemoryInfoObj_; + }; +}; +} // namespace TraceStreamer +} // namespace SysTuning +#endif // MEMORY_PROFILER_TABLE_H diff --git a/trace_streamer/src/table/monitor/memory_rs_image_table.cpp b/trace_streamer/src/table/monitor/memory_rs_image_table.cpp new file mode 100644 index 00000000..45c09cad --- /dev/null +++ b/trace_streamer/src/table/monitor/memory_rs_image_table.cpp @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "memory_rs_image_table.h" + +namespace SysTuning { +namespace TraceStreamer { +enum class Index : int32_t { + ID = 0, + IPID, + TS, + MEM_SIZE, + TYPE_INDEX, + SURFACE_NAME_INDEX, +}; +MemoryRSImageTable::MemoryRSImageTable(const TraceDataCache* dataCache) : TableBase(dataCache) +{ + tableColumn_.push_back(TableBase::ColumnInfo("id", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("ipid", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("ts", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("mem_size", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("type_id", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("surface_name_id", "INTEGER")); + tablePriKey_.push_back("id"); +} + +MemoryRSImageTable::~MemoryRSImageTable() {} + +std::unique_ptr MemoryRSImageTable::CreateCursor() +{ + return std::make_unique(dataCache_, this); +} + +MemoryRSImageTable::Cursor::Cursor(const TraceDataCache* dataCache, TableBase* table) + : TableBase::Cursor(dataCache, table, static_cast(dataCache->GetConstRSImageDumpInfo().Size())), + rsImageDumpInfoObj_(dataCache->GetConstRSImageDumpInfo()) +{ +} + +MemoryRSImageTable::Cursor::~Cursor() {} + +int32_t MemoryRSImageTable::Cursor::Column(int32_t column) const +{ + switch (static_cast(column)) { + case Index::ID: + sqlite3_result_int64(context_, rsImageDumpInfoObj_.IdsData()[CurrentRow()]); + break; + case Index::IPID: + if (rsImageDumpInfoObj_.Ipids()[CurrentRow()] != INVALID_IPID) { + sqlite3_result_int64(context_, rsImageDumpInfoObj_.Ipids()[CurrentRow()]); + } + break; + case Index::TS: + sqlite3_result_int64(context_, rsImageDumpInfoObj_.TimeStampData()[CurrentRow()]); + break; + case Index::MEM_SIZE: + sqlite3_result_int64(context_, rsImageDumpInfoObj_.MemSizes()[CurrentRow()]); + break; + case Index::TYPE_INDEX: + sqlite3_result_int64(context_, rsImageDumpInfoObj_.TypeIndexs()[CurrentRow()]); + break; + case Index::SURFACE_NAME_INDEX: + sqlite3_result_int64(context_, rsImageDumpInfoObj_.SurfaceNameIndexs()[CurrentRow()]); + break; + default: + TS_LOGF("Unregistered column : %d", column); + break; + } + return SQLITE_OK; +} +} // namespace TraceStreamer +} // namespace SysTuning diff --git a/trace_streamer/src/table/monitor/memory_rs_image_table.h b/trace_streamer/src/table/monitor/memory_rs_image_table.h new file mode 100644 index 00000000..54878ea8 --- /dev/null +++ b/trace_streamer/src/table/monitor/memory_rs_image_table.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MEMORY_RS_IMAGE_TABLE_H +#define MEMORY_RS_IMAGE_TABLE_H + +#include "table_base.h" +#include "trace_data_cache.h" + +namespace SysTuning { +namespace TraceStreamer { +class MemoryRSImageTable : public TableBase { +public: + explicit MemoryRSImageTable(const TraceDataCache* dataCache); + ~MemoryRSImageTable() override; + std::unique_ptr CreateCursor() override; + +private: + class Cursor : public TableBase::Cursor { + public: + explicit Cursor(const TraceDataCache* dataCache, TableBase* table); + ~Cursor() override; + int32_t Column(int32_t column) const override; + + private: + const RSImageDumpInfo& rsImageDumpInfoObj_; + }; +}; +} // namespace TraceStreamer +} // namespace SysTuning +#endif // MEMORY_RS_IMAGE_TABLE_H diff --git a/trace_streamer/src/table/monitor/memory_window_gpu_table.cpp b/trace_streamer/src/table/monitor/memory_window_gpu_table.cpp index 1c7c51b0..80edb60c 100644 --- a/trace_streamer/src/table/monitor/memory_window_gpu_table.cpp +++ b/trace_streamer/src/table/monitor/memory_window_gpu_table.cpp @@ -26,7 +26,8 @@ enum class Index : int32_t { CATEGORY_NAME_ID, SIZE, COUNT, - PURGEABLE_SIZE + PURGEABLE_SIZE, + IPID }; MemoryWindowGpuTable::MemoryWindowGpuTable(const TraceDataCache* dataCache) : TableBase(dataCache) { @@ -39,6 +40,7 @@ MemoryWindowGpuTable::MemoryWindowGpuTable(const TraceDataCache* dataCache) : Ta tableColumn_.push_back(TableBase::ColumnInfo("size", "INTEGER")); tableColumn_.push_back(TableBase::ColumnInfo("count", "INTEGER")); tableColumn_.push_back(TableBase::ColumnInfo("purgeable_size", "INTEGER")); + tableColumn_.push_back(TableBase::ColumnInfo("ipid", "INTEGER")); tablePriKey_.push_back("id"); } @@ -87,6 +89,11 @@ int32_t MemoryWindowGpuTable::Cursor::Column(int32_t column) const case Index::PURGEABLE_SIZE: sqlite3_result_int64(context_, GpuWindowMemDataObj_.PurgeableSizes()[CurrentRow()]); break; + case Index::IPID: + if (GpuWindowMemDataObj_.Ipids()[CurrentRow()] != INVALID_IPID) { + sqlite3_result_int64(context_, GpuWindowMemDataObj_.Ipids()[CurrentRow()]); + } + break; default: TS_LOGF("Unregistered column : %d", column); break; diff --git a/trace_streamer/src/trace_data/trace_data_cache.cpp b/trace_streamer/src/trace_data/trace_data_cache.cpp index bd081923..9cce4083 100644 --- a/trace_streamer/src/trace_data/trace_data_cache.cpp +++ b/trace_streamer/src/trace_data/trace_data_cache.cpp @@ -62,6 +62,13 @@ #include "log_table.h" #include "measure_filter_table.h" #include "measure_table.h" +#include "memory_ashmem_table.h" +#include "memory_dma_table.h" +#include "memory_process_gpu_table.h" +#include "memory_window_gpu_table.h" +#include "memory_cpu_table.h" +#include "memory_profile_table.h" +#include "memory_rs_image_table.h" #include "meta_table.h" #include "native_hook_frame_table.h" #include "native_hook_statistic_table.h" @@ -95,10 +102,6 @@ #include "thread_state_table.h" #include "thread_table.h" #include "trace_config_table.h" -#include "memory_ashmem_table.h" -#include "memory_dma_table.h" -#include "memory_process_gpu_table.h" -#include "memory_window_gpu_table.h" namespace SysTuning { namespace TraceStreamer { @@ -199,6 +202,9 @@ void TraceDataCache::InitDB() TableBase::TableDeclare(*db_, this, "memory_dma"); TableBase::TableDeclare(*db_, this, "memory_process_gpu"); TableBase::TableDeclare(*db_, this, "memory_window_gpu"); + TableBase::TableDeclare(*db_, this, "memory_cpu"); + TableBase::TableDeclare(*db_, this, "memory_profile"); + TableBase::TableDeclare(*db_, this, "memory_rs_image"); TableBase::TableDeclare(*db_, this, "perf_report"); TableBase::TableDeclare(*db_, this, "perf_sample"); @@ -280,6 +286,9 @@ void TraceDataCache::InitDB() TableBase::TableDeclare(*db_, this, "_memory_dma"); TableBase::TableDeclare(*db_, this, "_memory_process_gpu"); TableBase::TableDeclare(*db_, this, "_memory_window_gpu"); + TableBase::TableDeclare(*db_, this, "_memory_cpu"); + TableBase::TableDeclare(*db_, this, "_memory_profile"); + TableBase::TableDeclare(*db_, this, "_memory_rs_image"); #if WITH_EBPF_HELP TableBase::TableDeclare(*db_, this, "_ebpf_process_maps"); TableBase::TableDeclare(*db_, this, "_ebpf_elf"); diff --git a/trace_streamer/src/trace_data/trace_data_cache_base.h b/trace_streamer/src/trace_data/trace_data_cache_base.h index 19820e55..590154f6 100644 --- a/trace_streamer/src/trace_data/trace_data_cache_base.h +++ b/trace_streamer/src/trace_data/trace_data_cache_base.h @@ -69,18 +69,18 @@ public: {TASK_UNINTERRUPTIBLE_IO, "D-IO"}, {TASK_UNINTERRUPTIBLE_NIO, "D-NIO"}, {TASK_RUNNING, "Running"}, - {TASK_INTERRUPTED, "T"}, + {TASK_STOPPED, "T"}, {TASK_TRACED, "t"}, {TASK_EXIT_DEAD, "X"}, {TASK_ZOMBIE, "Z"}, {TASK_PARKED, "P"}, - {TASK_KILLED, "K"}, + {TASK_DEAD, "I"}, {TASK_DK, "DK"}, {TASK_DK_IO, "DK-IO"}, {TASK_DK_NIO, "DK-NIO"}, {TASK_TRACED_KILL, "TK"}, - {TASK_WAKEKILL, "W"}, - {TASK_FOREGROUND, "R+"}, + {TASK_WAKEKILL, "R+"}, + {TASK_NEW, "R+"}, {TASK_RUNNABLE_BINDER, "R-B"}, {TASK_MAX, "S"}, {TASK_INVALID, "U"}}; @@ -177,6 +177,9 @@ public: DmaMemData dmaMemData_; GpuProcessMemData gpuProcessMemData_; GpuWindowMemData gpuWindowMemData_; + CpuDumpInfo cpuDumpInfo_; + ProfileMemInfo profileMemInfo_; + RSImageDumpInfo rsImageDumpInfo_; }; } // namespace TraceStreamer } // namespace SysTuning diff --git a/trace_streamer/src/trace_data/trace_data_cache_reader.cpp b/trace_streamer/src/trace_data/trace_data_cache_reader.cpp index a1795eb4..ae3f0eb3 100644 --- a/trace_streamer/src/trace_data/trace_data_cache_reader.cpp +++ b/trace_streamer/src/trace_data/trace_data_cache_reader.cpp @@ -379,5 +379,17 @@ const GpuWindowMemData& TraceDataCacheReader::GetConstGpuWindowMemData() const { return gpuWindowMemData_; } +const CpuDumpInfo& TraceDataCacheReader::GetConstCpuDumpInfo() const +{ + return cpuDumpInfo_; +} +const ProfileMemInfo& TraceDataCacheReader::GetConstProfileMemInfo() const +{ + return profileMemInfo_; +} +const RSImageDumpInfo& TraceDataCacheReader::GetConstRSImageDumpInfo() const +{ + return rsImageDumpInfo_; +} } // namespace TraceStreamer } // namespace SysTuning diff --git a/trace_streamer/src/trace_data/trace_data_cache_reader.h b/trace_streamer/src/trace_data/trace_data_cache_reader.h index bfe2c349..98232b4a 100644 --- a/trace_streamer/src/trace_data/trace_data_cache_reader.h +++ b/trace_streamer/src/trace_data/trace_data_cache_reader.h @@ -118,6 +118,9 @@ public: const DmaMemData& GetConstDmaMemData() const; const GpuProcessMemData& GetConstGpuProcessMemData() const; const GpuWindowMemData& GetConstGpuWindowMemData() const; + const CpuDumpInfo& GetConstCpuDumpInfo() const; + const ProfileMemInfo& GetConstProfileMemInfo() const; + const RSImageDumpInfo& GetConstRSImageDumpInfo() const; }; } // namespace TraceStreamer } // namespace SysTuning diff --git a/trace_streamer/src/trace_data/trace_data_cache_writer.cpp b/trace_streamer/src/trace_data/trace_data_cache_writer.cpp index 9f6d7917..7998b262 100644 --- a/trace_streamer/src/trace_data/trace_data_cache_writer.cpp +++ b/trace_streamer/src/trace_data/trace_data_cache_writer.cpp @@ -70,6 +70,7 @@ void TraceDataCacheWriter::MixTraceTime(uint64_t timestampMin, uint64_t timestam } if (timestampMin == timestampMax) { ++timestampMax; + --timestampMin; } if (timestampMin == std::numeric_limits::max() || timestampMax == 0) { return; @@ -423,7 +424,18 @@ GpuWindowMemData* TraceDataCacheWriter::GetGpuWindowMemData() { return &gpuWindowMemData_; } - +CpuDumpInfo* TraceDataCacheWriter::GetCpuDumpInfo() +{ + return &cpuDumpInfo_; +} +ProfileMemInfo* TraceDataCacheWriter::GetProfileMemInfo() +{ + return &profileMemInfo_; +} +RSImageDumpInfo* TraceDataCacheWriter::GetRSImageDumpInfo() +{ + return &rsImageDumpInfo_; +} void TraceDataCacheWriter::Clear() { rawData_.Clear(); diff --git a/trace_streamer/src/trace_data/trace_data_cache_writer.h b/trace_streamer/src/trace_data/trace_data_cache_writer.h index e37bede4..0d9c1614 100644 --- a/trace_streamer/src/trace_data/trace_data_cache_writer.h +++ b/trace_streamer/src/trace_data/trace_data_cache_writer.h @@ -117,6 +117,9 @@ public: DmaMemData* GetDmaMemData(); GpuProcessMemData* GetGpuProcessMemData(); GpuWindowMemData* GetGpuWindowMemData(); + CpuDumpInfo* GetCpuDumpInfo(); + ProfileMemInfo* GetProfileMemInfo(); + RSImageDumpInfo* GetRSImageDumpInfo(); }; } // namespace TraceStreamer } // namespace SysTuning diff --git a/trace_streamer/src/trace_data/trace_stdtype.cpp b/trace_streamer/src/trace_data/trace_stdtype.cpp index a49d12fc..f9c0a92b 100644 --- a/trace_streamer/src/trace_data/trace_stdtype.cpp +++ b/trace_streamer/src/trace_data/trace_stdtype.cpp @@ -3502,6 +3502,7 @@ void GpuWindowMemData::AppendNewData(uint64_t ts, sizes_.emplace_back(size); counts_.emplace_back(count); purgeableSizes_.emplace_back(purgeableSize); + ipids_.emplace_back(INVALID_IPID); ids_.push_back(rowCount_); rowCount_++; } @@ -3533,6 +3534,73 @@ const std::deque& GpuWindowMemData::PurgeableSizes() const { return purgeableSizes_; } +const std::deque& GpuWindowMemData::Ipids() const +{ + return ipids_; +} +void GpuWindowMemData::RevicesIpid(const std::map& windowIdToIpidMap) +{ + for (auto i = 0; i < Size(); i++) { + if (windowIdToIpidMap.count(windowNameIds_[i])) { + ipids_[i] = windowIdToIpidMap.at(windowNameIds_[i]); + } + } +} + +void CpuDumpInfo::AppendNewData(uint64_t timestamp, uint64_t size) +{ + timeStamps_.emplace_back(timestamp); + totalSizes_.emplace_back(size); + ids_.emplace_back(Size()); +} +const std::deque& CpuDumpInfo::TotalSizes() const +{ + return totalSizes_; +} +void ProfileMemInfo::AppendNewData(uint64_t timestamp, DataIndex channelIndex, uint64_t size) +{ + timeStamps_.emplace_back(timestamp); + totalSizes_.emplace_back(size); + channelIndexs_.emplace_back(channelIndex); + ids_.emplace_back(Size()); +} +const std::deque& ProfileMemInfo::ChannelIndexs() const +{ + return channelIndexs_; +} +const std::deque& ProfileMemInfo::TotalSizes() const +{ + return totalSizes_; +} +void RSImageDumpInfo::AppendNewData(uint64_t timestamp, + uint64_t memSize, + DataIndex typeIndex, + InternalPid ipid, + DataIndex name) +{ + timeStamps_.emplace_back(timestamp); + memSizes_.emplace_back(memSize); + typeIndexs_.emplace_back(typeIndex); + ipids_.emplace_back(ipid); + surfaceNameIndexs_.emplace_back(name); + ids_.emplace_back(Size()); +} +const std::deque& RSImageDumpInfo::MemSizes() const +{ + return memSizes_; +} +const std::deque& RSImageDumpInfo::TypeIndexs() const +{ + return typeIndexs_; +} +const std::deque& RSImageDumpInfo::Ipids() const +{ + return ipids_; +} +const std::deque& RSImageDumpInfo::SurfaceNameIndexs() const +{ + return surfaceNameIndexs_; +} } // namespace TraceStdtype } // namespace SysTuning diff --git a/trace_streamer/src/trace_data/trace_stdtype.h b/trace_streamer/src/trace_data/trace_stdtype.h index 85d9b1bf..69b645f7 100644 --- a/trace_streamer/src/trace_data/trace_stdtype.h +++ b/trace_streamer/src/trace_data/trace_stdtype.h @@ -2734,6 +2734,7 @@ public: uint64_t size, uint32_t count, uint64_t purgeableSize); + void RevicesIpid(const std::map& windowIdToIpidMap); const std::deque& WindowNameIds() const; const std::deque& WindowIds() const; const std::deque& ModuleNameIds() const; @@ -2741,6 +2742,7 @@ public: const std::deque& Sizes() const; const std::deque& Counts() const; const std::deque& PurgeableSizes() const; + const std::deque& Ipids() const; void Clear() override { CacheBase::Clear(); @@ -2751,6 +2753,7 @@ public: sizes_.clear(); counts_.clear(); purgeableSizes_.clear(); + ipids_.clear(); } private: @@ -2761,9 +2764,60 @@ private: std::deque sizes_ = {}; std::deque counts_ = {}; std::deque purgeableSizes_ = {}; + std::deque ipids_ = {}; uint32_t rowCount_ = 0; }; +class CpuDumpInfo : public CacheBase { +public: + void AppendNewData(uint64_t timestamp, uint64_t size); + const std::deque& TotalSizes() const; + void Clear() override + { + CacheBase::Clear(); + totalSizes_.clear(); + } + +private: + std::deque totalSizes_ = {}; +}; +class ProfileMemInfo : public CacheBase { +public: + void AppendNewData(uint64_t timestamp, DataIndex channelIndex, uint64_t size); + const std::deque& ChannelIndexs() const; + const std::deque& TotalSizes() const; + void Clear() override + { + CacheBase::Clear(); + channelIndexs_.clear(); + totalSizes_.clear(); + } + +private: + std::deque channelIndexs_ = {}; + std::deque totalSizes_ = {}; +}; +class RSImageDumpInfo : public CacheBase { +public: + void AppendNewData(uint64_t timestamp, uint64_t memSize, DataIndex typeIndex, InternalPid ipid, DataIndex name); + const std::deque& MemSizes() const; + const std::deque& TypeIndexs() const; + const std::deque& Ipids() const; + const std::deque& SurfaceNameIndexs() const; + void Clear() override + { + CacheBase::Clear(); + memSizes_.clear(); + typeIndexs_.clear(); + ipids_.clear(); + surfaceNameIndexs_.clear(); + } +private: + std::deque memSizes_ = {}; + std::deque typeIndexs_ = {}; + std::deque ipids_ = {}; + std::deque surfaceNameIndexs_ = {}; +}; } // namespace TraceStdtype } // namespace SysTuning diff --git a/trace_streamer/test/unittest/animation_filter_test.cpp b/trace_streamer/test/unittest/animation_filter_test.cpp index d231647f..9f9b2403 100644 --- a/trace_streamer/test/unittest/animation_filter_test.cpp +++ b/trace_streamer/test/unittest/animation_filter_test.cpp @@ -267,7 +267,9 @@ HWTEST_F(AnimationFilterTest, AnimationStartAndEnd, TestSize.Level1) auto callStackRow = callStackSlice->AppendInternalSlice(line.ts, dur, INVALID_UINT32, INVALID_UINT64, INVALID_UINT16, callStackName, depth, parentId); - stream_.streamFilters_->animationFilter_->StartAnimationEvent(line, callStackRow); + TracePoint point; + point.name_ = "1693876195576., 1693876195586."; + stream_.streamFilters_->animationFilter_->StartAnimationEvent(line, point, callStackRow); EXPECT_TRUE(!stream_.streamFilters_->animationFilter_->animationCallIds_.empty()); stream_.streamFilters_->animationFilter_->FinishAnimationEvent(line, callStackRow); EXPECT_TRUE(stream_.streamFilters_->animationFilter_->animationCallIds_.empty()); diff --git a/trace_streamer/test/unittest/hilog_parser_test.cpp b/trace_streamer/test/unittest/hilog_parser_test.cpp index f1d51a73..191b3972 100644 --- a/trace_streamer/test/unittest/hilog_parser_test.cpp +++ b/trace_streamer/test/unittest/hilog_parser_test.cpp @@ -56,7 +56,8 @@ HWTEST_F(HilogParserTest, ParseHilogInfoWithoutHilogLine, TestSize.Level1) std::string hilogData = ""; hilogInfo->SerializeToString(&hilogData); ProtoReader::BytesView hilogInfoData(reinterpret_cast(hilogData.data()), hilogData.size()); - htraceHiLogParser.Parse(hilogInfoData); + bool issplit = false; + htraceHiLogParser.Parse(hilogInfoData, issplit); auto size = stream_.traceDataCache_->GetConstHilogData().Size(); EXPECT_FALSE(size); } @@ -96,7 +97,8 @@ HWTEST_F(HilogParserTest, ParseHilogInfoWithOneHilogLine, TestSize.Level1) std::string hilogData = ""; hilogInfo->SerializeToString(&hilogData); ProtoReader::BytesView hilogInfoData(reinterpret_cast(hilogData.data()), hilogData.size()); - htraceHiLogParser.Parse(hilogInfoData); + bool issplit = false; + htraceHiLogParser.Parse(hilogInfoData, issplit); auto seq = stream_.traceDataCache_->GetConstHilogData().HilogLineSeqs()[0]; EXPECT_EQ(seq, LOG_ID); @@ -187,7 +189,8 @@ HWTEST_F(HilogParserTest, ParseHilogInfoWithMultipleHilogLine, TestSize.Level1) std::string hilogData = ""; hilogInfo->SerializeToString(&hilogData); ProtoReader::BytesView hilogInfoData(reinterpret_cast(hilogData.data()), hilogData.size()); - htraceHiLogParser.Parse(hilogInfoData); + bool issplit = false; + htraceHiLogParser.Parse(hilogInfoData, issplit); auto seqFirst = stream_.traceDataCache_->GetConstHilogData().HilogLineSeqs()[0]; auto seqSecond = stream_.traceDataCache_->GetConstHilogData().HilogLineSeqs()[1]; @@ -278,7 +281,8 @@ HWTEST_F(HilogParserTest, ParseHilogInfoWithErrLevelHilogLine, TestSize.Level1) std::string hilogData = ""; hilogInfo->SerializeToString(&hilogData); ProtoReader::BytesView hilogInfoData(reinterpret_cast(hilogData.data()), hilogData.size()); - htraceHiLogParser.Parse(hilogInfoData); + bool issplit = false; + htraceHiLogParser.Parse(hilogInfoData, issplit); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_HILOG, STAT_EVENT_RECEIVED); EXPECT_TRUE(1 == eventCount); @@ -321,7 +325,8 @@ HWTEST_F(HilogParserTest, ParseHilogInfoLostHilogLine, TestSize.Level1) std::string hilogData = ""; hilogInfo->SerializeToString(&hilogData); ProtoReader::BytesView hilogInfoData(reinterpret_cast(hilogData.data()), hilogData.size()); - htraceHiLogParser.Parse(hilogInfoData); + bool issplit = false; + htraceHiLogParser.Parse(hilogInfoData, issplit); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_HILOG, STAT_EVENT_RECEIVED); EXPECT_TRUE(1 == eventCount); @@ -368,7 +373,8 @@ HWTEST_F(HilogParserTest, ParseHilogInfoHasDuplicateHilogLine, TestSize.Level1) std::string hilogData = ""; hilogInfo->SerializeToString(&hilogData); ProtoReader::BytesView hilogInfoData(reinterpret_cast(hilogData.data()), hilogData.size()); - htraceHiLogParser.Parse(hilogInfoData); + bool issplit = false; + htraceHiLogParser.Parse(hilogInfoData, issplit); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_HILOG, STAT_EVENT_RECEIVED); EXPECT_TRUE(2 == eventCount); @@ -395,7 +401,7 @@ HWTEST_F(HilogParserTest, ParseTxtHilogInfo, TestSize.Level1) std::unique_ptr buf = std::make_unique(readSize); memcpy_s(buf.get(), readSize, data, sizeof(data)); - EXPECT_TRUE(ta->ParseTraceDataSegment(std::move(buf), sizeof(data))); + EXPECT_TRUE(ta->ParseTraceDataSegment(std::move(buf), sizeof(data), 0, 1)); ta->WaitForParserEnd(); EXPECT_TRUE(ta->traceDataCache_->GetConstHilogData().HilogLineSeqs().size() == 1); @@ -427,7 +433,7 @@ HWTEST_F(HilogParserTest, ParseTxtHilogInfoWithTimeFormat, TestSize.Level1) std::unique_ptr buf = std::make_unique(readSize); memcpy_s(buf.get(), readSize, data, sizeof(data)); - EXPECT_TRUE(ta->ParseTraceDataSegment(std::move(buf), sizeof(data))); + EXPECT_TRUE(ta->ParseTraceDataSegment(std::move(buf), sizeof(data), 0, 1)); ta->WaitForParserEnd(); EXPECT_TRUE(ta->traceDataCache_->GetConstHilogData().HilogLineSeqs().size() == 5); diff --git a/trace_streamer/test/unittest/htrace_binder_event_test.cpp b/trace_streamer/test/unittest/htrace_binder_event_test.cpp index a64183d7..e2bd001d 100644 --- a/trace_streamer/test/unittest/htrace_binder_event_test.cpp +++ b/trace_streamer/test/unittest/htrace_binder_event_test.cpp @@ -89,7 +89,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReply, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool haveSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().ArgSetIdsData()[0] == 0); @@ -144,7 +145,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceive, TestSize. dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool haveSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstArgSetData().Size() == 7); @@ -171,7 +173,7 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceive, TestSize. ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 2); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().ArgSetIdsData()[0] == 0); @@ -227,7 +229,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceiveWithAlloc, dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool haveSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstArgSetData().Size() == 7); @@ -257,7 +260,7 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceiveWithAlloc, ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstArgSetData().Size() == 9); @@ -283,7 +286,7 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceiveWithAlloc, ProtoReader::BytesView cpuDetailBytesView3(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg3.protoData = cpuDetailBytesView3; - eventParser.ParseDataItem(dataSeg3, dataSeg3.clockId); + eventParser.ParseDataItem(dataSeg3, dataSeg3.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 2); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().ArgSetIdsData()[0] == 0); @@ -338,8 +341,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceiveNotmatch, T ProtoReader::BytesView cpuDetailBytesView(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg.protoData = cpuDetailBytesView; - - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool isSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); @@ -366,7 +369,7 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNeedReplyAndReceiveNotmatch, T ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().ArgSetIdsData()[0] == 0); @@ -420,7 +423,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterNoNeedReply, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool isSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); } @@ -473,7 +477,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderNoneedReplyAndReceivefilter, TestSiz dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool isSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); @@ -499,7 +504,7 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderNoneedReplyAndReceivefilter, TestSiz ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 2); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().ArgSetIdsData()[0] == 0); @@ -554,7 +559,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderNoneedReplyAndReceivefilterNotmatch, dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool isSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); @@ -581,7 +587,7 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderNoneedReplyAndReceivefilterNotmatch, ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().ArgSetIdsData()[0] == 0); @@ -635,7 +641,8 @@ HWTEST_F(HtraceBinderEventTest, BinderSenderfilterWrongReply, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool isSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, isSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstInternalSlicesData().Size() == 0); EXPECT_TRUE(stream_.traceDataCache_->GetConstArgSetData().Size() == 0); diff --git a/trace_streamer/test/unittest/htrace_cpu_detail_parser_test.cpp b/trace_streamer/test/unittest/htrace_cpu_detail_parser_test.cpp index 524657b4..0899a04e 100644 --- a/trace_streamer/test/unittest/htrace_cpu_detail_parser_test.cpp +++ b/trace_streamer/test/unittest/htrace_cpu_detail_parser_test.cpp @@ -63,7 +63,8 @@ HWTEST_F(HtraceCpuDetailParserTest, ParseCpudetaulNoEvents, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceCpuDetailParser htraceCpuDetailParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId); + bool haveSplit = false; + htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId, haveSplit); htraceCpuDetailParser.FilterAllEvents(); auto size = tracePacket.ftrace_cpu_detail_size(); auto eventSize = cpuDetail->event_size(); @@ -91,7 +92,8 @@ HWTEST_F(HtraceCpuDetailParserTest, ParseHtraceWithoutCpuDetailData, TestSize.Le cpuDetailStrMsg.size()); dataSeg.protoData = cpuDetailBytesView; HtraceCpuDetailParser htraceCpuDetailParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId); + bool haveSplit = false; + htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId, haveSplit); htraceCpuDetailParser.FilterAllEvents(); auto size = tracePacket.ftrace_cpu_detail_size(); auto eventSize = cpuDetail->event_size(); @@ -127,7 +129,8 @@ HWTEST_F(HtraceCpuDetailParserTest, ParseHtraceCpuDetailData, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceCpuDetailParser htraceCpuDetailParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId); + bool haveSplit = false; + htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId, haveSplit); htraceCpuDetailParser.FilterAllEvents(); auto size = tracePacket.ftrace_cpu_detail_size(); auto eventSize = cpuDetail->event_size(); @@ -175,7 +178,8 @@ HWTEST_F(HtraceCpuDetailParserTest, ParseMultipleCpuDetailData, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceCpuDetailParser htraceCpuDetailParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId); + bool haveSplit = false; + htraceCpuDetailParser.Parse(dataSeg, dataSeg.clockId, haveSplit); htraceCpuDetailParser.FilterAllEvents(); auto size = tracePacket.ftrace_cpu_detail_size(); auto eventSize = cpuDetail->event_size(); diff --git a/trace_streamer/test/unittest/htrace_event_parser_test.cpp b/trace_streamer/test/unittest/htrace_event_parser_test.cpp index 18b334a0..467eb875 100644 --- a/trace_streamer/test/unittest/htrace_event_parser_test.cpp +++ b/trace_streamer/test/unittest/htrace_event_parser_test.cpp @@ -89,7 +89,8 @@ HWTEST_F(HtraceEventParserTest, ParseSchedSwitchEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool haveSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, haveSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(1); auto realTimeStamp = stream_.traceDataCache_->GetConstSchedSliceData().TimeStampData()[0]; @@ -121,7 +122,8 @@ HWTEST_F(HtraceEventParserTest, ParseFtraceCpuDetailMsgHasNoEvent, TestSize.Leve dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_OTHER, STAT_EVENT_DATA_LOST); @@ -166,7 +168,8 @@ HWTEST_F(HtraceEventParserTest, ParseFtraceCpuDetailMsgOverwriteTrue, TestSize.L dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_OTHER, STAT_EVENT_DATA_LOST); EXPECT_TRUE(1 == eventCount); @@ -207,7 +210,8 @@ HWTEST_F(HtraceEventParserTest, ParseTaskRenameEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_TASK_RENAME, STAT_EVENT_RECEIVED); @@ -249,7 +253,8 @@ HWTEST_F(HtraceEventParserTest, ParseTaskNewtaskEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_TASK_NEWTASK, STAT_EVENT_RECEIVED); @@ -291,7 +296,8 @@ HWTEST_F(HtraceEventParserTest, ParseSchedWakeupEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_SCHED_WAKEUP, STAT_EVENT_RECEIVED); @@ -333,7 +339,8 @@ HWTEST_F(HtraceEventParserTest, ParseSchedWakingEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_SCHED_WAKING, STAT_EVENT_RECEIVED); @@ -373,7 +380,8 @@ HWTEST_F(HtraceEventParserTest, ParseCpuIdleEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CPU_IDLE, STAT_EVENT_RECEIVED); @@ -413,7 +421,8 @@ HWTEST_F(HtraceEventParserTest, ParseCpuFrequencyEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CPU_FREQUENCY, STAT_EVENT_RECEIVED); @@ -455,7 +464,8 @@ HWTEST_F(HtraceEventParserTest, ParseWorkqueueExecuteStartEvent, TestSize.Level1 dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_WORKQUEUE_EXECUTE_START, STAT_EVENT_RECEIVED); @@ -494,7 +504,8 @@ HWTEST_F(HtraceEventParserTest, ParseWorkqueueExecuteEndEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_WORKQUEUE_EXECUTE_END, STAT_EVENT_RECEIVED); @@ -535,7 +546,8 @@ HWTEST_F(HtraceEventParserTest, ParseClockDisableEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CLOCK_DISABLE, STAT_EVENT_RECEIVED); @@ -576,7 +588,8 @@ HWTEST_F(HtraceEventParserTest, ParseClockEnableEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CLOCK_ENABLE, STAT_EVENT_RECEIVED); @@ -617,7 +630,8 @@ HWTEST_F(HtraceEventParserTest, ParseClockSetRateEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CLOCK_SET_RATE, STAT_EVENT_RECEIVED); @@ -656,7 +670,8 @@ HWTEST_F(HtraceEventParserTest, ParseClkDisableEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CLK_DISABLE, STAT_EVENT_RECEIVED); @@ -695,7 +710,8 @@ HWTEST_F(HtraceEventParserTest, ParseClkEnableEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CLK_ENABLE, STAT_EVENT_RECEIVED); @@ -735,7 +751,8 @@ HWTEST_F(HtraceEventParserTest, ParseClkSetRateEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_CLK_SET_RATE, STAT_EVENT_RECEIVED); @@ -774,7 +791,8 @@ HWTEST_F(HtraceEventParserTest, ParseSysEnterEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_SYS_ENTRY, STAT_EVENT_RECEIVED); @@ -813,7 +831,8 @@ HWTEST_F(HtraceEventParserTest, ParseSystemExitEvent, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); auto eventCount = stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_SYS_EXIT, STAT_EVENT_RECEIVED); diff --git a/trace_streamer/test/unittest/htrace_irq_event_test.cpp b/trace_streamer/test/unittest/htrace_irq_event_test.cpp index 2a3b1f1e..7f3deaf1 100644 --- a/trace_streamer/test/unittest/htrace_irq_event_test.cpp +++ b/trace_streamer/test/unittest/htrace_irq_event_test.cpp @@ -79,7 +79,8 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEntryTest, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); eventParser.Clear(); @@ -122,7 +123,8 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEntryTestNotMatch, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); ts1 = 110; @@ -146,7 +148,7 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEntryTestNotMatch, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 2); @@ -195,7 +197,8 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerExitTestEmpty, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 0); auto eventCount = @@ -241,7 +244,8 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEnterAndExitTest, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); uint32_t ret = 1; // 1 for handled, else for unhandled @@ -267,7 +271,7 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEnterAndExitTest, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); @@ -312,7 +316,8 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEnterAndExitTestTwice, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); uint32_t ret = 1; // 1 for handled, else for unhandled @@ -340,7 +345,7 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEnterAndExitTestTwice, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstStatAndInfo().GetValue(TRACE_EVENT_IRQ_HANDLER_EXIT, @@ -369,7 +374,7 @@ HWTEST_F(HtraceIrqEventTest, IrqHandlerEnterAndExitTestTwice, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView3(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg3.protoData = cpuDetailBytesView3; - eventParser.ParseDataItem(dataSeg3, dataSeg3.clockId); + eventParser.ParseDataItem(dataSeg3, dataSeg3.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().ArgSetIdsData()[0] == 0); @@ -412,7 +417,8 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqEntryTest, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); eventParser.Clear(); @@ -454,7 +460,8 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqEntryNotMatch, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); ts1 = 150; @@ -478,7 +485,7 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqEntryNotMatch, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 2); EXPECT_TRUE( @@ -522,7 +529,8 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqExitEmptyTest, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 0); EXPECT_TRUE( @@ -566,7 +574,8 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqTest, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); @@ -591,7 +600,7 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqTest, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); eventParser.Clear(); @@ -633,7 +642,8 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqTestNotMatch, TestSize.Level1) dataSeg.protoData = cpuDetailBytesView; HtraceEventParser eventParser(stream_.traceDataCache_.get(), stream_.streamFilters_.get()); - eventParser.ParseDataItem(dataSeg, dataSeg.clockId); + bool hasSplit = false; + eventParser.ParseDataItem(dataSeg, dataSeg.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); eventParser.Clear(); @@ -659,7 +669,7 @@ HWTEST_F(HtraceIrqEventTest, SoftIrqTestNotMatch, TestSize.Level1) ProtoReader::BytesView cpuDetailBytesView2(reinterpret_cast(cpuDetailStrMsg.data()), cpuDetailStrMsg.size()); dataSeg2.protoData = cpuDetailBytesView2; - eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId); + eventParser.ParseDataItem(dataSeg2, dataSeg2.clockId, hasSplit); eventParser.FilterAllEvents(); EXPECT_TRUE(stream_.traceDataCache_->GetConstIrqData().Size() == 1); EXPECT_TRUE( diff --git a/trace_streamer/test/unittest/js_cpu_profiler_test.cpp b/trace_streamer/test/unittest/js_cpu_profiler_test.cpp index c4c48ec5..e490a2cd 100644 --- a/trace_streamer/test/unittest/js_cpu_profiler_test.cpp +++ b/trace_streamer/test/unittest/js_cpu_profiler_test.cpp @@ -87,14 +87,15 @@ HWTEST_F(JsCpuProfilerTest, cpuProfilerParserNodesbyArkTs, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto size = stream_.traceDataCache_->GetConstJsCpuProfilerNodeData().Size(); @@ -164,14 +165,15 @@ HWTEST_F(JsCpuProfilerTest, cpuProfilerParserSamplesbyArkTs, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto sampleFunctionId1 = stream_.traceDataCache_->GetConstJsCpuProfilerSampleData().FunctionIds()[0]; @@ -248,14 +250,15 @@ HWTEST_F(JsCpuProfilerTest, cpuProfilerParserNoProfilebyArkTs, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto size = stream_.traceDataCache_->GetConstJsCpuProfilerNodeData().Size(); diff --git a/trace_streamer/test/unittest/js_memory_test.cpp b/trace_streamer/test/unittest/js_memory_test.cpp index a6e97a46..013b4125 100644 --- a/trace_streamer/test/unittest/js_memory_test.cpp +++ b/trace_streamer/test/unittest/js_memory_test.cpp @@ -93,28 +93,29 @@ HWTEST_F(JsMemoryTest, snapshotParserNodesByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto size = stream_.traceDataCache_->GetConstJsHeapFilesData().Size(); @@ -184,28 +185,29 @@ HWTEST_F(JsMemoryTest, snapshotParserEdgesByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto edgeType = stream_.traceDataCache_->GetConstJsHeapEdgesData().Types()[0]; @@ -267,28 +269,29 @@ HWTEST_F(JsMemoryTest, timelineParserNodesByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto size = stream_.traceDataCache_->GetConstJsHeapFilesData().Size(); @@ -357,28 +360,29 @@ HWTEST_F(JsMemoryTest, timelineParserEdgesByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto edgeType = stream_.traceDataCache_->GetConstJsHeapEdgesData().Types()[0]; @@ -443,28 +447,29 @@ HWTEST_F(JsMemoryTest, timelineParserSamplesByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto timeStampUs = stream_.traceDataCache_->GetConstJsHeapSampleData().TimeStampUs()[0]; @@ -530,28 +535,29 @@ HWTEST_F(JsMemoryTest, timelineParserStringsByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto string = stream_.traceDataCache_->GetConstJsHeapStringData().Strings()[0]; @@ -610,28 +616,29 @@ HWTEST_F(JsMemoryTest, timelineParserTraceFuncInfoByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto functionId = stream_.traceDataCache_->GetConstJsHeapTraceFuncInfoData().FunctionIds()[0]; @@ -695,28 +702,29 @@ HWTEST_F(JsMemoryTest, timelineParserTraceTreeByJsmemory, TestSize.Level1) std::string strResult1 = ""; jsHeapResult1.SerializeToString(&strResult1); ProtoReader::BytesView tracePacket1(reinterpret_cast(strResult1.data()), strResult1.size()); - htraceJSMemoryParser.Parse(tracePacket1, 10000); + ProfilerPluginDataHeader profilerPluginData; + htraceJSMemoryParser.Parse(tracePacket1, 10000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult2; jsHeapResult2.set_result(result2); std::string strResult2 = ""; jsHeapResult2.SerializeToString(&strResult2); ProtoReader::BytesView tracePacket2(reinterpret_cast(strResult2.data()), strResult2.size()); - htraceJSMemoryParser.Parse(tracePacket2, 11000); + htraceJSMemoryParser.Parse(tracePacket2, 11000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult3; jsHeapResult3.set_result(result3); std::string strResult3 = ""; jsHeapResult3.SerializeToString(&strResult3); ProtoReader::BytesView tracePacket3(reinterpret_cast(strResult3.data()), strResult3.size()); - htraceJSMemoryParser.Parse(tracePacket3, 12000); + htraceJSMemoryParser.Parse(tracePacket3, 12000, 0, 0, profilerPluginData); ArkTSResult jsHeapResult4; jsHeapResult4.set_result(result4); std::string strResult4 = ""; jsHeapResult4.SerializeToString(&strResult4); ProtoReader::BytesView tracePacket4(reinterpret_cast(strResult4.data()), strResult4.size()); - htraceJSMemoryParser.Parse(tracePacket4, 13000); + htraceJSMemoryParser.Parse(tracePacket4, 13000, 0, 0, profilerPluginData); htraceJSMemoryParser.Finish(); auto functionInfoIndex = stream_.traceDataCache_->GetConstJsHeapTraceNodeData().FunctionInfoIndexs()[0]; diff --git a/trace_streamer/test/unittest/native_hook_parser_test.cpp b/trace_streamer/test/unittest/native_hook_parser_test.cpp index 4138ca6f..ed38ad01 100644 --- a/trace_streamer/test/unittest/native_hook_parser_test.cpp +++ b/trace_streamer/test/unittest/native_hook_parser_test.cpp @@ -391,7 +391,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithOutNativeHookData, TestSi dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); auto size = stream_.traceDataCache_->GetConstHilogData().Size(); EXPECT_FALSE(size); } @@ -437,8 +438,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithOneMalloc, TestSize.Level dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -547,8 +548,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithMultipleMalloc, TestSize. dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -652,8 +653,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithOneFree, TestSize.Level1) dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); auto size = stream_.traceDataCache_->GetConstNativeHookData().Size(); @@ -740,8 +741,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithMultipleFree, TestSize.Le dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -815,8 +816,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithOnePairsMallocAndFree, Te dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse Malloc event results @@ -922,8 +923,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithNotMatchMallocAndFree, Te dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse Malloc event results @@ -1018,8 +1019,8 @@ HWTEST_F(NativeHookParserTest, ParseTwoMallocAndFreeEventMatched, TestSize.Level dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse first Malloc event results @@ -1122,7 +1123,8 @@ HWTEST_F(NativeHookParserTest, ParseTwoMallocAndFreeEventPartialMatched, TestSiz dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse first Malloc event results @@ -1197,7 +1199,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithOneMmap, TestSize.Level1) dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -1270,7 +1273,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithOneMunmap, TestSize.Level dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); auto size = stream_.traceDataCache_->GetConstNativeHookData().Size(); @@ -1348,7 +1352,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithMultipleMmap, TestSize.Le dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -1456,7 +1461,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithMultipleMunmap, TestSize. dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); auto size = stream_.traceDataCache_->GetConstNativeHookData().Size(); @@ -1532,7 +1538,8 @@ HWTEST_F(NativeHookParserTest, ParseOnePairsMmapAndMunmapEvent, TestSize.Level1) dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -1639,7 +1646,8 @@ HWTEST_F(NativeHookParserTest, ParseNotMatchMmapAndMunmapEvent, TestSize.Level1) dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -1746,7 +1754,8 @@ HWTEST_F(NativeHookParserTest, ParseTwoPairsMatchedMmapAndMunmapEvent, TestSize. dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -1852,7 +1861,8 @@ HWTEST_F(NativeHookParserTest, ParsePartialMatchedMmapAndMunmapEvent, TestSize.L dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results @@ -1992,7 +2002,8 @@ HWTEST_F(NativeHookParserTest, ParseBatchNativeHookWithAllTypesEvents, TestSize. dataSeg.seg = std::make_shared(hookStrMsg); ProtoReader::BytesView hookBytesView(reinterpret_cast(hookStrMsg.data()), hookStrMsg.size()); dataSeg.protoData = hookBytesView; - htraceNativeHookParser.Parse(dataSeg); + bool hasSplit = false; + htraceNativeHookParser.Parse(dataSeg, hasSplit); htraceNativeHookParser.FinishParseNativeHookData(); // Verification parse NativeHook results diff --git a/trace_streamer/test/unittest/parser_pbreader_test.cpp b/trace_streamer/test/unittest/parser_pbreader_test.cpp index c8938f09..8855cb77 100644 --- a/trace_streamer/test/unittest/parser_pbreader_test.cpp +++ b/trace_streamer/test/unittest/parser_pbreader_test.cpp @@ -63,7 +63,7 @@ HWTEST_F(ParserPbreaderTest, HtracePbreaderParserTest, TestSize.Level1) TS_LOGD("Reading trace file over (errno: %d, %s)", errno, strerror(errno)); break; } - if (!ta->ParseTraceDataSegment(std::move(buf), rsize)) { + if (!ta->ParseTraceDataSegment(std::move(buf), rsize, 0, 1)) { break; }; } @@ -105,7 +105,7 @@ HWTEST_F(ParserPbreaderTest, BytraceParserTest, TestSize.Level1) TS_LOGD("Reading trace file failed (errno: %d, %s)", errno, strerror(errno)); break; } - if (!ta->ParseTraceDataSegment(std::move(buf), rsize)) { + if (!ta->ParseTraceDataSegment(std::move(buf), rsize, 0, 1)) { break; }; } @@ -148,7 +148,7 @@ HWTEST_F(ParserPbreaderTest, HtraceAndPerfParserTest, TestSize.Level1) TS_LOGD("Reading trace file over (errno: %d, %s)", errno, strerror(errno)); break; } - if (!ta->ParseTraceDataSegment(std::move(buf), rsize)) { + if (!ta->ParseTraceDataSegment(std::move(buf), rsize, 0, 1)) { break; }; } @@ -191,7 +191,7 @@ HWTEST_F(ParserPbreaderTest, HtraceAndEbpfParserTest, TestSize.Level1) TS_LOGD("Reading trace file over (errno: %d, %s)", errno, strerror(errno)); break; } - if (!ta->ParseTraceDataSegment(std::move(buf), rsize)) { + if (!ta->ParseTraceDataSegment(std::move(buf), rsize, 0, 1)) { break; }; } diff --git a/trace_streamer/test/unittest/query_metrics_test.cpp b/trace_streamer/test/unittest/query_metrics_test.cpp index 29b7f1da..943e5633 100644 --- a/trace_streamer/test/unittest/query_metrics_test.cpp +++ b/trace_streamer/test/unittest/query_metrics_test.cpp @@ -56,7 +56,7 @@ void ParseTraceFile(TraceStreamerSelector& ts) break; } - if (!ts.ParseTraceDataSegment(std::move(buf), rsize)) { + if (!ts.ParseTraceDataSegment(std::move(buf), rsize, 0, 1)) { break; } } -- Gitee From 2843e2a6a0b68c8ce045fc94f0bdcdbc8df1885c Mon Sep 17 00:00:00 2001 From: zhangzepeng Date: Sat, 7 Oct 2023 09:55:40 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=A4=A7=E6=96=87=E4=BB=B6=E5=88=87?= =?UTF-8?q?=E5=89=B2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangzepeng --- ide/src/base-ui/menu/LitMainMenuItem.ts | 49 +- ide/src/command/CmdConstant.ts | 3 + ide/src/doc/md/quickstart_hilog.md | 22 + ide/src/doc/quickstart_hilog.html | 887 ++++++++++++++++++ ide/src/figures/Hilog/hilogconfig.jpg | Bin 0 -> 41510 bytes ide/src/figures/Hilog/hilogrow.jpg | Bin 0 -> 15900 bytes ide/src/figures/Hilog/hilogsummarytab.jpg | Bin 0 -> 34026 bytes ide/src/figures/Hilog/hilogtab.jpg | Bin 0 -> 228077 bytes .../OperationSkills/Tababsolutetime.jpg | Bin 0 -> 37792 bytes .../OperationSkills/Tabcallstackskip.jpg | Bin 0 -> 55053 bytes ide/src/figures/OperationSkills/Tabdrag.jpg | Bin 0 -> 84327 bytes .../figures/OperationSkills/Taboneclick.jpg | Bin 0 -> 76021 bytes ide/src/figures/OperationSkills/Tabskill.jpg | Bin 0 -> 56483 bytes .../OperationSkills/Tabskillcalltack.jpg | Bin 0 -> 88830 bytes .../figures/OperationSkills/Tabskillfold.jpg | Bin 0 -> 75793 bytes .../OperationSkills/Tabskilltemple.jpg | Bin 0 -> 136725 bytes .../OperationSkills/collectskilldrag.jpg | Bin 0 -> 153430 bytes .../figures/OperationSkills/collectskillg.jpg | Bin 0 -> 115704 bytes .../figures/OperationSkills/colorchoose.jpg | Bin 0 -> 145589 bytes .../figures/OperationSkills/colorcontrast.jpg | Bin 0 -> 22734 bytes .../figures/OperationSkills/rowskillflag.jpg | Bin 0 -> 106865 bytes .../figures/OperationSkills/rowskillinput.jpg | Bin 0 -> 32307 bytes ide/src/figures/OperationSkills/rowskillm.jpg | Bin 0 -> 199133 bytes ide/src/figures/OperationSkills/rowskilon.jpg | Bin 0 -> 220034 bytes .../figures/OperationSkills/schedpritab.jpg | Bin 0 -> 82232 bytes .../figures/OperationSkills/searchskill.jpg | Bin 0 -> 11786 bytes .../figures/OperationSkills/shellconfig.jpg | Bin 0 -> 150390 bytes ide/src/figures/OperationSkills/sqlselect.jpg | Bin 0 -> 145876 bytes .../figures/OperationSkills/threadtree.jpg | Bin 0 -> 112832 bytes ide/src/figures/OperationSkills/tracestop.jpg | Bin 0 -> 89063 bytes ide/src/img/next.png | Bin 0 -> 276 bytes ide/src/img/preview.png | Bin 0 -> 282 bytes ide/src/trace/SpApplication.ts | 593 +++++++++++- ide/src/trace/component/SpQuerySQL.ts | 3 + ide/src/trace/component/SpRecordTrace.ts | 371 ++++++-- ide/src/trace/component/SpSystemTrace.ts | 33 +- .../trace/component/chart/SpFrameTimeChart.ts | 2 + ide/src/trace/component/setting/SpArkTs.ts | 14 + .../trace/component/setting/SpFileSystem.ts | 15 + .../trace/component/setting/SpRecordPerf.ts | 19 +- .../component/setting/SpRecordSetting.ts | 139 ++- .../setting/bean/ProfilerServiceTypes.ts | 9 +- ide/src/trace/component/trace/SpChartList.ts | 17 +- .../trace/component/trace/base/TraceRow.ts | 32 +- .../trace/component/trace/search/Search.ts | 5 +- .../component/trace/sheet/gpu/TabPaneGraph.ts | 110 +++ .../trace/sheet/smaps/TabPaneSmapsSample.ts | 200 ++++ .../vmtracker/TabPaneGpuResourceVmTracker.ts | 84 ++ ide/src/trace/database/IndexedDBHelp.ts | 34 +- ide/src/trace/database/LongTraceDBUtils.ts | 43 + ide/src/trace/database/TraceWorker.ts | 406 ++++++++ 51 files changed, 2918 insertions(+), 172 deletions(-) create mode 100644 ide/src/doc/md/quickstart_hilog.md create mode 100644 ide/src/doc/quickstart_hilog.html create mode 100644 ide/src/figures/Hilog/hilogconfig.jpg create mode 100644 ide/src/figures/Hilog/hilogrow.jpg create mode 100644 ide/src/figures/Hilog/hilogsummarytab.jpg create mode 100644 ide/src/figures/Hilog/hilogtab.jpg create mode 100644 ide/src/figures/OperationSkills/Tababsolutetime.jpg create mode 100644 ide/src/figures/OperationSkills/Tabcallstackskip.jpg create mode 100644 ide/src/figures/OperationSkills/Tabdrag.jpg create mode 100644 ide/src/figures/OperationSkills/Taboneclick.jpg create mode 100644 ide/src/figures/OperationSkills/Tabskill.jpg create mode 100644 ide/src/figures/OperationSkills/Tabskillcalltack.jpg create mode 100644 ide/src/figures/OperationSkills/Tabskillfold.jpg create mode 100644 ide/src/figures/OperationSkills/Tabskilltemple.jpg create mode 100644 ide/src/figures/OperationSkills/collectskilldrag.jpg create mode 100644 ide/src/figures/OperationSkills/collectskillg.jpg create mode 100644 ide/src/figures/OperationSkills/colorchoose.jpg create mode 100644 ide/src/figures/OperationSkills/colorcontrast.jpg create mode 100644 ide/src/figures/OperationSkills/rowskillflag.jpg create mode 100644 ide/src/figures/OperationSkills/rowskillinput.jpg create mode 100644 ide/src/figures/OperationSkills/rowskillm.jpg create mode 100644 ide/src/figures/OperationSkills/rowskilon.jpg create mode 100644 ide/src/figures/OperationSkills/schedpritab.jpg create mode 100644 ide/src/figures/OperationSkills/searchskill.jpg create mode 100644 ide/src/figures/OperationSkills/shellconfig.jpg create mode 100644 ide/src/figures/OperationSkills/sqlselect.jpg create mode 100644 ide/src/figures/OperationSkills/threadtree.jpg create mode 100644 ide/src/figures/OperationSkills/tracestop.jpg create mode 100644 ide/src/img/next.png create mode 100644 ide/src/img/preview.png create mode 100644 ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts create mode 100644 ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts create mode 100644 ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts create mode 100644 ide/src/trace/database/LongTraceDBUtils.ts diff --git a/ide/src/base-ui/menu/LitMainMenuItem.ts b/ide/src/base-ui/menu/LitMainMenuItem.ts index cb849d81..d6b2e23b 100644 --- a/ide/src/base-ui/menu/LitMainMenuItem.ts +++ b/ide/src/base-ui/menu/LitMainMenuItem.ts @@ -79,24 +79,36 @@ export class LitMainMenuItem extends BaseElement { connectedCallback() { if (this.hasAttribute('file')) { if (this.fileEL) { - this.fileEL.addEventListener('change', () => { + this.fileEL!.addEventListener('change', (event) => { let files = this.fileEL!.files; if (files && files.length > 0) { - this.dispatchEvent( - new CustomEvent('file-change', { - // @ts-ignore - target: this, - detail: files[0], - }) - ); + if (this.titleEl!.textContent!.includes('long trace')) { + this.dispatchEvent( + new CustomEvent('file-change', { + // @ts-ignore + target: this, + // @ts-ignore + detail: event.target!.files, + }) + ); + } else { + this.dispatchEvent( + new CustomEvent('file-change', { + // @ts-ignore + target: this, + detail: files[0], + }) + ); + } if (this.fileEL) this.fileEL.value = ''; + if (this.fileEL) {this.fileEL.value = ''} } }); } + this.addEventListener('click', (e) => { + e.stopPropagation(); + }); } - this.addEventListener('click', (e) => { - e.stopPropagation(); - }); } initHtml(): string { @@ -177,7 +189,20 @@ export class LitMainMenuItem extends BaseElement { attributeChangedCallback(name: string, oldValue: string, newValue: string) { switch (name) { case 'title': - if (this.titleEl) this.titleEl.textContent = newValue; + if (this.titleEl) { + this.titleEl.textContent = newValue; + if (newValue.includes('long trace')) { + this.fileEL!.setAttribute('multiple', ''); + this.fileEL!.setAttribute('webkitdirectory', ''); + this.fileEL!.setAttribute('directory', ''); + } else { + if (this.fileEL!.hasAttribute('multiple')) { + this.fileEL!.removeAttribute('multiple'); + this.fileEL!.removeAttribute('webkitdirectory'); + this.fileEL!.removeAttribute('directory'); + } + } + } break; case 'icon': if (this.iconEl) this.iconEl.setAttribute('name', newValue); diff --git a/ide/src/command/CmdConstant.ts b/ide/src/command/CmdConstant.ts index ca7aa347..bee04902 100644 --- a/ide/src/command/CmdConstant.ts +++ b/ide/src/command/CmdConstant.ts @@ -40,4 +40,7 @@ export class CmdConstant { static CMD_GET_VERSION_DEVICES = 'hdc_std -t {0} shell param get const.product.software.version'; static CMD_GET_DEBUG_PROCESS_DEVICES = `hdc_std -t {0} shell netstat -anp |grep Panda |grep -v grep | sed \'s/.* \\([0-9]*\\)\\/.*/\\1/\' |xargs -r ps -A -opid,cmd`; + static CMD_CLEAR_LONG_FOLD = 'hdc_std shell rm -rf '; + static CMD_MKDIR_LONG_FOLD = 'hdc_std shell mkdir '; + static CMD_GET_LONG_FILES = 'hdc_std shell ls '; } diff --git a/ide/src/doc/md/quickstart_hilog.md b/ide/src/doc/md/quickstart_hilog.md new file mode 100644 index 00000000..622beb5d --- /dev/null +++ b/ide/src/doc/md/quickstart_hilog.md @@ -0,0 +1,22 @@ +# 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 diff --git a/ide/src/doc/quickstart_hilog.html b/ide/src/doc/quickstart_hilog.html new file mode 100644 index 00000000..7c9528d1 --- /dev/null +++ b/ide/src/doc/quickstart_hilog.html @@ -0,0 +1,887 @@ + + + + + quickstart_hilog + + + + + + +
+

Hilog抓取和展示说明

+ +

Hilog分析模块主要展示系统日志信息。

+

Hilog的抓取

+ +

Hilog的抓取配置参数

+ +

+ 打开Hilog开关抓取taskpool数据。
+ GitHub Logo +

+

Hilog展示说明

+ +

+ 将抓取的hilog文件导入到smartperf中,查看日志信息。
+ GitHub Logo +

+

Hilog泳道图的框选功能

+ +

+ 框选Hilog的泳道图,展示Hilog的tab页,Log Level可以选择日志级别,也能根据Tag,Process name,Message去搜索。
+ GitHub Logo +

+
    +
  • +
    +Timestamp: 时间戳信息。
    +
    +
  • +
  • +
    +Time: 日志的显示时间。
    +
    +
  • +
  • +
    +Level:日志级别。
    +
    +
  • +
  • +
    +Tag:日志的tag。
    +
    +
  • +
  • +
    +Process name:进程名。
    +
    +
  • +
  • +
    +Message:日志具体信息。
    +
    +
  • +
+

+ 框选Hilog的泳道图,展示Summary的tab页。
+ GitHub Logo +

+
    +
  • +
    +Level/Process/Tag/Message: 根据类别显示日志。
    +
    +
  • +
  • +
    +Count: 各级别日志的条数。
    +
    +
  • +
+
+ + + + diff --git a/ide/src/figures/Hilog/hilogconfig.jpg b/ide/src/figures/Hilog/hilogconfig.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96a0a58606118aa2badd0169ead963b3ddb0c02d GIT binary patch literal 41510 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 QmK*=?gc!))wafAU1D|M0LjV8( literal 0 HcmV?d00001 diff --git a/ide/src/figures/Hilog/hilogsummarytab.jpg b/ide/src/figures/Hilog/hilogsummarytab.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33c47043b3efd4138c59671d5664ab779ed27030 GIT binary patch literal 34026 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 E4_a2J5&!@I literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/Tabcallstackskip.jpg b/ide/src/figures/OperationSkills/Tabcallstackskip.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d72f2452eba4dc5f583e48ad9fda1f44fb326f39 GIT binary patch literal 55053 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/Tabdrag.jpg b/ide/src/figures/OperationSkills/Tabdrag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b3ce614241db915e32826a81f312440b1bbd558 GIT binary patch literal 84327 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 #up8PU_?SrUJ!u{%^H$Vqj?1wrNgn8gL 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 G8Tt>2z7+%j literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/Taboneclick.jpg b/ide/src/figures/OperationSkills/Taboneclick.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b664908616f080dd48688b6cf9de30e31ca88ba7 GIT binary patch literal 76021 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/Tabskillcalltack.jpg b/ide/src/figures/OperationSkills/Tabskillcalltack.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19941721f7a1c5c573708bfe5da2ed7cf9454da2 GIT binary patch literal 88830 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

=f6d#y*K87gzPNni5oqbdJbvq9?uLEh+sD&> zc5D=L+flBotMG=I%<+WGjY1nkxt#ihO8na9s*U=)m-+yO5ko)Ut>`vWsD}d?8j&_*&*;(w-ZC%_ZB~KSk{Q3F5=q8rI~` zGFehv*Me>3^-CZW@qZ@lI)g4$1ohzB;tl+hwMrlSbn)fQfC4mD*QkGN7wg_6p7sSh zYOjf2g>h04VF}LO^45Z|d7tCw!BdIGFJC4^CKgup^RIV$uHpQ}Mf|&%_Z*9?i0eQ{ zV7QMuYocwT9ic#6uUVHb#p#g6O$~=)gS>9J2V9~PdNKO~Sc3aouH2oxl2h(UaIa}`jttGx&L z^Muhz;*!CIhpfJJ$=k6OH4mM}OS!e4_n< z`t#Yr?Ip)3of*^YdmE+uvC)&bPH1-MLCKJ(ZV50fW_eyhx_BV7kP%zpBwSe%#QUu5 z=`(|uD-VTxzsTU_Zz?;X$0xjED1)9M`KX^s_fFO2M^)qp7{5a3lJ+LH5xc^=zikw> zk+AlEAHDb3K8#0O>Y;Sjh7YZrQh-Eo<**BUk=Rbkz$_P=yP)s5m|&ahjeaH5vnwN? zKO##zcc-39op(zfA=rtb5Y|7?n5yUF-_hC+L&d>h+>z4pRea4x=NpbH3N zMfMtIz(S^?bJ=8Bz}usyHx~2uDQLw)Qu+ENB+-^uX? zB|b(r)=5f7if=TmN?12kyO_NhXS36Bjjf5GU=d-Y{e`p_%fFaR-2;!^4;J_-1qnb` z9Ai5}z%%9^e-SC|cruSh#O;+IMz+Zr$|@0E-CxRUudFtjH?%~o-b>n07>9zx&}3~m znKkH{B74E}!RH3scAvGjd5gRJan1I1rYq)hZyOAgpWc5-(Ii-S+om5G)VZcKg$!-0P07EcqlZsJZ1un%46T+NiF=HyLvaG7 z8D{o4PVIghZ_NEgamC6m|LiS}@*9Q@e>hFpm81N%{{=1SL?Sk1SW}wi3zWGON3VvU zA$4uLDxBn0`^2?S%5l$!dy`HdwXI$eabP7YWaMm1jcdU0hR@%03!Q7fI{SNV$X^2W z@htp5VM=W#s{WLr&PiBZDl|;`ZnphH@2U+Gt(lk9B<{LhHS4W?hMr10DLdxBeNuFa zm@JJnoclde*=U}wSiJb~=KiV+yw$vo`bL7*xONURfY`VQwG5}_nbOO@ILb=s{1Kl_jfQ$pea`sQ zW=>1xpFzu)j%7JXQ-M6)Dp{IapX?XkVFU#+4B6Bs77UQ>nncEJ|0ZOl1fG94KO9sq z*)6vs?O_Ski*!c#%Dr2kwr{w&&y8Zjh*&#|4O6)~0edf@j*bB?DK5-rOUBQVq#J$K z8y`K@^I#ZPJ2wqo3Rw_o#}12vb<=eR#E`y;B+_YxbUCpj3H;-IwEZ%XypbX+Qwx4GpEd`!!lLPx*e9#<%b?##kQu=oHl1;OOL`nXbu!x(s`nilX_H z8(%+P14RWL#NrEeUnYAWoLl=Ake2q)eOVRW0rR%DF+h!0O6)ndJ>jkVxQ(u$zGhHI z%X=H~)B8O-E4epeS1sVf;xVkiXbf#^59%unsl^&qCPkW>DCj)6arkh*d0~*+wMS}I z8eaD>@yC+cK6CDhqp}WrhsRP?pL|v|ofiOk6=Ed{B>@2MB?9$YqRccpj{n@SrNdF# zqhi~)Y+$BcN3<)Citw)B71kAPF7d>4UE|a{g?I^~l_1z#9Q4}A!&~hjZo3|e-W8*D~4LAcESgS`@!kM5BA;irkTo+SwfpdzEIIRQ}<(Ee}3_@Q)v`^ zOA{xMsjEA^K|{XU)B?t4h!P`ro=4Nj$6VgaoLlL7sN&~MT27&^wCv5FZ3{2IiU@mm zV30H|AUs>&;+<3sLoLxEL}uR+n~M=$Uxn!5|8d7_k8uac7p3+r*tVji=>Z!6H{_mdHY zAb!+MXVb+h>%v)SO$HzBC3e^vVE}5!7O)FbvD;o7FTo3EgTD9G;x=ii95?alWZne{U;q-JhGd;OOO76GU|&O3 zZz7aIm~xIA1)hG6z^t9v4iyun@X7kCat<+jr+MFPk@b$e7fCMI@y7kxi|hNYOBni8 zDN*HiqF7GN<73cF!9^qif#;Vdw~kbGl|Owxee!`{xJn5&(!P1|w9a)%C@EgI{~zm% z#QmSxT)NwfeybBVZ+z`{72PCzOUMw>&J)k8D89ULg`(bZ*CgyHhC0WPZj6ZsI%G<0%iS*+QQ6gH*GHv(3GM#C4R1EHeszTj51s z*ok|kc|fqjC2L3a;HFQvZgE0)r5!<^^HzlBXdQH=>uyFUZ;Y0`o#w?MKqV*)LvugF zooY=akLyCEMjX9ej6Y<%zJLa`F^j;zk9$8=jso`k=ghZ$#c+r_!g}OgHz6cejY2LI zWMgR4qA)GE70H0(_d>#wO*A7ks)7}+yBCLwr`HN){4lHuyjr+Y57(Y>-1+QjmQ#!O z%_qRnHALFz0Anvn5j!_dG(l}&{Vz%;e2#tFoqqXr?T?V#n%_6wCz~?OgF>aM#xZ7v7Z?|E}j;?I8s-OXbHeQ1m!|O**{nU&af`+Bn4THqDA?$L- zPHEN?kefLYtnT~*SpWFISs?MPcA3SCkBhdoaR&|sj*zhDeasfTgbyg021?PyPvb*r z3u$ccwS}{}#Lc^(c~LGp=gnvcUFPzYwpYd3|S9x8-1j-^qlTToqL z@VhfFclX|9bO;I&^L^{7f0};(P!$#%m-b8;J0;&~cl}~)YaCO*{g}Z>$yi&s`0+U0 zvS}u(MV>szbXY)!C5~5D;Q3wRx4T+jp9n_y7LZrPcq$*l_=T`H zn7qVJ3Ud54@upILjgI(FH;tzB${)?ee+1-YRhL5sI20fcKG=bW+#ic!eTQ zZo+BIPwTZk^?P`1+}q+s&~GbtFr*tYpwNzj2NG^^ErZVPJqT?Ii9F(bPFlfMrbuY> zn`!2N$T3kb_Y`}VRflUu_si(##p!?7LHk+XZ7FP<+~2Xan z*wZ|g8bAZ~LV_U-gO!W*)kW5mb;o3{$F?- z;Nxq8>{I~uZ8R&VaEjD?sR|olV}2gAQ&fsxyilI^ zmk(CxblybA0gTKCr}u?C$GQ6Bl`K>((K(-{=d6J;gX-LqIIkqzDhwrgf5t)^LYV+~ zC=&iJRfnT(7sF^$<2e(cJ~tD&w?LPc|(L%};i7sC;ApEhcs zl4xsgVnf?72cb?|>TiLi48n%8@?*!Ojv||ijU>N5`6Iv-TK)e)fGIPzw^eBA^u-5J zb#?2nMU5@+I6BdapbelI{547Fa~v96LM!*sD=`GsWJ@{2%&$|$MgDuAUhVPmU=oiSxj$KxOP%%f_6K);CPoCkl0BH!l8)IpLW#G@t-mGcy1_;cqKq zNXTDXZMry+B+S~};pZ{+Xls^+?WtQHkL>mjc>U=0HhX``7>b& z7pO+6R}%5NK(OY$n@cjvegGwQ>|{s0diRNq@q0-t->>h_R71<4OgxRMU~dd2$W6E} zl(HBttDeS$jB3ff?X_HSZp-iv3N-?EB}(m@_wnfU1Mnf z>-@dm`nm$*sQQE*J!#RtKl!b@hWPhOr+-^@xr&K)CD`nLZbDy5vgLF?!jty*yjNe^J!OPHS)p}(z24`H{kGMS8U zhR61TV1;u-z3zL>pDk@64-x|J$n8xL(Wt37yAQ_l{E#u_N7Z&9UFASJI_7yuMl@iS zKsuR6;s-!!i#&8c{_2cg^UBq20^|=VbXm~LhW&7N%Ma)%e2|Ycx^>)3a z@jv@)QD}QbYEV!3vfPAm2UZ*D*C=x z(#V~CM+m1Duu98Dj>r&N&jtzEeB*zXdfvN>_RR%a1Y9<29niWN^DWQ*LbXb5wL+@7 z3D)ByTDhLeL(=t>Xx1OJk(NQ*Jj;W5cBMDzZ54fi+7jo9@p>~JtkM+B+!8o1@~B1x zYB52afjao)DNjH|K?mv=j(pEoNxAtcN-*5Jpk{yU;+%0A5{NYOqm)bn?R1LDM0`^=?5Y4aJiPR-{dl5*|HY21PE#HQ} z&X|$im}2jx5K}9ASjx-$3=)4StH)`X){69E7)LrI6@KNOLUszi4094&^Jx2zkkr$o z*hS5_l3A*f<7|8-!9HY}77gQ6GRdrW(6-jY=>ov~_o3%!6kMPjtdvs@ zh7iuOUqne9SGGQWsLraQv9vG2qcg|`e5ykbqb_9=OuvwGJ|e5p@~9ahxAJ`4Ri5F? zAKPzUV~cgpG%T(36R>%=$gi#m6o4th(mKcs>(W5wW|e{T9AJvKa22xMH+m5%rE8f5 zS4}j;dv=B*JtW!u%_O%q4?e$Dxtm!Q-5bpY`Pw|$0IjC>G^dfX-bxeb73qf_P}pnH zZ_f9nF(B`H=sIOeXMw#`52z0etr@XsPr|O+=n2ssI)8yo-5ZTowsGt^0#cni#-tixo(AK&H>9`}t;svlCfS6KR&dl4ysEO*(09g; zJcCR{y6e;Q(TTK0(^pk(0EiLudUumhV8gJFXbC@5_vWY_@%hphkatb7^>(}Cp?p^? z%^jJ=4AZ>1=<8wK&=dEv-LONgxvWf?5tZn!v~vbPB2IxIykRN4m_(iv-o`Cfc4Jy7$v>eL+(-THQM~9EfRJHc~2He5G4` zJzTGMF8)K*f5IyAK<`%&N-qelGnr}nVMi(R0;REM^V;`c^a+gjZ5vsaeMwH3Bpbd> zQ*cr|a)9-?P#>@jH=E3ohZ<2BplyhX_KLEw759@=pAs{7*SmJRb}2d2N~WEkp(NRg@2eiiP$S1p#vv``-(aR zrC$A@t$k`HHQ;o%w)^T;%_`014l6atYatYfijAMiQer(x2FjFVb-u>z+*h^B)GlRy zX5IYL62DUmYos(M?KR%^psJ2!$|PnuGUKc_CT^oA-q`}x3~qCgF`3_P?XhP?TdM6I z_sNZ$)T}*ziL2rx%o9m6r6d&bw0xA{8aJo zcigL$*Lbi}+IJu|jzeID%@d;jld)?D8kYecI%vLcGF-D{YCCD=j5+z8QMUODostMY zvn>o`h`tN>Ar!EvMba$(2;V1RHgBBq#h=i;;xc~D#_yS6-uuiYYVH2#H-qaw`*2oFwx0^SgWjVFGVYnYG$AOJ=vuj(S&zOiJAs@0PqS7J2vJ)y(gPgFF5 zroaoo`~XV>+oSoZYBj2|b8-OCwXaVqJ63L5nrZPf-%Glw2iBfrR$YTsc02d#-8Hnq z%t^cpe#r<-8khK z6Lu;0_p5xbwcF6|cUKR><9ew0&*tM%T^0=u&R&!Pw&*8u^UrTRvWkE z$*gfdCf_%`7+}+Tt0hmcokbqffFnOxPi724zwgG^(B9sc%XUH7QAt=#O@=2{HoyL0 zMdin^!o<}H55kC}_J(hTfKuvzTe0*5y;?XP@^Su(bii=n`0KEOb2d`_*A8)i9}5@j zlC6nWT6yt7QR;&xwTMP_E>=J@#~!#Ee-A{hDV{cp#3W(2te5szCy89o_j?ik$wgQA zQ*g06A?r*<;9ifQKqQq9Vck_*c-@CoPlvGGIBmck17i$-;sk?RyFqHYoqLy04ebZc z>~-jy`n<*-(M#_RV72q4S>8Qf82Y9Ru6{hUN)NZA?cP`Mo9TNZ{;K&g4mRKR>}|A@ zoa3GA355<|-8(IrGCKB>hw*r5$ktv46UYg$HC*id_B#&aTvim>u2z}v%>JO|Bde!n zV4Oo9TGVGOAY-O*WCj>!GTmT5FMt&Fz@^_}U?`}J{c>I2T zckFnN?dysR=((v8&#M;rrNoE&}O$POR={h~OWtLlTF~A*cZea%W>4_D|o($8r@;hX=>w2@ys;B|BHTf5Y zy~ap>mL`XEeS((tbc9>X^T?BW(eIL$_Z{s%L?k3T?S4t@JESEMq0__O_9F~ z6kKLHGJKRwn}IQACKHcz$SIk`6B+T z(Gb%dycYc-K;A%om4s!@^qsp|pEA!SYQFlG2GlJYnf*gVLpbLQY{Gu=kzAHHxZOAq zal7-U!P@H{K&z_J$6Cl%2AYZ;l-6%~^fF(ZF`mRuKt-pd_1#ph~r zJrcv3$Jd33W9g&h$Q5=i<_X5gd?O-$GX1v|W3j05$~1M`dj`L)Xi{LM|Nr??du;#K zz^So>szPI33li5#|L5Kqbf~^>$r+6|26Yv}lwN`W-sw#ApIaJR()K3$w-xS8v{aMT zcoBjT;KS#L()~03c|N$s9I2=ycyDyU=n-PLD?a zK@*yP{FZ3U+?;Gx&-bq}6Vg8)^Gr*T;!OBX{eO#*kpDqmB9&k90t5Y{^BW-)ud<$f z8?aw8@!2arRF14PYl$5E)xd z|NMo)pQoA9(f9s@h`_&yVAFq+h6ytu$tqwEb`Csg6ollsJW}7+#dhJeZu}Q%UML{H z=&7uDlE(x;YaAPztzCPgt?_i8^W$#fUqqC2=6=z+|BJmhkB72*|G>38sVFTfOPLDU zLdsIYBq2!?LRp%2Aqh!{yHY9AWS4ESWv8-l>53>{}62*^MR3SZ2BVU8CKn=ks~K z&tJdS>-YO(UgLJpeeQFv^S;(|&UIlsM-BrISTMXr7?}-N$b$99j$hsyP}t@afH-$2 zaZQhT^)oH9$YU!CA({u9deXkN^yPs=#`&I#5=+==bPU~!G0^^X3;i6>YO+Q#CIq_e zVWtNw%V{k*!Y*)`ss+m}25NjxujHlVBgo&F=XNZktbM3UGMnMt4=E;C8P(FiiO6r$ zY$E&yXZY3`Qg(qRxCHg8AZWY|O9vJCb`EaW`sTDvT{sA{w=x}Gxg8nwC(qnD?s^VA z7d>ZMVy*dx*EOk>dLblsCN#RV#tYrE45hJLkl3+?>IJ7dErxJkAJV5USN`kT0rj+* zdl=eB?4zW)sL{#y_4-|4AyMTQ5oI9X+>O^>0!sCF;e z&#&U?c8tFV;t*BZ!f<;7tZWF=#}{seKBu7h$Y7GewO{!^-WdOyzp%i=@@JQzo8=Pd z0s#e2b)NrDz{44i?1@hU$z#i(!o0ZCnq&V%`DJ*T-Joot2d+caR>8ZW9=MJUZh8XL zvD*QUUoh)ysI$P)!dGodmOO=>JdiI!ivts^+3^>dsB(`ZWGT-qG33-oCJ2Xq66jj0aDf!qQgE6*t`@OQnift5&;#^yu}>i{BC#{@Nm96^u9c&m%+m zDY`eKRQ>c6tg2EzkRB%9ksbGksaAgB55S)_CbW&;S@fT3BGPiPlnf$mWugx>KOe`+ zfw))p#V^xsfVW|_+mPsvs)1vFyc2#R2UZEoO8KghVw1dgF9C(IkplIVkl4T1nz$i( z>E{oJe($L#I9c@0duE$48TU<68OxVZwHA{{$HA<{gA5W%Iq-T83r3z#Ue^BZ891ut zLCj17_>{(%zpm|yr~NXS9GaJ$lQ@6ti~p*)*7|g>ZZ<7>_8b4Z2|I^r;t6@XTuN^P zFiOCHCDK;wr+nR?(Ddu%2u3~CHnM95d+)monMey_xPvo!6%o{#GpZ;>?O?rTrC4`> z5j36#w2fTq3bE_BCeow1>?pZf%{gPY9^DrXO%Q1tAY;pH63;|JV1zCII(|*duNwPy zbdIvYEmkDa!2@EY&B;I9#l&B20ST8xWe>!uGG_{YJcv-sX_=Z9(DNbb0TOM2-nZ%b z+GzuYE5tK<-$wm1xSzbRxr#^6c(*^*P!P5?O2fGT_ZiQYWFJ1K*C5g#kd43fHR`E? zqb(>rA7?IF5An5r8u*?Rw4i2Oc8)OeeXjjf;R@NV8LTw2N;)X!}8v<5@janlQ?C$9X!r`CSQ zDPs(vlT`v8=2kKP@9dm-V~GWhTS2}5&Z+&Tq`neVFU#AJW1zqbED-SROkrSWqbMjA zwgo{{Z<)b2>*m{2fe9NARXs1kk8$Tf^A>Q*_(x!4|FgK@&Qqfg8b`kHy-{nfPjWP=wdsx6`5WnLjsD?YPL8qcAZ*7;$D#HS-OR={46Q*Wum6ytgiyaQAJADYm{ zq2yY}n2+U;b#^EKUEb8fbb_=WbChwyi->(G(mf_1Projzb3^H^gJkL`q!_e}DvLPd ze(IB^%{Scov1HXruK!%PN&Hn%ebq}xF=ISXITAx#8D~a?SELrt@XawW_PN$o>iq@S z{vNwBNv`=tI%^%}&y@-QL=mTI;KYUe7Yj~Y)|*3XOnO=Wpcwi^M%o+`TVlb#+Kkx- zi-Dw<^xZtj9|%_S1HX0G;Y1nz53maNXYlSTW);y$?}ZR{ijPMPg-_J*JkiXS|{RN zLk!Jc@vYnB5x?n@WhSwNi-X)=YGskQBvsftflqbQR%9fEtv^1>lT9?y4?nvHY{0B=S$!72e}p7MVTTNZ;`f2MwPLId=WZqy|?GpWc^~H zJEGl-cwa}l2W_akq#5Yy+#GN|#Imm^;n0!pN=cMS?c>%}-#*_{^fBwRNUIq;MT(4T z5Tan{>V6i5C6~GpV{7Hn~7in2SREQ3}sHAkxF~C54}t?XJliC3B7af za#4riZU*fHSPJA}!rX^3R0`UU`qNIrZPGBYf6miLr7hf^Z5uO8oZB{1iA-}*;~KEt zBnCTe4y9oCtna_Cj+}cUnXL*Y95^(F@JO z6%h~Osn6ZGf1RRJNV4AmHb5nqND-nDy622WgzU#0=@XkMp^qVj%s=K38gmTWf!-t@ zBqS3@5LMjc#q3`gcMng8_@`2$XNKeRym@EvAxo~$L?QUN_>rS8*gkQpaA#R1k)*5* z53B7jNY-XHfyL<2lEt0DrmN09&wG8{8~nh^_G-x&wIBD#onjL_&$DpU=Rv@Ht5qgP zs|2glgL1dERZ56&;-QybU$7uT{WACAMHhV~N0simENd@G<}<%{W5H9l<=2RnCAbA#=yU#t#icy;-^0jcZk% z?8sY)yKnM2p4}9%c;ihj_QIpYV+|Ki%IH|d7hF&kZ#`SRd^wUkWIEOzAf?e<9$Rso zC(cmjO3w?g*cz4W?CtN`VnTg)nMyIPR4-XGaOKLSqsFm?dDhytIIfu4 zag1DWIx1YMlMpvNok04q5rWDQia{uc6f)g@_D=LtNqR-->7-LK2PEEBn8Xri7GlQa z1~Al4P`!~g#sS_>s-=}w5r_2(VoNf!??VMr^*}C}jqGe;i;hQRrkfpZ8)4L7xkD1n zTd}kQz<|lU-&mDb1R~oV=pEugzvSOBKbZjVu$U;PgSTGDT=pwIctAf3(um!-Ctroc zubA{kv#@2vgErJ>sO+zpJPmc2BZ0-feSeoHteN}HcTc`?;xD&>r)T-@$u~xvdw2Hq zrLpS{6v9(~A}POinI&3gIgce;zA)o2qKD@z>-B%*#b59Kzgccc(|T!K6x@@q-@i(6 zY1&)tQdb$Ixnf%X*IBxUKF7s_T>mB~ejPB;4L3!49M`aVqyn9qm?K)wxSnBYj-{^K zRi1y59ve4Ud`!M8h>lQjD>Rwp=Iatmjk7iq=%f^BAIubD%oe9^I>x%K`Tx~R+}88Y z_p*H;vPZOOp#lGfDv{qCT+~!utA^ zoTv6*D#S;)dTV#h&YD=AkQs*kLqd-XYK2 z*)|COHof+ui_2YRX$l@-FeQL{;wt#{18QuTBUNQxnbXhtH$1U?{%c}{uU6cO~Mqh1T z{bJ6uPhL%ckp0T|^KM3n-Ha|M%x*}I&Ch$N$*GEg!ZI{%n^ueFzN`x? zo|~O=B@J7*5v?IY^fBwJzZD&EHv4w$S)TyS{k8d+$Lm9?>oTL0DiQu;6_(BRGs0&b zwjQdryW-1!yrgzf%9_wL%eZ}YJ*1-xd$vE;z@Ky6b{tMY_v;<2Ow^K+zA*T~>!O<4 zm3n!%J96mddCp(`y>GtTKl^^!K<$%Tc53o38T5fh8H(<-dD&ce@LWvVssa4~g-W?| zMtMTA3y~TeGaxZwGG%#KqPa!IwV|UMoq{_PTCaz>bguWzb!_IM^}}9*OnY==%g6eV zj#{&~t?$ehy;bhIA$XtjY_6bf*Gan_1LAk(mZx2iO;2!*kqahNjUQP%V;lC~e%j$l z8^y3i-nZQ*V)5qgj)4yCON(|8JH$sv>YqjXsrePx#B51Tv6<9x%+uobzV)!)<}X|! z@npYewSry8vG%QwzE*tJv84q?A66cH6`8)7YwI7bIqcm6??TuHwnC+;nS+Owi?X)A zaLDjs7f3YQb8@0amty>E)l02iJ-Jr+73HoU7h4a?>1>~@-rpXw+cxj$r9~Xu?6zqQ zN9CQ5^)_0zc|pXW=xU4Abq9Cs11tY%kSmPOpWCKCaKw zGD+#vu*XyanocjSZ6uv{-#H##Lof2$)?-$2J|3;(VoVZH8u!hQ^S5ug4_4~!wI^Ta z`_}2sjIRH9q%-ZcD19GxycJ9D(>=GoGFNyF=EsW&8ET)|lp&7yV)h~LQ04{92!xdN z4UWZmymp^TD28aQGhgV?3RrVL4+Rw>)uC%${zvfVuRDZ5lX}c3%*+smIU$<9{Omhl zPf)ereyKHicLzaH3D);!?*)1iYP@*IA$fA-mpdxX*Jj6162!cQft`jh&aIzjKDkj< zM$t`umRCZAty4D7-@TUmn8)^Em7iNaP+#V;Y_r(JR%rOlFLyM53~iP?qCd#<;)08# z)4gmsjOn?x_z@@U_yKa?K*U3mw3M*tfxHZSiL$t=?Yw?jb9CX?E_)5he`Xu+kjkNd zBxLMy)|nmXI$0N>?)QQJpsvas3e4$E8RUyrLn+9CkRnV;218P=;v=dW`<`U2TgJp^0Q*bMA`gQRgf2G^$DT8Q#WPOgqz#sJxs zKC-jKyEX^(enTskr)$>G_kQJ|7j=tldo_tVML|En`xWM=t`f8kvseoAox%VfM?P%l zDC=O!xhIKHSKZ!}SK+9qr#%wp5_Vf958I;^3u*(`*K^#}wqC92*LLa4T#DT}@BblY zkLIZ&=*%~U`TEY^O(u|C4$^brU>{{jNMiCQW~y4x6M5-TE`9w+QA>GVUKjAV)WaH1 z`43=gZr+&DY1THH9r^~k zO4tjhd*W!%7;24;C>xOj{i2PKM8aHO1|p{@6PKFTwix?{Y%$1 ze?y%d7#5)d`wrh@X_=T_JekWC68wf#qO7Acr`OmYef<^wLQzrleZ1x20!Rmlh6VLM z6hp=ljgRx1&zCb6|Ed^ZllpAlw1mXxIxBMhAL;*L#D1waWv+z#L8mXI#f*HBa2cR) zSX%EToTB=vVa!+Q^+ifX|H?_7r(u})Nbj+)o+Q@QaJ6n>4j^2kTnGMx$@Mwwq!jkM z3kq)C#Z8<;ch)!ss|gQC+n{xGfy+)<5J)VUoAHy(RhqslQguj?QRF2vF4cJo)-tg4 z;+dr(iRDV0ohkwp2_FS+{sy_#N`2$#r#ZmoE|%5yuHX3bW#w{pk-t}Fu0Lzt3s{Qz zXEuZeZ!A_)fgnoZAv{eQ_jP*V)U_-C91g2hpAQm9AObxkt90TJp4FN@cRR%*C8y zVtdv8;4Oj_Z{S8d$3-7PXstJN;m?Pd!;>3`x) z&FOOP+DA7e0_xD$$yFBS9~Xbf-ukwU=j2##?JCWFv*k~U(bYps>=axhx;j4@w^;KZ zvKFC>wrWnU%D?9GXZi6$`w06MrAB#Fph40m>c##uR`LFcI+7*6JM|mS26wq!>D>UO zX)TQupp-kubP!sEq3c-1BsOQQ&9XPGv{_r8>sJ*#EMk9xbG+fYq8{(P&S%8MX4m&u zmcAUKmnPMmRn7{(+FJ)tnBsKlV@J+y?x-7uy#`BP2N;5>xUYH+m&9giheBM{`g~7 zimWz$nK4JD^6rBTDV_J~KT2rdL9m1%!AjkSE`AX@mzTu8DUX#3mh?#ul;OFJp3Jzi ztJ)&aSUDo%!~50gf3!ZadbH(@@;a9dq&tdB9XZxJTLdbQxTG9h-kkQ+3u!(UlaEjn zrY$B2-=N1T9o-BsMf)FVi1f74WB+JaV|IByu)>x0bb|Wy2xfoE!(;+cvrt zLIOEGd34w9)y@3Dksg+&FUJljtj-M`5y0_I#+&SIz#q(R2zlcgLbmZ;@bvuTg!s(6 z#Z-1#C;~g}aWK37GQ}0All9>0>YFKUj36_fry|N|pX`Qu7gy+idAs z7fX$T1P977pZL;UEF=SiB%g#@NWKo5=l43q^}`aLcESB^o&?p1aPbbmC#5kK@_E;= zc8iP58>g`MdIBbv$F_<_JuLb=4=%T6UH_0ukZ_md_M%Tx2Rt^JI-hRNQ%rL)UmkgW zGX0K>iozc|s~7KNN+>?GEK$(3C?EymU>z6xs%S9HLDFQP7&`d`VhW$B%v+%bhDVcx^b!1 zi>F8n%Lj}cu$&-Mz^kQ1!oDfv+zO-xOD`*2tQkBiv&J<%LvA<9?Vk4GXd3Lyc+XBd zOmsrttx0<}zDp%Ht;o8GpG+-gwx+1>Z0L5}66Zl8Y}NcQ1FfH1;GjkI@=4l#6yRvne3r`wuX1}{9}_3l8BF0d9;oe zOVjWB;~97PEwH8ZJ3q4-l2i|dMj~MoFrT(u52sVeT-o9Hp}5Eq?vy{&_ov zuh!JxMJI^hGOO-y#}8yYbL~gSu*RwCuoh1>{}iQv7q*5yKOe+A#t;oLJ9ON=U$?T>4g0d8VVDrRVNpaBQmK#j#pxs6K()*I z37p=?2>wfi*e)%h=?e)RTD)^cbDX=2f~jo)a{)Hm&BMGlaM!Wt+_0}= z;>pa*c*0oZ!mKr)+1!}}jzkF!pLN0u!nj!H@&7`pvJUvEHdz!igEWJ(*$Y5I(Isx7HzJAZU zph1N5AA~Nk-pD7KXcm6TV~l&ewzeb-QZ@os1}-3wMOdtH*#-4=WIu`yb|46hn88L6 z2U^r8*|b2u(wqnNz>A&_4m3g!%t5m zvD&)QjB8pGYa}^!c}Nt@r?`f7kk5#l##2k4u|(Rr2W%Lb*kMnHO}C+Eu?%d0mTnxa zAK~iOSv9pUfNuw8>spZ|Ww`p7_-NQnLHw|nJ*S&KLPh;MYa5J4NG&vdg4&+u5_txp zm=^M^HL2|~1DlYvA>PGv_a^ZzVBp>sXp-DV9vvecSg{|pn=wg^DYoeg7we;$ZXPr} zwJ8(kBzpPsy4JP04=g6^_eHqqMMPDz{ilRpy;WwX%E_s&gSkZX^=nHv+-+c9CV7m- z1~K(r#a93LTXaC`{yyvrzfTF`;OFC|KjAjN7O49H*VX_KQ8H^Ubg6*|n7fNI>%(LP!CrIzG=MRd)2{D2>`P7e&) zEjtIj&A6Bb<#ed0o0%k{_Lx2WV}U?c~YF+o6?#L?KcZ+|^ray~xm$1~^u{~M$KFD1#sP^LABc^OON zFystuS!A?%iER!@(v*aK9T#{nL!Ld`G0bpwp>`HB(~n`&v7JUs#)6xp5?cp*Lh5@F zhD+rX?i1gt`rb>BFEwbG>%Cn45D{f1(r~MpuKWI!v5VuIUfO+|+-fEqi@mB12d(&2 zDsAC7l`!~a%PyPz0F|uu_vh;;Yo4O90=-g!j(ZKT=R$eV4^%mYw->R!w@6cerFucY zY`h*zpG3;M(;@z}A40otKeO>&%pVlK;W=P$V|{7qxg}0E!+h!)x#MBX2-6kV>+}}Y zZK0QUU8XaxdDPMy^M87=i}@Qwk6<58mn>&|3PPu4-wa9Z5XEtyCpWegFAC!(Sqldj-8?_U76KHOpD@n9Cq`J}6ca`jnBscS`UHPXm?m8gIrscUa)-gf_4?WWdmCiOSO z0AQ#@3-rn;rM);GOGPT<2Q+I<6S*{*b(WzYy>3J29r7Dzp&h0~7 zsfFE|bQ{qb!Y7Pz|CQgNkVX8hoJRT)Yrl@C{(r#a{=@3?2G0s3Mz8&G9E! z6n1mPPbK_Be2cHLf`z}5_a>EK-_MKHHhJiU5~Oj%e0`I@pC^{IuyF~i0C8kL>16A} zV6ScH_<~?o3#o)3Soj57$}EXdp8GmBwkE81aO{0Nx?n_GGPa^jvRfIsPUHJMF1|2H zYs;=kE88B?G2!a!P_9fa3p=gS0uqSpd8ya$y=W#WnxE`FNfn^}%%DIO_8Z>WyK;u4 z_U&I*P{_^_@m&{LJUN0~`Wt}Ek`g+Z84Ibj1&&8gFWY)0Xj4p8K|wZV)5MzJ>IKbg zSN8##7rhF?u@!1wP9Qb+Wd&_nH@`#g01;Hl4^{9(m3(<**nV$wr<>9}`}8Nphkk$~ z`HBM9l95Au-$aHkD^; zSK4z^W;E73h+lC~B?J7R|0Uf48CHL+Y3zy3$lY055SR7|qlPmv@s0+P5Z}qw{dP!M z@G8-csa>RWQ>PL@;d!vye}Hfy*~%t-$5Z>KG@|owq=kP*t^l5 z1#8TouIdgy>zp62ZI~Q+hCS?^Vjrrl9Y&%lkzD8=_5VXDfMD`uaq(zoP7UoI%#zkW zQzE6A)6Z@xCq^?41%uK`Xb>SY3zp7wRjUqRGR>9@KDyM<^ z3wF(L#a{kdTmKkQ9Z0hRZoGb|i?&}jQvhGcEY?{Yvb|70rx5oS%1?=Ok@!4-ciGS7p7r1iyxgP?uw+&)Yuxc#up zF8V06w)7qxR2o!?{zdz${Ke8!F&Vk5_UjZB_<%LC)G0Hkd=?x3&F5Lw)>~FMx2f?+G4~QmY7c(!gOh#mGCV7!%TUrv9RPH0Qbg7ga!vFKY`UzfDyd z1ctJiTDJR}CTJesLdTO24pN>%IS{j-TR8r9Qeuw65B)Bf%(na;jLhE%fVMhoEp=@Q zkh;*}jpaYG0cUMgD+_x#b6eLv1Ob%)&Qsrvga4C^_-f7d{xqjDV4}U{dfWY1naY1L z%b4kdn4fK7x%F3qHa@ZL{(#MKO?vV>c?rC+N4QvI6}u5yx+GABhK3 z`uB408)Fm}ru_LT)Jc`i_9-odIG7Eqk-97c)pj4*(huNw{0c^Y;JIJ+Eo==&(1XLG-Y^@f8wlf zrd)`&Hc_5se%k_T=~YQx>GM~M$@jfLPqZP`I5k3?9F-BKXdy}rsMg^k*7+W zc>Q22lbgcxmuPif_o)9#er89nc4|1;u#0zw>+vsUAnQ3-4TZvLo53Iz3t;|X!h4m8 zp3Iz9q;7V){>}yb=9dY_R(}AK@g3$*3pg(L-Ob38{F{zi&{?LjM8f|`HL$E7mXx=a zOyyA77<8w%OXcPdVRL1Z!Xx<&DxcY~np#@_&xDulHjFj6rIU9-(G_)5>r)>1MY6v-G~8>j(@uTg`8dxLab5F# zFR|<(Cr_@fTAg)3aQ>JeI8Dd{%~R z+$HkHA+g!H$(vefqAqmrQc^*&k~BvEb?N(6%B5`hs2@kjz8xj|XWvO`t~R!gwpRQ- zCU#M({XRa17F!~UZEdfdHRkHvh0OgJ>ettdZaHnX}?fw?(Ji8OET-EtJZqly~xQW;}R5WIqx=uha zf?qqgWF;}Z&;;*UM3QtUy@puHu>fYh)+GbBdYbb`*&qTct|FH7>_0%!g_afujYmIa%I6;`z z5HfFZWaZ`Gc}$`;Z(ihzuuhPG66$dvz=0s zz0LLMR+-hy{=B^-BG?Uw9dyg|gFyDnU9dqP_@vH4cL3`Gt1W4xjM$WJjiuHmwA>cQ zp)h9?D(rU4?hSD<*jBc{bgu_5y0h*c`0O>^hq6aEysozPx2rBi z@30POpbkk$uuiE`I#4EB)~&%)!|xLcyq^%=6zhvNb4kvBb*Vgz(C&feBwKM!PkErZ z5QUA3NrF+0@issZ0!urTxjK%!BYb(PlgmYueppkva9kwU^^msO!lOqyBXg+>Fe%3x zsr`deXS_Fg2b|k~$DW}b)*@#E8Tr?fsa=q;$%vs2t9T7aOBa?Vl^Gx^?qk@#BJn_7 zOBCagTQ5G`LCC#=u-JQ(()g`vtZ|*+kpKaM#YC|aijxjdH7D1LG_zcRc?n^zl{jZZ z9cRM&OWm_(ySO#hoXVMpOvt33^0uotoq8W}%G}uS>aV|)x{G?L@linjz?w~WHdbzq zr`%sr-ogxd4Fl>N9zl!5z+^CF<;x`Sk|-GnjWZxAdfDZ{%hh(e)*zewv`*CqXRxb)`s2%kGUT`;I*dcI;fpMKMf~dz&isVj1TN6TzotZl_`h z{iYBwH#&(jh_qFPcOIeH#?Yuf(x;Jn`9$<(QWBw6+jk1hy=Y3n=S1{s8G3HKc;-@x z`Stk|5YL3gzD$)|StFelp4+2ug!M8n5oXr6D1(T{yud&^&!IqDV)qCGA<@b7D*^7e zT!8s@h&!C?Z+}6I%oRwGs95EX3yxQI$(KeekHF0p?~WgJjf}i^G>eV*&zYl;T_{5h zeZj>l`BL}XP{jjI`2)9t-DOdscFRG=VZdG;?-FXPa95-eeSMs#p(=2H+ePHoYM&W{ zd~3sF!+~qP7oFJNW!}P*>R3d)QjETcgN17y3jovDY62YCM{ilYTB+xoRpyy7oC)du z@^vgtycH$ zUF|9a-P5f<>^-^3C}FUHWK*%Ow=ve_!Acd4ONx_c@f3a41TD$IZQOg(NFrg3WB~fv zS$^Zz0=PhFFw0t~m4A^w9bDuOI zmWG=G;Hp<>`(j&OiW$XsUZJ~bxYl?MpLnXUxnr}Ta;cq@iUnbYv!QoX{k3s;Rq)MK zo87B9?Q1rkPAjwz@nBq!0UQVdP$Hh>!)AC`mqQD1=q-s@U61s_eAMGqSmCX+kY1=h zXVl@9aqDr8^VwQrUKeq^BQ#xDlnLnJqRH|ej-mDnd!%iU2+xC4@mnC{0RA+s0qM=A z`+R0oNC^}Ox)`~uLRFSVdOdi0RIa!{qHCYho64!qhu9QF{Hk}F<_kYACOq0wv>oY9 z!1ad|Wy3n^S=h744gzAmHbCO8a=M1QeDlOc z57E%SdRyX*(=0kUk{%7!w(VVeLUFavSkLoe6>1Cf5~e!d0vR1YIf0=`g~Tq`ZhKZ? zveIyeCoWM@Xw>`dO=?xfu1tpw=!IVLgMf?Vl9tsv=DasIN^M-#W!^nwPjK!!4KhK; z3eD4Ggk%gNog-Qx^JPFHQg-bXQ{KH{r)7F*(2hP5eoU6#OUhU-SHAA-@uQwy&x)c4E6W*i68*S{VAp{-K)$jJCa3 zPs^q*kn}+=e@sf4z7>;iowyw#WrqaTl(smoOqVNQiz(W1e{3;r)Rf4`fdXrIW}gC&9uTpeu1n}(M>anB|4b_o<@}m(`$Q4c|6+G^;~0F%)En9J8s%nlsVU9HsEdEPMTcnyyA8-BHStv zB-=3z(=`pfB??*MBVQt0|{az+(@nZsB zXkp7tNMFj{Fq7wK^69%NJ6pPOI#~ReNX}?!*Otwa8#n8?FN|2i221Ph4RX0@0oPte z>j$u3bn(T;I#rEmu%{gFoZ$G8o^&-(J?qx+raeNVex5Kx1H-V5 zstqjCH9-kTc?_0XhfIi%MEOUh^?qiHiJJ-YwbnpMGy{@gynCs_>ZAN%#V!`}@ne9p zSenixVS_Gq9CQlyA>TjEunGo1KICVfLNlYVjs4^ig^6TK`B)AIBymSkwSJs#WsE*U z7~MP2A(z*XdS+k7?WXl{LS6J`ud5HbuSIs123=TPb8t0f$W-ATaK~6D=v->*O@9`PpIp`}ZX0&ujtXh8DWIk2oX3>RN3Clw;vU$B^h}VZ zM={iK40=P@jF1w?yas&JWFNO?Vf_$o`I;@wX)&ZlgQmHl&Q{-TUc8^{<{_swe~|7= z^~fx+W*gU9kcJUcDVRtOS3|MANFlzckA};NWmh@vdEA5`C41NH{SAp7%!rXRqRH(n=z~kryER~p#)qnnvdx= zyPQzk)NQ3L=(o%`rqc(j&&&VCyDDC(_kQ_{r;x-I^Jy&_ zARjlCjI`sKD|I!(&PvEJkF6G`a&H_dB<(mwHj6lWtW~sl;l>+b0tl^1R&j7l?oSyF zrL6nX_>Y`UU}{>eg7nSEdy$#OW)cOG1ChZLRCP`}%W=U$FF}MOyS52!50#_`eivDGiU5DZ>j;UJBo*EshAWFT1ge|<|z-rjI48X6X#`U*>b;( zTI~7oEhXX)^U|py5`{QzU{W(ZjRSclekpEkv;%2|yH}!dEZ3ExfBE^#qQ#Cv2Q*FX zaD~e{IU;SWMYBAnsw?hC$V4Cqih@SoAuS7`ei!8b>L*d#A=!~-4aXYA;q7hs+B{!N z|1;SwLI#?b z+?PoU<=yU3v$>2mdyAl|SMX5fY|OG}1ZqWLnU`(4 z#OmUBb++W8_xp+~UitcGXCSNNo{#EOy>7nPJi5T{iY?LqB%!lD)4aLIt9rB0=Ixqp zwx;L&rr?kj&_^SMUX$;L(hW4ib~`fO`X_3s=fj4@Em@<=uUlH=s}>5r66DAM@Op7IbyEIp%dnv5 zy0O#3QRDn+3G3b9R35Hd;%;;$=Ys-6I2|y$pt)3W}x#GdBJARgTmpwU3k+N5& zE87qc<|c2zwYyoqs+0)v^2tFs1Tj_+j}8xxn|2|ipGYIwV@c%k6HAt|R-UdHceEc^B))FcwZ6aJ zjN`mr>R~C|)MU?dsMsVj>oSRlk;d4d^eU0bf4n}9%i<4f*zOylB48J=JG;s4!dv|M z<8nFv#(PxEO3pL|GfXZ|T`IEvFkf$4X*7GLg?}C6D$=%zk#vA-X6aGpIW*J3Vz1oR zAnG|=+)9H(Q8;r+0{SO zyc|4%P1;aX5YJq1$w8Xo5n&+VJ9XW0hd#4~uHC)TFwC{w`t!G@A-t^_la;LUHj zz4;>Si%)NP;_Bv*d$b__nXPIu7WrL*a$6ufRr(e%G_Bh0fOD9=6af5OwjHZ zJ`6`molcIN*BedL=q=(qB4mhe7UiWad;3q*Wp`ic8nX}SNqxZ#f`sxEJp~3LO(%68 zJ0Nz_p9UuV5V_0w2!Ei6&(PVK=!EAj!&|}@aPN7wVAYQDHCqKXMI7CCho|gx_N86# zE4q8f$TY((kDxP$S*1qACXvw|BDJV;rugW|!oHf&Xc2yqL;k`W`0>$loug}tJ4}mC z5>{y7mBw2bqPUf&%3(X4WEKS&JgZ)0i^>t$8MhrET`-m|CxjVW`V9EZ7R>R!u+4>W zzJ_o*(L^e=P~6TXJFVk5_`HpRm$Gi%u-mxN?`08epXqEm3BFwPe4cblP2|*Msv(`J z4+Q}CA$?-T+o@PphPVAG6GD3T07)$?d}qdRUQosePy6w*Di62g$vdah3@5Zm}8PZK0%oDad}$CayRfId}4iw6s2@rcF-)yE$Md1P_ARJOW#i zn_?_fUo|ULoU%;xwnvQ2O+L7uGCRkg5PMIsZR4M&G=!Su2Jr%5hS3j>VCAw?Q;TvX z)HSRHN%Qm!w$+8TgJHjY-cgn9SNQn$@?S7oclfUz<~-hEix@OFxdL&13cu^2GLzjg zWX_~JZ0`wsxlSp%AB%n#7_I(5&YN3Yblwq8Hg?ONl%A$c>D3f@HGL~93H^0JT_tz+ z9NVsOY=3#<>fzmeswb28u3g)_*|+^_M>CNm(I%aL(RI>ojrVCAMC3k0UD$i@(zb09 zTWg)-iz_MDU#U)2E64BU6}c-XI?;45mAk#oa`a8r_A>UcTMsU2%-cBrfGKf~h7MrX z_RGsudRg5yx6nU7<9XwO^Mk@fkx$8zk%f2j{DyGY)~dIMkJf~Zv^DVZl*b87OixI> zm7^;g)Ab%$NJd{R(KQLKy|W;~?5;{dMEmZ-1^O2?_jg(dpFN_Q`{=>^8}CATwqE4A z%h0h&G%lh%Ia(@Y`!26@X!$hz38f((%Dd()Qmjg5OrfXg)_Lv6yfjR=aW2uD$IH&6 zRNrc1SzEzZLd;DM6kEt+_p)g+va@ff0XGg5Y=)#mIFYucK;~=FY*&STdtW*R&)&YkDMbLYmdCPF9 zGKn3W3~M-`z(|LMbY~oM^&01G)6vY!N{Zy-gg(+lj4p0^9HEWEn#A4%z~79UnRwbH zKvX?;7q$~*Eu~DFxkL;?Ut>#~5K1eCxi+9L1x32f8hvmhJ*MMlmUSR4O(fJ^^1K4W znE*+kC&H6dT2M7dB6ZvbG)JZJGU#6t#LYBOzfAiyuP%}xJ7YgBdWR0E8hhw1NV=%{ z=tj3maD(ujGunCFlXNNs`FK zLD@ho1wvD_nNYCpAKd-v1_Xjr8d%!dhPgDje*V5Vf&0EVVPjM9sqY#`FL>7_4jv2__^m1Iv9HrJ2t{T%`(aZpktt%F z0&`GafTdPrm}`WO0ks}h6VVxn4LT(Ej%qhd>_)(Nq`vtJ?)W^gp^ZU8Z?uaC~MW;g10s?wV{4?8KQYX!Z#$ZiDa|0@?j8zl`-fCh0&mF>mQ|Xq?6*F@l+RR2k|BCSz#g zDVUkXtsu<%K>Kb=%p){-9H?4v3;p+Ke!wI)ty|m}DIbC1Q<6!q z#B*Ih%Z{K^XnU+aL<0z9E_mfJ#NXh`6pAG?N0|8sdXTu8U_BJW1d+UX5KDOvV8=4~ zg-`b(V}IbMNRwd!&$wvQDxg^V-b!H9fQ&$9V2O;b7+Tm!r$@~M<^wMOBv2GIXWy2L z304u$a>!L=4vZo9=J30nHssI?SdXf%(%S>YeQEI#5p-3M9hwKOYU4?a^E1RtF zbXc^Btk50|k^Yz#)Z-aQ8l6De0avX}9%)EbEOZ`4-U36bf}_hR`mg ziV}rQ8xSYXhnmWADYNt40)gq;z;Ju;zCv*{FtlS6fZBi%iaXM$eJB^`rW40>#L)Db zN_un zI9uVV^;oE&d>X(9g42n>TzAX|xcmta$4n5_F}{Ksoq^bNOE8etA#4&6Ok*!7T!+3h zPh+?vLp_}|!!XR)@@yK2xr`(kq>KMEn~egdJ_E4%&^5c>h8b&&o300-?a*RiMQA+u zu@6qrG%^{V%`BJ7&p$&S|tuDBXdLN(zBuSM2jJ5gP9GNNw=kqX#N+lU2U`tiwR5ArR(~kN_e!?2jLK=Y|O{A$n zxE2r_eS06W)|wgf11p(l5b7j}wj$An(u(jptXSUm5^_L34jQBzi6$=xX6lAJY z7dNv+nrWZZO6&lhxn^Xo(?YH7u2F$A#%8)nzl&CzD3aQPm~Y^0(7dCyOgf~z$M*!3 zdY~}p>t;68qFb?P>6=ZssES196#_7`-)a$>vH$ABA);e zSm5iAA0T{!X|!Cr<$f|)iI(8C9mj!P7E@Az-VdntEu0N>JQFgH`C5btnEEglM0?MC z0lLZ)NV>4dYX$cl&s+aFNOHb*{SCl5z!(BrQ7tQH0-E8#pB?DT(xusjC>uofL!iSD zX}n(q?g8?IUTr75DMHv<%8p+NRP2sbHc<2LpfW>_#gDeiF{~tcMh~z_#ITh1&bW=K zXDRpD3}9()veyP_cuW-qAkEf-#TraH2ljDW7Ba_JEDvCL2mv*vKY_R-a0sd}Y(6{a zN2pi}TEv$m*WBkL$83N@D*|u6g#l>1O>4ot2eU%@m_HwnGad(|%iTXn6kCjhK!H;T zWOn4BGbb@;6X3E20L^Xi*G-Ezq_X4aIZL_ZP!!(?DVj zWZ?Yn3xUx`;LS5E#9PCIfjW=x03kO>Vnv`k>ZLNCF>^qlQhBjisl`R4hl5{-<6AvmZ$EzVShyvX|)ih|k{+=a0rOE@uJ8(_JKComu95cnr#XK^lYw!@06}4Fk%`=FnubWNqA*HcR6<;q&D~+ z&sWEI)*B7HuY=oKxImfzvk*LV5uzRvza@g z`?Cgx`?#6p-+=*T1I=Cng#y@wi9~9N2qVGW58WMx`a|nN=}83vq?`asJ!=dax0p`w zI286D)aqtocpy&+D@3uH-;V)lNg2SBhh>q4ctTAqPz2h4FyNPSGpN8SI@}>Q_4?W1 zsrCB^T4(WPRAzHp*HA8P4yF>`mJYNb@?hF}hg2nYrYnY8z>XV2&6Oy)g+`cK%xdVUjtLI3*C^sA z)}icFti~J&(<3Hb-*Qj{+QiL45vMZF%>@vV1J0(ONOI+1&SJt@BJf;_EAm~Re0uPW zZ)ZJR@AsM68B$NXbbRg_h+Qbz1ITm+lVk? zm|3xe(WzI6xx;mAFZ#xD2tOpnMzqa=`^=G#ShNLzHAkhJ*b=z}_H(R%>PaeB<`bIk zF`LHr4?NF)J=-!OjY0HMNShSX`)~Nu<2d0ao{`WHf{CJ8kDS4k4*)vegG~t}#$fwb zA#JduNiGl_{PZ8L0~X`(CEL0sV7Fr-Hn>Oq2c~)dA0sKq7c>UDU8kBlF2gPZYHRNW z*Hj2PZ_SBN_Yqt0{9hBgxkF?ErgewJWTR~5=GDl=F5_8f-Eejmya9Lr)4#`*Oj3qU zgG_A#t;J@6e$rMrMPe*i;I-zKPw4O7d_g^+akN*0Lwz~ZBX&jdz#hw&Fuo3@@i zYq1hwEUjs9mbrNIEFjtR`eYp;P1vP`6eBUxF3BEy?E8fZYIFWcU5t_ryeGGNLqE8sJa1eFSw7-wC{9u;ewpmFAp*i7Sz{Y1_HNxFeIoXI} zW1#1U46kcEZ4_;Vy#lye5-FR2 ztN~0R0R1@ER-=PrEsU`yNU?jT>So!&yt+Z-=O7TUyIJC-T8UG@SO0((ZDx&w{F6`N zi&F>C-vB5SgV-1}{%~_RQZ7@5<(KicfsP1&lme^m2eC_re)Z-Ml@bPRiJ$1n$kZKI z{n@>*5aP~%AcT%2Bm?0rqVN{T>e;0Z5F)bF?V4W^wChuzGk1H-u>|FKKADAhsLIgK zRJf6Vl&c_&Ot<$CGb1yE^sGwim?u^k?`DS*cu$Lw*=bk{G$(7kUc{^8c?W~lP5@DD zuftyHPa1CK%n+E3c;20-l&`74#>x-gQ?B)5r-r*G#2|n>-{NMEX|V~M2-sB@ca~5m z^3r9Fvo?|OymE9(qGRz~8?ZAVXZ>KLef_g}hhCsP$0K>YSw(Wpl^~R`Qwf=#E0FRM zX-<{xCDPCqAS>*&w$&%X>)^!AbZ|!LsNykK()gGUHUyb#K<=ICOngN;yN!FX6M?2P zE1+QbW3v8)ODi5xt2%jY+F9S4t7;Uw4V3U&G(CE5O4%0+lP?0dX_Y0Sh^sSRX;iQ#4(ss>7o6bp7xRdYC5QDd zbE@3e$Q|_>1as{UGANG>7#s%88g35GfE}o=ft;*hjU+iEvaj!p+mTJ2f=nBkVSjT43=RAN+2!tu%IL~Fs z8MM=cjrA-X#VgleKk;V8ZN0O|QfhS*nmZL|U(t;#i&C}6S5ZjWo@xoK_(b;%u>N9lQe)qFjZ z6*E29soXnTRFvF@`t{|;RH_&KfVKS%griF}PaUg|zGC_$q+~`i4TrzZ=dYD)YpiRM z;uh{Em9=r*s;~%_NageCs?H|&iDxv$+qShXV?6U4pt506+6u`?4*`_e3uMYUb5Ghp z*m8x(`0c%W_*lkiQ>j4x4JRskga>D=E7sU~y=J$Nk6VK_xbfO}$yQxiF!cwgc29wz z{!4nWn~&Qjz9oD|cJVF0RU$AYJ((g=8nxa=H;7d5W>Z9|GFLf0`ecW%(zJ2A7xdt? z>~#a1WB*fduDID-b5pq0!|<%eH~evaj*WK?6ZP+f9z2uvHfT$NU_>#&D*psAHabu8 zz1kLX3^>Wv{eZ*uD0eYmg8{Y7yoa{cF(bj0l^Mkl8)DBV@7g&WZV+(tX7Y(A>m3cH zBE=1A5pR`>x=DeFG@r=4`)hb+6QI0WI(Ua5lGFGpsAnrQ6uWz+d8g@fcPXuf)+%*v zd#@22%nUH!yHe|87F>s;-Wg+u4+fd z?-xyVcGd3cMGuO724)gz{Vx=-LDQgDf|K&X@$~At>(>yLauS`#u!s?S-2J<})Ql zdt3J=yH$y|E}?JU6z50YR{7Y|JwLU@wh6Vy^yW_%3O3)?X6`hIoK&Fi02svyQ$7aJ73b>6`P zALlI+=2O3Ng|%#}naN4AkXE(T=A%xJuzuDgGez~*^~Ri=&TArKT;(sHq-c?49c~z|%Nt`O5%uW`2E^gaS;wk6ah5R6XV=6l}J4YGiipk&*(p&e2TPH@1V#~a+KQ0IeDA!Hk!!zz|QpvYY zWkt*E$RH(gjRY_oIRb-*wTQVNgs@+UN0y$*DjA8#w^vQ$e4ka|PuX3ln@rs?ef4rc z_6<$7TRWP)7*;$_MVGgY4?iz6XVYimZi1U-0RFl)z*vvqN4Yp@h6q>aEl#*k{f1NY z2sb+G)_R4UFn{azFN^%r=r%relYLPh9w9Crh4eK%X zUea_{+ikFMYx)DH7PKRVmMPtSX^aQ8R4kegr9@zWgM!N9)D zLM!YSZJRkjC&dg78et6$0%}VR%n&|l?5`q|U1Jza?i>ZEf*W0JLFamftdBJOS9W930p>_Vo3PJa{ox@u=ZF+Frp@ z4$gZ0o-?UpFP}w3TH*R|Dkl=7Y%?K;xsQny%5mo6zIo3QIMdKE60MP~#~*Ews^yrT zW_I!^;0nLamTun!=3}6$cq+@!EK1VV2kr6J3nhlp=qv?xoG!pk#P26kN#c3i(Vl&) zc^7Gu3iUhsE?>F&{!K!ywK!vP!^@^NlLm9m&Fv4*?!xWgLpjviBJXkkOvg9A=rG1{ zTf?FTjjlkju#*{|?och!DSlgOF#G#0kos7fLR;|twNEyxd4zSy;RcEN8P3ZgcDXEV zT)1exjLZqsM)MEi0~$_hT$wUy&>w#XO(CRGu1w@FQ`immwco8E?CP>j z>-sYr}AvOpflI-n{1}s>|`*2&RC#r>U4aFCjON1-DB7v zp8K|Ck{`a{A5J``!q<_W_1HaP3xj3ZA9W^^!TQ)cjP`))u|zYSC`{FJoEo0&aUWq} z;)!;>Rg|dx@@0nSrXNuP@s2ifoxJky!QX4Vl#A+^q#j+NGf~p3Tei$9u;a;JkXbH7 zk@Ju zqq8LR6jO%lRGQH?{qL2xr&ic*p+h_lNGHBe)~WM6dDQY%nD9gve;zT+v18DDVM=1q z(j7;3hifihdR0}z%tOdCEE5d+D&;1Z9p{{R6_Nr!$;Abh&Y7}F=j`s)7#kI=no7Z% z8$!=0G794_Ma27I7oOPa^re8eb0Z$VY*5R?{i456nLPM~W!GV0cfo;LEHg}omjY2f zl^Naatz(<+5|Up#pU;cIrq;%Ai2As91>9808Odu5GntCg){)s|d)JxKxLr3YUB1_4 zZcMj?x=k|_EYxr0{*n5Ry_u5saXrOzTG_VnbmCgS6P@QrEF1i5DtYd+9~)mOnV80M z@Lvh#;9dMA2Upu}z|Px#*kb|T1JrT7=Q2N28j^6p;C8K&RL>ncG169)kyaPmxy%n| zVWjAuS*vCUMi}>ZAeLrua70L<{m#*?>jMiy9NRCc-I-HDMKkQ(lWddJ-*uaPXKy|; zwRPE0q2?6R?G+9H2Qm5k{wi3+VEeMrE`%qXQD8l?VBUi4>+^f%&!BQmjp3i1<}W{e zd?OR@Xm_!t`Rz91*}OjaHx+xwo}-`!)PU*J{sd?tlm9P(w#!yuM>8;2cSAkDwu_(a zNZ091`e@&Bk5WR6m?&ebS_k{t?$;Hi@DtI_WKI9Us zYLsxy%p}=uImIfSsPNBS5- z$jza!{@6!o4$*j8xcG?knUmH?`Rc=}&hsUV$QIEVr>#y=BIMZFsI<8D+KlhS!1E>sdd$Wd8`7EwgM@m3eObkdy@K}O!P{v&2k3srGbJ{@eYcx^$#0G7 zS89a~raJ{)Xzvr-gJm>oUkJ7*2I?Boa{Q5-XnFeU%2XsmRl^adZDDa@YGcGesgkOg_{BH^_;2XY`w0dn=an^yyTm%UDcv3(j#z9c6aB%YabrS>=1A9L)C+m7`!i7b=@lwXHMK2Cfe? zoUU|??YexD=WI=Ec%Z0|ogH7gB1GEO;FZ!hKH0UNoCb2(LCWkj9cb&$dob8FF(SfA z%ri<)TFy^5;VWLaqIfC^R6sE(%4OFo)>#P4oLTqDrA*iG@uec8eg!=Dk{oA*`*?=? zR)psXml1d=i2@NW_m~q4)PVmw3x~UX<*8Dq@`4Kumk*a`?7WbF&Rm78&C{Vm$ByQ| z5^D37B_-wzZ|Gd}yPjyVNEY(I(C08NY^?)f`mL#qg%N>dC_#-_ePM z9)navZSupr)u$>q2lUWBw5_T2BfB>j2Di4~Hs@UXN?UR9hP}~UtSJC~@g~6qkHBN8?E4fp z1CL#fe*eJwfP>Jn1^WAsY>)oIjR8Iw9y0 zn_%YS)uaglh@NO*SE7B&hz$qNC{|kI>Td5jtQr(lexzORNL=);rK=b=gB{Bm7myg% zvYdS>iyCd$Lt%hP`Mq!(3#?R|C`3RMqBCg-Oj1r4TiChevD3KC9x0(@e){Q+VgiKb z*l5`5UGuC1g$!^3OINkh%^E|^v0RnG&vEuu2*Y?nxlrz97n375m9Y{jf2YLr!}Atd z9HFWY*mP$4;8*2~G$tG=d_Xe~bd7US&>=T{f1A;C%g??(qGHoQTS%chS<}h4 zwzGK;T$R-7O;&QtPy;UAa(^@|+TVR(Wv5WJwL5qxh}~ zO~L@9R@L0OeI?~0wgZWHWfkH5w`!m{01TjSB+C+Au>JO@-^v)QKVLQEqHOfAd}y{*_jGp9_L6 zuWKZuTBRCg8}@0`=6bwMk$wN=&OD<_ZCF literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/colorchoose.jpg b/ide/src/figures/OperationSkills/colorchoose.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bac0e4b57cb9fd87854e7e3aa225de10eda2140 GIT binary patch literal 145589 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/colorcontrast.jpg b/ide/src/figures/OperationSkills/colorcontrast.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ebda1ea80a014b216c002be379c8f43c3c59bd5 GIT binary patch literal 22734 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 JapcUee*%V$94r6; literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/rowskillflag.jpg b/ide/src/figures/OperationSkills/rowskillflag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..27ea1a7dea957889592978f2b3cbc43cf4c5c1e5 GIT binary patch literal 106865 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 Ve9(dW7Y)Uq!1=>1e*pdd{{YX-K4Aa= literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/rowskillm.jpg b/ide/src/figures/OperationSkills/rowskillm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4c1a0566d49d169a2950ff52bd0b2fb962b4a84 GIT binary patch literal 199133 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 Y+8*O$5n6?~?MHpJ=6rlqLB+FqP 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

g6<^52ix=+Ir6rKW{PN?s7fP9ih*NShNmPB&*If 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

MlQzSg!{(J{Ax$_ccay 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

$qAwe9ppkk#yg3r3=iIA7$*u#!l|-NCex6JO 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 @xu2m8;G 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/searchskill.jpg b/ide/src/figures/OperationSkills/searchskill.jpg new file mode 100644 index 0000000000000000000000000000000000000000..651dbf8a9da0694b63e34f78edb25bc2969451c6 GIT binary patch literal 11786 zcmeHt2T)Yovi2rNMRJfJIZ4h45+sd?1j#`Zku(AhIS7L&AUO#Ll7nOrVaPe>oMe=o zBuEYe!^|7c`_H-O-n#GAdH?^a-e0fop6Z#}v%7k&uUD_`Ufml#i(Uk7+*bps0a#dA zfEVTipy9whfDj*_03VN#fPjFAh>)0+>KZ8t2`N1VB^ebH0}C?~10&-t4ngi)Y`57N z8F{35Zwrfvi;J^x%g9TM$_a{zi~bUVMMOkIN5Gv8vu~~%d$`x(YdSm+>VpcAJM8q_-bo30IT--doeBu(4 zQqnTA_f%BX)HOi&AL$zy8X23IKC^yqV{2#c;Oge?;pye=^X6?(aLBvRu(~FZ{08$(*%;MpY0}8;| z1y6PW@qb1^KdCJTRP8x_7Q?rEh(T%dO1SEzY8EZ^Ez1rX%Njatf>b)V&>xQTbXT7( zkvv~L(SZCC8ff8017U@mnS_!SXkf$(y4QyWmJ9y%^k3Temu>uOFZ}QD4DesRE=%FG zH~K0iKRbXw`BQlE({C;F?>1OMEC(b+WqV)8zTy4JJ7sD-_`vq9>$D0>w?cQo?JfmVWnUf@lBfX9~_qaYaklY{%v^X zcGTph$=$KSzB_N|Mew4emcmxo-d&91M?T-m6+nf70FrKwjEl1r7(Y%IPgK2WA5W;( z5~8=4r7npI3r0Oi8ONF~L%2oW)^*L@DGs3}r^$-KUS#S2@=VmsQn5zzC6Tdc*KGov zd}Y48D$#+QK6Z5*gBp6y*pFUvhhE!?OjMO!*ug3K5zIle#5Bt^@A@m%o-vsVw<5vJ zQlfoeiZ<$@ad@z3ZzqqXIeDML{nz&ds;eT{aIs=(zY`EhX9Z5qn|)yM@5^z_@V$P0 zp*&BdY#D5y8)&>HlBK|pEf#fNGSF)k*4{20Rv{N#QcL$uWIn$!aG0Ki_i)3G!$5_O zRAeD)Qdsq)=6QbLwIdboSRA?z($(mPFsHg7rCH$}OIF?`amT;tSzHVKrpLSG0_ z>1sSxrP9Ir|A_E>p|R^BU#g8Zy;0u9)Y#CT;~rFUCemeLna>B{$qxHVRPOYujw9go z&ct`^b4FBxRdx#dEkiXp8)Gr_-Y$r`)#GrL*}UZ&cX{mz6_x~*t|FdMeU(|lquL%m z#vZnlM=0hgt1v(*)x`y@@Td|z5Gi%0tdU)3`<_Dj5ovhFP*Q%W-IyZvlZjG+Tnbeh zMpA6!YJzHQs;}b3^v^}*fJ(+x5g-GSYS7Pv4eJUj9pKlbF~O%QroQC^(WrOK<|v2> zGSTM`(CDRh2m>N_m*dD-N5#FmCw}O3eVS8b83?&K1E%Oq^|4NYsRD}AFXb~~c1MH& zUf-sy>vaBK)WToY)_(^dFA;HWd;mTu*VA~k^0NUGNSfOGXM;4K;Wx&kws9mANDH3Qt>=3ef$X^d%G>kBjTFy=gR-Y#yys1` z5?9LIkJ0EK$EJ#T)qQ+1iWkP0nBMIF5qvwE{Z4yC&!7_sNIzjjXc-Pu$0;#}vOZmB z)__N$)&s=t3L4*@#G_DB=Tmp&2Hamoa|Bs^U?UUWm*hP;;R+DwwuzJQJBVy$e4(%c z;t=B7jp^(d?S^(|IHLjPF=(wq0!Wbx)hCMviW{t%KYBtpRmQJU_E69T)RoY=K|K$4 z{?{@zuyKV3_Qugb5Q|L%8pt@qq%WE%YNs%u@D$vFz$oMLxMfNG?>O%jf$MF;rgQY_ z&7iP>)pipQDO~eOjIgwx%S-8!v6T^0mTOY)qRNSXu+E9R>>sFm-A0`2^sH_3x~~p? z&)&}RDcPFd9%cLO>@Pc6Swnjf-UMZ0QDTY=3xColmERwVH@cfaDR-0mox+RyDi$Ks9!S}iu1Rhr42yJUO2XKGx*gVZv{w$T?&LvP6OLd!<7 z;b4yuD8QvLyoQ4#5W;THUW>azAb$;T{M!U||FrHV%q#~p!LJNFA@bN9 zq*$3GE&p7#|1UOemL0(N&vjt9nMs`SuL1w-ZsK1m{hLGmlLPqQVx{IXk#AoVtuo~W zE6RTn6+_IhI&;SC_C6ECZ3vF39Ds^^Q*IK;cDH1ZD#=zAo}6{%^4-VoTD(7D;_&0e^6X@|CK zx*I&>Z1nl(w;uBO@Rj*IFO9d~t?<5ZuCYiNJa z#%q9+tZF`r5|2!vft9mIXrMe64P=i82%4dRo+`_qWNUi*9%$fTm-g}vLjV2mX%$x6D>Yc) znZdqA(;%<7P-)pJBnCp6u0E;HEZXpS;x7BS6&kP<>B%Xf>>`CUe`$x{S7WRggG)NKm61uo~ev(9!Pv*Hob;3J7JiE1v z*y<9~BV}8{-#`pr+9qk#?iZaa|f6%tsf0vln7cuYW$&G-xD1 zNo8x@E?O-7BEZL52j86b!l~uJfBH-@ousx@yzY@s1MJB`g^eXINjYwW$aa_NVw3#J zxq2bgTA6)PFmfe0;%U0YFxE&pK$cmqG;v&dN26MD&M~O;Jzh9nX_oP1`~opBqzSfn zd8C7L5Y6RNo4ZocI@eNRO?z=X0t)9=%sx*I2Q|(sCn?VmJ9Gp-YUTXaEL< zK`W~EcA4PKGpG7Tl@Yf7VyTen5(nAGX~l37$A|6HrvUt|k#I?PhPg1iIMynyskJat z@*uDGK&$56+^O+US669~^6TzV$mawrC3<$mjMhpMw|2bdeo&>U%F}55>L5xdKslHC z;)bxg&+d%+1my$NpqA{I+rG%DF7~^M)D;_%ne+s4j9n?SLL5okX(?1VA|$(+=v_yn zbrl)?Ye+!{X6^B8crkO|yNw|U?J;)~LKlaeI~bVDm%As+U$|ZVfZ2y@dMvYxl0M;= z#K9WD`Q*1f!BJVAxW!*6kmdVMiTr*qNv6CxoYT;JK#dN=G0OUa^cbhiDW0Tg=A2pt|VzWJ;3l2TWlGUGcQ1DM33*7H87~B0R zz76-SRpv{+^6#sa~Q%A|}x&8%+ zGv6F_q>E1~4~{sN(_gHO{M8!De}xaffhzI?y9^Lh98vRmgu0_9NDyfbt(H^bIF+(L zviI0;zMj#`I${&EXe)=+<*BcOuO9N#-P@7#jcFD6V>8ei{R(@39UZR5n}S}sH>0br zrpK7GGUmKY9(|60p3x#;asfUO69mXtEtlcQx!g?bc#I?CE*1FgXoqF!C^^0il{F4^ z0ba;pRZP4jxOTptGH3BIcuRbF4=g zIPm}6kq)1Kw5%V430;Sq^^kDo6@;5agn{&DhZ5T8WOQdF8X&B}(8u20z4q$fu2OGPh+aFcR+M^mJ09_?*cm&4}f>ZpN`2 zK?1RtOdEH+A`?O2NpS}Gxzzn>AqtM#h5!&-JE5YB4>sru?9(Wwwa@jj=oM|njFU~h zpUuca`yHpoGs`dUITLiTNCMRLME!i8eFi5BHa=hE5B)}OGqK^JF#n8!Qjs}C6~Z}+ zeC|e?m!yn%&#d-*x%N9jtE^?{UB&^w!U0c-RWgrL(c8OpRcvbPR)s)nL|kh|D*(u6 zhaGx53BIz-Iww(^+{@Q=w3-|#p!=3pPjut1$rIOLZf+*XBWOE+?z!f&!rPtWXA(`h zfxBJt569Ug+mb9+KM$*U_uzy9d%NxfW<$O@V=Exlt}wO3N}kz!foj)X;pzMj8}mET zardWcx*~nn<)vOEGOG?XcptI|s*_qYpUKEask$;te5q{y+;ZR%v?Oo10 zN6L9~&1+du^Hv++_!#JRO##m4HjpM|7IubnFA^)-*SB?or;wu$$%l#P*i+VCJ^3`o)#;q$rVm&VD(^Repu}an#9BM?fp1SGK)X(G2bMH*4ke%}8A#h0tqX#W+ z=(4-(hlfXP1X0G(KEO$TUh((7r#Y67RjB%K$@oGTDT*{kYN*@1oZMQ*B($04K}_?F zF@xFHS`M$xl3mCat_mx7oj8BuXCn)_;6MTKU7oZxap!>>+Tc2Oh{sZLvZ&g(ov+bJ zbU(TPAI}g8dKmPYeSJcE_K^FFxcY8F9b;@r+(QM1i4rm#G|(HG1)YhoydW&S_)FEW z|Bm|3Ka&Bj(D<4_--{b${=6yJtE7~&Q_^QTgR}R$qeLCAr?W!;>9A}F%6n5?qUdLA z_qay?yUauzY2f;LV~g?FPoytY5SHD+NOL1If?o61wDRXWEV%yLfjEq-8TWxbHvta; zf1;nIj_YO;?{jG>0Gc($wNZC?YDDa?D8JzsIr-AB+ot}G*OsPoQzR!yLqiOs!DZDTCVB0n(J#? zB3Wx=sXB>>J6+?Ah@G5zJ!FgcM=()S2va*bgkJ89nfV!7wD*8dZBY9qGB3Ga`UFdi z{j}U88?Gx%esFk02`?Jzv#}933t8Ker6Cbbua$uAl3Y!gRFJO=v6VVH|IFx*PfcGl ztykF3SAihUBWGNbh#fnwhD8&Q;cF#_^p7 zXEu+JD=vX_8-+-jHSK3cb~qnKktCn&7|KsmX{F9+OTnl1`3)IE-rYNU9_*YA?yZaf z|2@$D?x)C1$!KSeU8i{)Q#Cx43uqO%lL|4cx>CQqx2v$}=`pXeOLp#)5Y8_?{i67=*MxR$SR}2skI_hBvB5&f^q@Pf zz{|(a$gpDK>4$II^;sTqo{*p*lSv9H>qP+Hb#nERi3)4zyO&`1O4q@8BLD9F@g2UB zeYp9H;7vh~&_@I>>E*kuK>Oi}ar~EtEz{7-vX0$}p>@a7ufv)>^mL>|95lm3L!QSv z1VW`=YzxML-O?weuA08mZ}|m3`mTz<16utF<;5oI^2=XWc~zM)@v&5?;-$^a2U9qC zKPQ0L+7NhXb6*%~ssc~Rh-Z72L9hmICxNxP=z+$XcjfW!o8!EX5^*8|uS?66x%=O+ zBRUO-6o8-IPl7OL!=t~l3k(~|dB_ET=y$*^*#W#iOx=3sw$v8EARlMX6i-2sruF1TagQU*9$#6V; zFl#0D`aK*)iXt{K(d@vD+lrSxfHevrYfm#Mg^}Fp`}w50F3iNyav+WT%d;0aZ_XJi zf6Hp9^R&(cMpP`euI=r2U6CW2b=(F-Ms$i5*dG&sOB5rhU6uK&7k3s{-ZUw6`7)=MuT|)IyK8bX;V~^odV=7JxqyRD#cYl%#_L@>hw??Z zQ$rR_7%RBB$3LFxpEwU!=^4sAS98)zo`6oVn%B!a_k#I+7uzKz^6jZ7M3df5@9?m+X{LwXJk zWL@adbN*_gV2F{R^HaT+dfTUd>D)ThoGwFum(gAQ)Hs>e?Q`8v=I1p^2Wy|=%fJw@ zBttGmA8ELCV)xgT4Ljn8i%LI1D@WfCBwxFiY&~YGtBIr5lG3GpL_`#;NsFz z#^K7_xyH4dhq@6q9}YN99Plk$F;@&H}{X{^kpZF zx{01m3a!@~C~F)pFiI+J%#_-A-E2$pr>|?u(5VYtsxB>!PG~qYEHKVaMFX@$!_td7 z_|_=-hOt-N%YIfDDrq|~69EC0(6_n?gg2k`>88f_m4Q1JC^^x<+x!PG%=bFH6S75% zP4uEW>NFVcsiqD;0=zmr%4SeEWSow#`95f>*GNYLk9;pp76<6eT&i9u;lvolPR!?z z2{f}o?G@`!&_GCV8kyjn;3wk5674(GM_(N^MFo?^2q_;P;Z0t53OZ+ujcp zpXWZYvZ`%suay_}NJ%H7+>(t-UNZ9qCs?SR?sUEC4{v=dmC?rdJc-do>Ux6HO52$p zQa$9c*@vVDhtr_aLr+*gKbzEpXW-N$Bzu^}&32=DXq3Ca<7HpZiPSsBok5MgDSDqQ zzOKaO(4B~5&HmBY`MtsOKlp2u0Is2}m#i$9JD1-;jj#_+<25R)ezsEEcx&yyUj|Z2 zeI`BR^D#3{QrQ?Em!d=oNw{ht&#v)h^mumXHrwISgE-K@9p;jrLMv~MQC#MmuyIH6 zoBCt)%w02sAWRn+wAvu0*LlJP11o5by>RnrxFmI?Fdww>dXpB`NxJ(uJif2T1*{xE ztoEeHBnqJCiv9jfZ@5k0Q)1Y`XWyIVra2Xo%#qsgLFbtJoK4-z4Db=tC` z(;Qxah(tyBq?agkH>rK*!c>O1FMAL(26FBoc|CcrMf>KG^|Re-v`oZI=TxlVW)jcXDy#OIxJL~xj@C>0sRy2j zW~b7uN6RYg8JIw)VdCyolhh$rr>Z<`$@gWatv(|sDbxqh!ANyBC-LT!{ZT4?K19C=(mItMfN&N)> zF`+M^tA2yqG?RG=L9-&6=7Cv0D46d+Jjxe@5IWZnOstG=Xe!Y&RQboz4}Tk-nq7>< z!DNx8&z@w!X^|^dsx?MM>~im>$$!5&wIb7vRdO!{#NH6Y3~Y zO&V@+&vn~$P{}KmqniU`rD4{)oN5}oNO#6`?t{c+`o`%Ufl~3!x|Em6U(*TH7? zN1BIp2_d-ZXRchdujpWTvSX?5&1srj*2#0>=gF8HyM1;7x+wt0wDsUfzP0E`cP;23 z#zDHl7Z7wu`yakG-0_K>xrQ(rGT6M)5T;@DE>fLO14+(7}yUZA5Y})4i@OB1!Tm zF8;b0c0C zM@0XA^P5r5|1!$l>;U$|1(a_eX1)H9Sjdw}i2P-qzYK)R+Zpqs&MGnq$#ccdI{QI(Rk&H@)BBYSuvY5Xm^ko)HK?%HU$;;-G#sZ$}AhuhRDRS@u>HRq$d^XS9hjb zI5FKzE!2^}rcpuOU;|!6anBTcwN3RSjygI$TI%G}7AojSw*NgOxFEYK(tz4Yzwf1U zVTkQr7@O2wHu+~cfPk%JZ&Dr&aF)_+YvrzgY>Jt5`_}6XE8VbGEc2443UqXp>l9fC zDyq$4_^b#4 z&6`_6qT9j8?b9$$A-jyP%4>du-{+FDkcs8EuSkdfeWi51Ur;5y`=={l8XNOrbyp0d zQ>u>`)uoU8+Tq7KxOaZPd1P(U`9RO;HrAYQV@7|8?!(2W2ux+-fF*7!oNIFRLwM%1 zXeT9|Ca_*ujjn`~zH+#QMq{1AMpeeIjmd1D@w>CCydD0#3(@m-fsWYzvH%AjY?j|W zo96E}R%n+=_$Lu&XUS+ldmr=fbu;~n$)C;~N`J4Gy5J}5>-siUoWru?$#OJ^vI?8cE{BVHlcT@>8$#pQNdN!< literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/shellconfig.jpg b/ide/src/figures/OperationSkills/shellconfig.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34ed6fffd537dc5dd712c288bba7d5ab30d6e5ce GIT binary patch literal 150390 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/sqlselect.jpg b/ide/src/figures/OperationSkills/sqlselect.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e72d9de77434ec7371e37a6e4b0df8afa2800587 GIT binary patch literal 145876 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 z�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 E9}KC7fB*mh literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/threadtree.jpg b/ide/src/figures/OperationSkills/threadtree.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5499d1218dca2d87697bed3b0f2863f66f441d4 GIT binary patch literal 112832 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/tracestop.jpg b/ide/src/figures/OperationSkills/tracestop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f95cbc47d9567f0ae6e8b799891b1c88ebdb832 GIT binary patch literal 89063 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 literal 0 HcmV?d00001 diff --git a/ide/src/trace/SpApplication.ts b/ide/src/trace/SpApplication.ts index dc628124..a7d37b0a 100644 --- a/ide/src/trace/SpApplication.ts +++ b/ide/src/trace/SpApplication.ts @@ -54,11 +54,31 @@ import './component/SpFlags.js'; import './component/trace/base/CustomThemeColor.js'; import { CustomThemeColor, Theme } from './component/trace/base/CustomThemeColor.js'; import { convertPool } from './database/Convert.js'; +import { LongTraceDBUtils } from './database/LongTraceDBUtils.js'; @element('sp-application') export class SpApplication extends BaseElement { private static loadingProgress: number = 0; private static progressStep: number = 2; + longTraceHeadMessageList: Array<{ + pageNum: number + data: ArrayBuffer + }> = []; + + longTraceDataList: Array<{ + fileType: string + index: number + pageNum: number + startOffsetSize: number + endOffsetSize: number + }> = []; + + longTraceTypeMessageMap: Map> | undefined | null; static skinChange: Function | null | undefined = null; static skinChange2: Function | null | undefined = null; skinChangeArray: Array = []; @@ -75,6 +95,10 @@ export class SpApplication extends BaseElement { }; private traceFileName: string | undefined; colorTransiton: any; + static isLongTrace: boolean = false; + fileTypeList: string[] = ['ebpf', 'arkts', 'hiperf']; + private pageTimStamp: number = 0; + private currentPageNum: number = 1; static get observedAttributes() { return ['server', 'sqlite', 'wasm', 'dark', 'vs', 'query-sql', 'subsection']; @@ -263,7 +287,7 @@ export class SpApplication extends BaseElement { align-items: center; border: 1px solid var(--dark-border,#c5c5c5); } - .search input{ + lit-search input{ outline: none; border: 0px; background-color: transparent; @@ -283,7 +307,7 @@ export class SpApplication extends BaseElement { color: #b5b7ba; font-size: 1em; } - .search input::placeholder { + lit-search input::placeholder { color: #b5b7ba; font-size: 1em; } @@ -333,7 +357,7 @@ export class SpApplication extends BaseElement { font-size: 20px; color: var(--dark-color1,#47A7E0); } - .chart-filter .custom-color { + .chart-filter { visibility: hidden; z-index: -1; } @@ -368,6 +392,107 @@ export class SpApplication extends BaseElement { .filter-config:hover { opacity: 0.7; } + .page-button[prohibit] { + cursor: none; + } + .page-button { + background: #D8D8D8; + border-radius: 12px; + width: 24px; + height: 24px; + margin-right: 12px; + display: flex; + justify-content: center; + align-items: center; + } + #preview-button:hover { + cursor: pointer; + background: #0A59F7; + color: #FFFFFF; + opacity: 1; + } + #next-button:hover { + cursor: pointer; + background: #0A59F7; + color: #FFFFFF; + opacity: 1; + } + .pagination:hover { + cursor: pointer; + background: #0A59F7; + color: #FFFFFF; + opacity: 1; + } + .confirm-button:hover { + cursor: pointer; + background: #0A59F7; + color: #FFFFFF; + opacity: 1; + } + .pagination { + background: #D8D8D8; + color: #000000; + border-radius: 12px; + width: 24px; + height: 24px; + margin-right: 12px; + display: flex; + justify-content: center; + align-items: center; + font-family: Helvetica; + font-size: 12px; + text-align: center; + line-height: 20px; + font-weight: 400; + opacity: 0.6; + } + .pagination[selected] { + background: #0A59F7; + color: #FFFFFF; + opacity: 1; + } + .page-jump-font { + opacity: 0.6; + font-family: Helvetica; + font-size: 12px; + color: #000000; + text-align: center; + line-height: 20px; + font-weight: 400; + } + .page-input { + background: #D8D8D8; + border-radius: 10px; + width: 40px; + height: 24px; + justify-content: center; + align-items: center; + text-align: center; + margin-right: 8px; + border: none; + } + .confirm-button { + font-family: Helvetica; + font-size: 12px; + color: #0A59F7; + text-align: center; + font-weight: 400; + border: 1px solid #0A59F7; + border-radius: 10px; + width: 64px; + height: 24px; + line-height: 24px; + } + .long_trace_page { + justify-content: flex-end; + width: -webkit-fill-available; + margin-right: 80px; + align-items: center; + display: none; + } + .page-number-list { + display: flex; + }

+ @@ -417,6 +554,7 @@ export class SpApplication extends BaseElement { initElements() { SpStatisticsHttpUtil.initStatisticsServerConfig(); SpStatisticsHttpUtil.addUserVisitAction('visit'); + LongTraceDBUtils.getInstance().createDBAndTable().then(); let that = this; this.querySql = true; this.rootEL = this.shadowRoot!.querySelector('.root'); @@ -442,6 +580,7 @@ export class SpApplication extends BaseElement { let sidebarButton: HTMLDivElement | undefined | null = this.shadowRoot?.querySelector('.sidebar-button'); let chartFilter = this.shadowRoot?.querySelector('.chart-filter') as TraceRowConfig; let cutTraceFile = this.shadowRoot?.querySelector('.cut-trace-file') as HTMLImageElement; + let longTracePage = that.shadowRoot!.querySelector('.long_trace_page') as HTMLDivElement; cutTraceFile.addEventListener('click', () => { this.croppingFile(progressEL, litSearch); }); @@ -934,6 +1073,265 @@ export class SpApplication extends BaseElement { }); } + function sendCutFileMessage(timStamp: number) { + that.pageTimStamp = timStamp; + threadPool.init('wasm').then(() => { + let headUintArray = new Uint8Array(that.longTraceHeadMessageList.length * 1024); + let headOffset = 0; + that.longTraceHeadMessageList = that.longTraceHeadMessageList.sort((leftMessage, rightMessage)=> leftMessage.pageNum - rightMessage.pageNum); + for (let index = 0; index < that.longTraceHeadMessageList.length; index++) { + let currentUintArray = new Uint8Array(that.longTraceHeadMessageList[index].data); + headUintArray.set(currentUintArray, headOffset); + headOffset += currentUintArray.length; + } + threadPool.submit('ts-cut-file', '', { + headArray: headUintArray, + timeStamp: timStamp, + splitFileInfo: that.longTraceTypeMessageMap?.get(0), + splitDataList: that.longTraceDataList + }, (res: Array) => { + if (that.longTraceHeadMessageList.length > 0) { + getTraceFileByPage(that.currentPageNum); + litSearch.style.marginLeft = '80px'; + let pageListDiv = that.shadowRoot?.querySelector('.page-number-list') as HTMLDivElement; + that.drawPageNumber(longTracePage, pageListDiv, that.longTraceHeadMessageList.length); + let previewButton: HTMLDivElement | null | undefined = that.shadowRoot?.querySelector('#preview-button'); + let nextButton: HTMLDivElement | null | undefined = that.shadowRoot?.querySelector('#next-button'); + if (previewButton) { + previewButton.style.pointerEvents = 'none'; + previewButton.style.opacity = '0.7'; + previewButton.addEventListener('click', () => { + if (!progressEL.loading) { + return; + } + if (that.currentPageNum > 1) { + that.currentPageNum--; + if (that.currentPageNum === 1) { + previewButton!.style.pointerEvents = 'none'; + nextButton!.style.pointerEvents = 'auto'; + previewButton!.style.opacity = '0.7'; + } else { + previewButton!.style.pointerEvents = 'auto'; + nextButton!.style.pointerEvents = 'none'; + previewButton!.style.opacity = '1'; + } + let previewElement = that.shadowRoot?.querySelector(`.page-number[title='${that.currentPageNum}']`); + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + previewElement!.setAttribute('selected', ''); + progressEL.loading = true; + getTraceFileByPage(that.currentPageNum); + } + }); + } + if (nextButton && that.longTraceHeadMessageList.length === 1) { + nextButton.style.pointerEvents = 'none'; + nextButton.style.opacity = '0.7'; + } + nextButton!.addEventListener('click', () => { + if (!progressEL.loading) { + return; + } + if (that.currentPageNum < that.longTraceHeadMessageList.length) { + that.currentPageNum++; + if (that.currentPageNum === that.longTraceHeadMessageList.length) { + nextButton!.style.pointerEvents = 'none'; + previewButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '0.7'; + } else { + previewButton!.style.pointerEvents = 'auto'; + nextButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '1'; + } + let nextElement = that.shadowRoot?.querySelector(`.page-number[title='${that.currentPageNum}']`); + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + nextElement!.setAttribute('selected', ''); + progressEL.loading = true; + getTraceFileByPage(that.currentPageNum); + } + }); + pageListDiv.querySelectorAll('div').forEach(divEL => { + divEL.addEventListener('click', () => { + if (!progressEL.loading) { + return; + } + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + divEL.setAttribute('selected', ''); + let selectPageNum = Number(divEL.textContent); + if (selectPageNum !== that.currentPageNum) { + that.currentPageNum = selectPageNum; + if (that.currentPageNum === that.longTraceHeadMessageList.length) { + nextButton!.style.pointerEvents = 'none'; + nextButton!.style.opacity = '0.7'; + } else { + nextButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '1'; + } + if (that.currentPageNum === 1) { + previewButton!.style.pointerEvents = 'none'; + previewButton!.style.opacity = '0.7'; + } else { + previewButton!.style.pointerEvents = 'auto'; + previewButton!.style.opacity = '1'; + } + progressEL.loading = true; + getTraceFileByPage(that.currentPageNum); + } + }); + }); + let pageInput = that.shadowRoot?.querySelector('.page-input'); + pageInput!.addEventListener('input', () => { + let value = pageInput!.value; + value = value.replace(/\D/g, ''); + if (value) { + value = Math.min(that.longTraceHeadMessageList.length, parseInt(value)).toString(); + } + pageInput!.value = value; + }); + let pageConfirmEl = that.shadowRoot?.querySelector('.confirm-button'); + pageConfirmEl!.addEventListener('click', () => { + if (!progressEL.loading) { + return; + } + let pageIndex = Number(pageInput!.value); + if (pageIndex > 0 && pageIndex < that.longTraceHeadMessageList.length) { + that.currentPageNum = pageIndex; + if (that.currentPageNum === that.longTraceHeadMessageList.length) { + nextButton!.style.pointerEvents = 'none'; + nextButton!.style.opacity = '0.7'; + } else { + nextButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '1'; + } + if (that.currentPageNum === 1) { + previewButton!.style.pointerEvents = 'none'; + previewButton!.style.opacity = '0.7'; + } else { + previewButton!.style.pointerEvents = 'auto'; + previewButton!.style.opacity = '1'; + } + let nextElement = that.shadowRoot?.querySelector(`.page-number[title='${that.currentPageNum}']`); + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + nextElement!.setAttribute('selected', ''); + progressEL.loading = true; + getTraceFileByPage(that.currentPageNum); + } + }); + } + }, 'long_trace'); + }); + } + + function getTraceFileByPage(pageNumber: number): void { + openFileInit(); + litSearch.clear(); + showContent(spSystemTrace!); + that.search = true; + progressEL.loading = true; + if (!that.wasm) { + progressEL.loading = false; + return; + } + if (that.pageTimStamp === 0) { + return; + } + let indexedDbPageNum = pageNumber - 1; + let maxTraceFileLength = 400 * 1024 * 1024; + let traceRange = IDBKeyRange.bound([that.pageTimStamp, 'trace', indexedDbPageNum], [that.pageTimStamp, 'trace', indexedDbPageNum], false, false); + LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, traceRange, 'QueryFileByPage').then(result => { + let traceData = indexedDataToBufferData(result); + let traceLength = traceData.byteLength; + let ebpfRange = IDBKeyRange.bound([that.pageTimStamp, 'ebpf_new', indexedDbPageNum], [that.pageTimStamp, 'ebpf_new', indexedDbPageNum], false, false); + let arkTsRange = IDBKeyRange.bound([that.pageTimStamp, 'arkts_new', indexedDbPageNum], [that.pageTimStamp, 'arkts_new', indexedDbPageNum], false, false); + let hiperfRange = IDBKeyRange.bound([that.pageTimStamp, 'hiperf_new', indexedDbPageNum], [that.pageTimStamp, 'hiperf_new', indexedDbPageNum], false, false); + Promise.all([ + LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, ebpfRange, 'QueryFileByPage'), + LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, arkTsRange, 'QueryFileByPage'), + LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, hiperfRange, 'QueryFileByPage') + ]).then(otherResult => { + let ebpfData = indexedDataToBufferData(otherResult[0]); + let arkTsData = indexedDataToBufferData(otherResult[1]); + let hiperfData = indexedDataToBufferData(otherResult[2]); + let traceArray = new Uint8Array(traceData); + let ebpfArray = new Uint8Array(ebpfData); + let arkTsArray = new Uint8Array(arkTsData); + let hiPerfArray = new Uint8Array(hiperfData); + let allOtherData = [ebpfData, arkTsData, hiperfData]; + let otherDataLength = traceLength + ebpfData.byteLength + arkTsData.byteLength + hiperfData.byteLength; + let fileName = `hiprofiler_long_trace_${indexedDbPageNum}.htrace`; + if (otherDataLength > maxTraceFileLength) { + if (traceLength > maxTraceFileLength) { + console.log('trace File too big'); + } else { + let freeDataLength = maxTraceFileLength - traceLength; + let freeDataIndex = findFreeSizeAlgorithm([ebpfData.byteLength, arkTsData.byteLength, hiperfData.byteLength], freeDataLength); + let finalData = [traceData]; + freeDataIndex.forEach(dataIndex => { + finalData.push(allOtherData[dataIndex]); + }); + let fileBlob = new Blob(finalData); + const file = new File([fileBlob], fileName); + let fileSize = (file.size / 1048576).toFixed(1); + handleWasmMode(file, file.name, `${fileSize}M`, fileName); + } + } else { + let fileBlob = new Blob([traceArray, ebpfArray, arkTsArray, hiPerfArray]); + const file = new File([fileBlob], fileName); + let fileSize = (file.size / 1048576).toFixed(1); + handleWasmMode(file, file.name, `${fileSize}M`, file.name); + } + that.traceFileName = fileName; + }); + }); + } + + function indexedDataToBufferData(sourceData: any): ArrayBuffer { + let uintArrayLength = 0; + let uintDataList = sourceData.map((item: any) => { + let currentBufData = new Uint8Array(item.buf); + uintArrayLength += currentBufData.length; + return currentBufData; + }); + let resultArrayBuffer = new ArrayBuffer(uintArrayLength); + let resultUintArray = new Uint8Array(resultArrayBuffer); + let offset = 0; + uintDataList.forEach((currentArray: Uint8Array) => { + resultUintArray.set(currentArray, offset); + offset += currentArray.length; + }); + return resultArrayBuffer; + } + + function findFreeSizeAlgorithm(numbers: Array, freeSize: number): Array { + let closestSize = 0; + let currentSize = 0; + let finalIndex: Array = []; + let currentSelectIndex: Array = []; + + function reBackFind(index: number): void { + if (index === numbers.length) { + const sumDifference = Math.abs(currentSize - freeSize); + if (currentSize <= freeSize && sumDifference < Math.abs(closestSize - freeSize)) { + closestSize = currentSize; + finalIndex = [...currentSelectIndex]; + } + return; + } + currentSize += numbers[index]; + currentSelectIndex.push(index); + reBackFind(index + 1); + currentSize -= numbers[index]; + currentSelectIndex.pop(); + reBackFind(index + 1); + } + + reBackFind(0); + return finalIndex; + } + function handleWasmMode(ev: any, showFileName: string, fileSize: string, fileName: string) { litSearch.setPercent('', 1); threadPool.init('wasm').then((res) => { @@ -1053,8 +1451,147 @@ export class SpApplication extends BaseElement { } }; + function openLongTraceFile(ev: any, isRecordTrace: boolean = false) { + openFileInit(); + litSearch.clear(); + showContent(spSystemTrace!); + that.search = true; + progressEL.loading = true; + if (!that.wasm) { + progressEL.loading = false; + return; + } + if (longTracePage) { + longTracePage.style.display = 'none'; + litSearch.style.marginLeft = '0px'; + let pageListDiv = that.shadowRoot?.querySelector('.page-number-list') as HTMLDivElement; + pageListDiv.innerHTML = ''; + } + that.currentPageNum = 1; + if (isRecordTrace) { + let detail = (ev as any).detail; + sendCutFileMessage(detail.timeStamp); + } else { + that.longTraceHeadMessageList = []; + that.longTraceTypeMessageMap = undefined; + that.longTraceDataList = []; + let detail = (ev as any).detail; + let timStamp = new Date().getTime(); + const readFiles = async (files: FileList) => { + const promises = Array.from(files).map((file) => { + let types = that.fileTypeList.filter(type => file.name.toLowerCase().includes(type.toLowerCase())); + return readFile(file, types); + }); + return Promise.all(promises); + }; + const readFile = async (file: any, types: Array) => { + return new Promise((resolve, reject) => { + let fileName = file.name; + let fr = new FileReader(); + let message = { + fileType: '', + startIndex: 0, + endIndex: 0, + size: 0, + }; + info('Parse long trace using wasm mode '); + litSearch.setPercent('', 1); + let maxSize = 48 * 1024 * 1024; + let fileType = 'trace'; + let pageNumber = 0; + if (types.length > 0) { + fileType = types[0]; + } else { + let firstLastIndexOf = fileName.lastIndexOf('.'); + let firstText = fileName.slice(0, firstLastIndexOf); + let resultLastIndexOf = firstText.lastIndexOf('_'); + pageNumber = Number(firstText.slice(resultLastIndexOf + 1, firstText.length)) - 1; + } + let chunk = maxSize; + let offset = 0; + let sliceLen = 0; + let index = 1; + fr.onload = function () { + let data = fr.result as ArrayBuffer; + litSearch.setPercent('downloading file ', 10); + LongTraceDBUtils.getInstance().indexedDBHelp.add(LongTraceDBUtils.getInstance().tableName, { + 'buf': data, + 'id': `${fileType}_${timStamp}_${pageNumber}_${index}`, + 'fileType': fileType, + 'pageNum': pageNumber, + 'startOffset': offset, + 'endOffset': offset + sliceLen, + 'index': index, + 'timStamp': timStamp + }).then(() => { + if (index === 1 && types.length === 0) { + that.longTraceHeadMessageList.push({ + pageNum: pageNumber, + data: data.slice(offset, 1024) + }); + } + that.longTraceDataList.push({ + index: index, + fileType: fileType, + pageNum: pageNumber, + startOffsetSize: offset, + endOffsetSize: offset + sliceLen + }); + offset += sliceLen; + if (offset < file.size) { + index++; + } + continue_reading(); + } + ); + }; + + function continue_reading() { + if (offset >= file.size) { + message.endIndex = index; + message.size = file.size; + if (that.longTraceTypeMessageMap) { + if (that.longTraceTypeMessageMap?.has(pageNumber)) { + let oldTypeList = that.longTraceTypeMessageMap?.get(pageNumber); + oldTypeList?.push(message); + that.longTraceTypeMessageMap?.set(pageNumber, oldTypeList!); + } else { + that.longTraceTypeMessageMap?.set(pageNumber, [message]); + } + } else { + that.longTraceTypeMessageMap = new Map(); + that.longTraceTypeMessageMap.set(pageNumber, [message]); + } + resolve(true); + return; + } + if (index === 1) { + message.fileType = fileType; + message.startIndex = index; + } + sliceLen = Math.min(file.size - offset, chunk); + let slice = file.slice(offset, offset + sliceLen); + fr.readAsArrayBuffer(slice); + } + + continue_reading(); + fr.onerror = function () { + reject(false); + }; + }); + }; + readFiles(detail).then(() => { + sendCutFileMessage(timStamp); + }); + } + } + function openTraceFile(ev: any, isClickHandle?: boolean) { that.removeAttribute('custom-color'); + longTracePage.style.display = 'none'; + litSearch.style.marginLeft = '0px'; + let pageListDiv = that.shadowRoot?.querySelector('.page-number-list') as HTMLDivElement; + pageListDiv.innerHTML = ''; openFileInit(); if (that.vs && isClickHandle) { Cmd.openFileDialog().then((res: string) => { @@ -1177,6 +1714,17 @@ export class SpApplication extends BaseElement { openTraceFile(hand, true); }, }, + { + title: 'Open long trace file', + icon: 'folder', + fileChoose: !that.vs, + fileHandler: function (ev: InputEvent) { + openLongTraceFile(ev); + }, + clickHandler: function (hand: any) { + openLongTraceFile(hand, true); + }, + }, { title: 'Record new trace', icon: 'copyhovered', @@ -1186,6 +1734,8 @@ export class SpApplication extends BaseElement { spRecordTrace!.startRefreshDeviceList(); } spRecordTrace!.synchronizeDeviceList(); + spRecordTemplate!.record_template = false; + spRecordTrace!.refreshConfig(true); showContent(spRecordTrace!); }, }, @@ -1198,6 +1748,8 @@ export class SpApplication extends BaseElement { spRecordTemplate!.startRefreshDeviceList(); } spRecordTemplate!.refreshHint(); + spRecordTemplate!.record_template = true; + spRecordTemplate!.refreshConfig(false); spRecordTemplate!.synchronizeDeviceList(); showContent(spRecordTemplate!); }, @@ -1371,6 +1923,39 @@ export class SpApplication extends BaseElement { } } + private drawPageNumber(longTracePage: HTMLDivElement, pageListDiv: HTMLDivElement, maxPageNumber: number): void { + longTracePage.style.display = 'flex'; + if (maxPageNumber > 6) { + for (let index = 1; index <= 6; index++) { + let element = document.createElement('div'); + element.className = 'page-number pagination'; + element.textContent = index.toString(); + element.title = index.toString(); + if (index === 1) { + element.setAttribute('selected', ''); + } + if (index === 5) { + element.textContent = '...'; + } + if (index === 6) { + element.textContent = `${maxPageNumber}`; + } + pageListDiv.appendChild(element); + } + } else { + for (let index = 1; index <= maxPageNumber; index++) { + let element = document.createElement('div'); + element.className = 'page-number pagination'; + element.textContent = index.toString(); + element.title = index.toString(); + if (index === 1) { + element.setAttribute('selected', ''); + } + pageListDiv.appendChild(element); + } + } + } + /** * 修改颜色或者主题,重新绘制侧边栏和泳道图 * @param theme 当前主题(深色和浅色) @@ -1659,6 +2244,8 @@ export class SpApplication extends BaseElement { let mainMenu = this.shadowRoot?.querySelector('#main-menu') as LitMainMenu; // @ts-ignore mainMenu.menus[0].children[0].disabled = disable; + // @ts-ignore + mainMenu.menus[0].children[1].disabled = disable; if (mainMenu.menus!.length > 2) { // @ts-ignore mainMenu.menus[1].children.map((it) => (it.disabled = disable)); diff --git a/ide/src/trace/component/SpQuerySQL.ts b/ide/src/trace/component/SpQuerySQL.ts index 79fc8c2f..1e33af71 100644 --- a/ide/src/trace/component/SpQuerySQL.ts +++ b/ide/src/trace/component/SpQuerySQL.ts @@ -495,6 +495,9 @@ export class SpQuerySQL extends BaseElement { lit-icon { text-overflow: ellipsis; } + .runButton:hover { + cursor: pointer; + }
diff --git a/ide/src/trace/component/SpRecordTrace.ts b/ide/src/trace/component/SpRecordTrace.ts index 3456de22..c84297b9 100644 --- a/ide/src/trace/component/SpRecordTrace.ts +++ b/ide/src/trace/component/SpRecordTrace.ts @@ -28,7 +28,7 @@ import { CpuConfig, CreateSessionRequest, DiskioConfig, - FileSystemConfig, + HiebpfConfig, FpsConfig, HilogConfig, HiperfPluginConfig, @@ -69,6 +69,7 @@ import { SpStatisticsHttpUtil } from '../../statistics/util/SpStatisticsHttpUtil import { SpArkTs } from './setting/SpArkTs.js'; import { SpWebHdcShell } from './setting/SpWebHdcShell.js'; import { SpHilogRecord } from './setting/SpHilogRecord.js'; +import { LongTraceDBUtils } from '../database/LongTraceDBUtils.js'; @element('sp-record-trace') export class SpRecordTrace extends BaseElement { @@ -80,6 +81,7 @@ export class SpRecordTrace extends BaseElement { public static cancelRecord = false; static supportVersions = ['3.2', '4.0+']; private nowChildItem: HTMLElement | undefined; + private longTraceList: Array = []; set record_template(re: boolean) { if (re) { @@ -87,6 +89,9 @@ export class SpRecordTrace extends BaseElement { } else { this.removeAttribute('record_template'); } + if (this.recordSetting) { + this.recordSetting.isRecordTemplate = re; + } } get record_template(): boolean { @@ -522,6 +527,19 @@ export class SpRecordTrace extends BaseElement { mainMenu.menus = mainMenu.menus; } + refreshConfig(isTraceConfig: boolean) { + let recordSettingEl = this.shadowRoot?.querySelector('record-setting') as SpRecordSetting; + if (recordSettingEl) { + if (isTraceConfig) { + recordSettingEl.setAttribute('trace_config', ''); + } else { + if (recordSettingEl.hasAttribute('trace_config')) { + recordSettingEl.removeAttribute('trace_config'); + } + } + } + } + refreshHint() { let flags = FlagsConfig.getAllFlagConfig(); let showHint = false; @@ -1007,6 +1025,7 @@ export class SpRecordTrace extends BaseElement { clickHandler: function (ev: InputEvent): void { that.appContent!.innerHTML = ''; that.appContent!.append(that.spFileSystem!); + that.spFileSystem!.setAttribute('long_trace', ''); that.freshMenuItemsStatus('eBPF Config'); }, }, @@ -1246,79 +1265,21 @@ export class SpRecordTrace extends BaseElement { this.buttonDisable(true); this.freshMenuDisable(true); this.freshConfigMenuDisable(true); - HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then( - (traceResult) => { - let re = this.isSuccess(traceResult); - if (re == 0) { - this.litSearch!.setPercent('tracing htrace down', -1); - HdcDeviceManager.shellResultAsString( - CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.output, - false - ).then((traceFileSize) => { - this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`,-1); - if (traceFileSize.indexOf('No such') != -1) { - this.litSearch!.setPercent('No such file or directory', -2); - this.buttonDisable(false); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - } else if (Number(traceFileSize) <= SpRecordTrace.MaxFileSize) { - HdcDeviceManager.fileRecv(this.recordSetting!.output, (perNumber: number) => { - this.litSearch!.setPercent('downloading Hitrace file ', perNumber); - }).then((pullRes) => { - this.litSearch!.setPercent('downloading Hitrace file ', 101); - pullRes.arrayBuffer().then((buffer) => { - let fileName = this.recordSetting!.output.substring( - this.recordSetting!.output.lastIndexOf('/') + 1 - ); - let file = new File([buffer], fileName); - let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; - let children = main.menus as Array; - let child = children[0].children as Array; - let fileHandler = child[0].fileHandler; - if (fileHandler && !SpRecordTrace.cancelRecord) { - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - this.recordButtonDisable(false); - fileHandler({ - detail: file, - }); - } else { - SpRecordTrace.cancelRecord = false; - } - }); - }); - } else { - this.recordButtonText!.textContent = this.record; - this.recordButtonDisable(false); - this.litSearch!.setPercent('htrace file is too big', -2); - this.buttonDisable(false); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - } - }); - } else if (re == 2) { - this.recordButtonDisable(false); - this.litSearch!.setPercent('stop tracing htrace ', -1); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } else if (re == -1) { - this.recordButtonDisable(false); - this.litSearch!.setPercent('The device is abnormal', -2); - this.progressEL!.loading = false; - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } else { - this.recordButtonDisable(false); - this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } - } - ); + if (SpApplication.isLongTrace) { + HdcDeviceManager.shellResultAsString( + CmdConstant.CMD_CLEAR_LONG_FOLD + this.recordSetting!.longOutPath, + false + ).then(()=>{ + HdcDeviceManager.shellResultAsString( + CmdConstant.CMD_MKDIR_LONG_FOLD + this.recordSetting!.longOutPath, + false + ).then(()=>{ + this.recordLongTraceCmd(traceCommandStr); + }); + }); + } else { + this.recordTraceCmd(traceCommandStr); + } }); }); } catch (e) { @@ -1335,6 +1296,246 @@ export class SpRecordTrace extends BaseElement { } } + private recordTraceCmd(traceCommandStr: string): void{ + HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then( + (traceResult) => { + let re = this.isSuccess(traceResult); + if (re == 0) { + this.litSearch!.setPercent('tracing htrace down', -1); + HdcDeviceManager.shellResultAsString( + CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.output, + false + ).then((traceFileSize) => { + this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`,-1); + if (traceFileSize.indexOf('No such') != -1) { + this.litSearch!.setPercent('No such file or directory', -2); + this.buttonDisable(false); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + } else if (Number(traceFileSize) <= SpRecordTrace.MaxFileSize) { + HdcDeviceManager.fileRecv(this.recordSetting!.output, (perNumber: number) => { + this.litSearch!.setPercent('downloading Hitrace file ', perNumber); + }).then((pullRes) => { + this.litSearch!.setPercent('downloading Hitrace file ', 101); + pullRes.arrayBuffer().then((buffer) => { + let fileName = this.recordSetting!.output.substring( + this.recordSetting!.output.lastIndexOf('/') + 1 + ); + let file = new File([buffer], fileName); + let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; + let children = main.menus as Array; + let child = children[0].children as Array; + let fileHandler = child[0].fileHandler; + if (fileHandler && !SpRecordTrace.cancelRecord) { + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + this.recordButtonDisable(false); + fileHandler({ + detail: file, + }); + } else { + SpRecordTrace.cancelRecord = false; + } + }); + }); + } else { + this.recordButtonText!.textContent = this.record; + this.recordButtonDisable(false); + this.litSearch!.setPercent('htrace file is too big', -2); + this.buttonDisable(false); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + } + }); + } else if (re == 2) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('stop tracing htrace ', -1); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else if (re == -1) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('The device is abnormal', -2); + this.progressEL!.loading = false; + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else { + this.recordButtonDisable(false); + this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } + } + ); + } + + private recordLongTraceCmd(traceCommandStr: string): void{ + HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then( + (traceResult) => { + let re = this.isSuccess(traceResult); + if (re === 0) { + this.litSearch!.setPercent('tracing htrace down', -1); + HdcDeviceManager.shellResultAsString( + CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.longOutPath, + false + ).then((traceFileSize) => { + this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`,-1); + if (traceFileSize.indexOf('No such') != -1) { + this.litSearch!.setPercent('No such file or directory', -2); + this.buttonDisable(false); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + } else { + this.recordLongTrace(); + } + }); + } else if (re === 2) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('stop tracing htrace ', -1); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else if (re === -1) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('The device is abnormal', -2); + this.progressEL!.loading = false; + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else { + this.recordButtonDisable(false); + this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } + } + ); + } + + private loadLongTraceFile(timStamp: number) { + return new Promise(async (resolve)=>{ + let maxSize = 48 * 1024 * 1024; + for (let fileIndex = 0; fileIndex < this.longTraceList.length; fileIndex++) { + if (this.longTraceList[fileIndex] !== '') { + let types = this.sp!.fileTypeList.filter(type => this.longTraceList[fileIndex].toLowerCase().includes(type.toLowerCase())); + let pageNumber = 0; + let fileType = types[0]; + if (types.length === 0) { + fileType = 'trace'; + pageNumber = Number(this.longTraceList[fileIndex].substring(this.longTraceList[fileIndex].lastIndexOf('_') + 1, this.longTraceList[fileIndex].lastIndexOf('.'))) - 1; + } + let pullRes = await HdcDeviceManager.fileRecv(this.recordSetting!.longOutPath + this.longTraceList[fileIndex], (perNumber: number) => { + this.litSearch!.setPercent(`downloading ${fileType} file `, perNumber); + }); + this.litSearch!.setPercent(`downloading ${fileType} file `, 101); + let buffer = await pullRes.arrayBuffer(); + let chunks = Math.ceil(buffer.byteLength / maxSize); + let offset = 0; + let sliceLen = 0; + let message = { + fileType: '', + startIndex: 0, + endIndex: 0, + size: 0, + }; + for (let chunkIndex = 0; chunkIndex < chunks; chunkIndex++) { + let start = chunkIndex * maxSize; + let end = Math.min(start + maxSize, buffer.byteLength); + let chunk = buffer.slice(start, end); + if (chunkIndex === 0) { + message.fileType = fileType; + message.startIndex = chunkIndex; + } + sliceLen = Math.min(buffer.byteLength - offset, maxSize); + if (chunkIndex === 0 && fileType === 'trace') { + this.sp!.longTraceHeadMessageList.push({ + pageNum: pageNumber, + data: buffer.slice(offset, 1024) + }); + } + this.sp!.longTraceDataList.push({ + index: chunkIndex, + fileType: fileType, + pageNum: pageNumber, + startOffsetSize: offset, + endOffsetSize: offset + sliceLen + }); + await LongTraceDBUtils.getInstance().indexedDBHelp.add(LongTraceDBUtils.getInstance().tableName, { + 'buf': chunk, + 'id': `${fileType}_${timStamp}_${pageNumber}_${chunkIndex}`, + 'fileType': fileType, + 'pageNum': pageNumber, + 'startOffset': offset, + 'endOffset': offset + sliceLen, + 'index': chunkIndex, + 'timStamp': timStamp + }); + offset += sliceLen; + if (offset >= buffer.byteLength) { + message.endIndex = chunkIndex; + message.size = buffer.byteLength; + if (this.sp!.longTraceTypeMessageMap) { + if (this.sp!.longTraceTypeMessageMap?.has(pageNumber)) { + let oldTypeList = this.sp!.longTraceTypeMessageMap?.get(pageNumber); + oldTypeList?.push(message); + this.sp!.longTraceTypeMessageMap?.set(pageNumber, oldTypeList!); + } else { + this.sp!.longTraceTypeMessageMap?.set(pageNumber, [message]); + } + } else { + this.sp!.longTraceTypeMessageMap = new Map(); + this.sp!.longTraceTypeMessageMap.set(pageNumber, [message]); + } + } + } + } + } + resolve(1); + }); + } + + private recordLongTrace(): void{ + let querySelector = this.sp!.shadowRoot?.querySelector('.long_trace_page') as HTMLDivElement; + if (querySelector) { + querySelector.style.display = 'none'; + } + HdcDeviceManager.shellResultAsString( + CmdConstant.CMD_GET_LONG_FILES + this.recordSetting!.longOutPath, + false + ).then((result)=>{ + this.longTraceList = result.split('\n').filter(fileName => Boolean(fileName)); + if (this.longTraceList.length > 0) { + this.sp!.longTraceHeadMessageList = []; + this.sp!.longTraceDataList = []; + this.sp!.longTraceTypeMessageMap = undefined; + let timStamp = new Date().getTime(); + this.loadLongTraceFile(timStamp).then(()=>{ + let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; + let children = main.menus as Array; + let child = children[0].children as Array; + let fileHandler = child[1].clickHandler; + if (fileHandler && !SpRecordTrace.cancelRecord) { + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + this.recordButtonDisable(false); + fileHandler({ + detail: { + timeStamp: timStamp + }, + }, true); + } else { + SpRecordTrace.cancelRecord = false; + } + }); + } + }); + } + private initRecordUIState(): void { this.buttonDisable(true); this.freshMenuDisable(true); @@ -1363,6 +1564,10 @@ export class SpRecordTrace extends BaseElement { request.pluginConfigs.push(config); }); } else { + if (SpApplication.isLongTrace && request.sessionConfig) { + request.sessionConfig.splitFile = true; + request.sessionConfig!.splitFileMaxSizeMb = this.recordSetting!.longTraceSingleFileMaxSize; + } let hasMonitorMemory = false; let hasSamps = false; if (this.probesConfig!.traceConfig.length > 0) { @@ -1437,12 +1642,11 @@ export class SpRecordTrace extends BaseElement { resultMaxSize: 0, keepAliveTime: 0, }; - let request: CreateSessionRequest = { + return { requestId: 1, sessionConfig: sessionConfig, pluginConfigs: [], }; - return request; } private createMonitorPlugin(that: this, request: CreateSessionRequest): void { @@ -1809,6 +2013,9 @@ export class SpRecordTrace extends BaseElement { outfileName: '/data/local/tmp/perf.data', recordArgs: recordArgs, }; + if (SpApplication.isLongTrace) { + hiPerf.splitOutfileName = `${this.recordSetting!.longOutPath }hiprofiler_data_hiperf.htrace`; + } let hiPerfPluginConfig: ProfilerPluginConfig = { pluginName: 'hiperf-plugin', sampleInterval: reportingFrequency * 1000, @@ -1817,7 +2024,7 @@ export class SpRecordTrace extends BaseElement { return hiPerfPluginConfig; } - private createSystemConfig(): ProfilerPluginConfig { + private createSystemConfig(): ProfilerPluginConfig { let systemConfig = this.spFileSystem!.getSystemConfig(); let recordArgs = 'hiebpf'; let recordEvent = []; @@ -1838,11 +2045,14 @@ export class SpRecordTrace extends BaseElement { recordArgs = `${recordArgs} --pids ${systemConfig?.process}`; } recordArgs += ` --max_stack_depth ${systemConfig?.unWindLevel}`; - let systemPluginConfig: FileSystemConfig = { + let systemPluginConfig: HiebpfConfig = { cmdLine: recordArgs, outfileName: '/data/local/tmp/ebpf.data', }; - let ebpfPluginConfig: ProfilerPluginConfig = { + if (SpApplication.isLongTrace) { + systemPluginConfig.splitOutfileName = `${this.recordSetting?.longOutPath}hiprofiler_data_ebpf.htrace`; + } + let ebpfPluginConfig: ProfilerPluginConfig = { pluginName: 'hiebpf-plugin', sampleInterval: 1000, configData: systemPluginConfig, @@ -1989,6 +2199,9 @@ export class SpRecordTrace extends BaseElement { enable_cpu_profiler: this.spArkTs!.grabCpuProfiler, cpu_profiler_interval: this.spArkTs!.intervalCpuValue, }; + if (SpApplication.isLongTrace) { + arkTSConfig.splitOutfileName = `${this.recordSetting?.longOutPath }hiprofiler_data_arkts.htrace`; + } let arkTSPluginConfig: ProfilerPluginConfig = { pluginName: 'arkts-plugin', sampleInterval: 5000, diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index 55419edf..07c18046 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -458,13 +458,8 @@ export class SpSystemTrace extends BaseElement { } }); } - if (this.rowsEL!.contains(currentRow)) { + if (!currentRow.hasParentRowEl) { this.rowsEL!.replaceChild(replaceRow, currentRow); - } else { - if (currentRow.hasParentRowEl) { - let parent = currentRow.parentRowEl; - parent!.replaceTraceRow(replaceRow, currentRow); - } } this.favoriteChartListEL?.insertRow(currentRow, this.currentCollectGroup, event.detail.type !== 'auto-collect'); } else { @@ -483,24 +478,28 @@ export class SpSystemTrace extends BaseElement { row = parent; } for (let index: number = allowExpansionRow.length - 1; index >= 0; index--) { - if (!allowExpansionRow[index]?.expansion && allowExpansionRow[index]?.hasAttribute('scene')) { - allowExpansionRow[index].expansion = true; + if (allowExpansionRow[index]?.hasAttribute('scene')) { + if (allowExpansionRow[index]!.expansion) { + allowExpansionRow[index].updateChildRowStatus(); + } else { + allowExpansionRow[index].expansion = true; + } } } allowExpansionRow.length = 0; let replaceRow = this.rowsEL!.querySelector( `div[row-id='${currentRow.rowId}-${currentRow.rowType}']` ); + // 取消收藏时,删除父亲ID + let rowNameArr = currentRow.name.split('('); + if (rowNameArr.length > 1) { + let tempName = ''; + tempName += rowNameArr[0]; + currentRow.name = tempName; + } else { + currentRow.name = rowNameArr[0]; + } if (replaceRow != null) { - // 取消收藏时,删除父亲ID - let rowNameArr = currentRow.name.split('('); - if (rowNameArr.length > 1) { - let tempName = ''; - tempName += rowNameArr[0]; - currentRow.name = tempName; - } else { - currentRow.name = rowNameArr[0]; - } this.rowsEL!.replaceChild(currentRow, replaceRow); currentRow.style.boxShadow = `0 10px 10px #00000000`; } diff --git a/ide/src/trace/component/chart/SpFrameTimeChart.ts b/ide/src/trace/component/chart/SpFrameTimeChart.ts index a71c4cc6..849ec9c6 100644 --- a/ide/src/trace/component/chart/SpFrameTimeChart.ts +++ b/ide/src/trace/component/chart/SpFrameTimeChart.ts @@ -218,6 +218,8 @@ export class SpFrameTimeChart { nameArr: { name: string }[] ): Promise> { let frameChart: TraceRow = TraceRow.skeleton(); + let labelName = frameChart.shadowRoot?.querySelector('.name') as HTMLLabelElement; + labelName.style.marginRight = '77px'; let systemPopover = this.addSystemConfigButton(frameChart, nameArr); systemPopover.style.zIndex = '101'; let radioList = systemPopover.querySelectorAll('.radio'); diff --git a/ide/src/trace/component/setting/SpArkTs.ts b/ide/src/trace/component/setting/SpArkTs.ts index 84c007ac..8fe3b713 100644 --- a/ide/src/trace/component/setting/SpArkTs.ts +++ b/ide/src/trace/component/setting/SpArkTs.ts @@ -23,6 +23,7 @@ import { Cmd } from '../../../command/Cmd.js'; import { LitRadioBox } from '../../../base-ui/radiobox/LitRadioBox.js'; import { SpCheckDesBox } from './SpCheckDesBox.js'; import LitSwitch from '../../../base-ui/switch/lit-switch.js'; +import { SpApplication } from '../../SpApplication.js'; @element('sp-ark-ts') export class SpArkTs extends BaseElement { @@ -257,6 +258,16 @@ export class SpArkTs extends BaseElement { }); } + connectedCallback(): void { + let traceMode = this.shadowRoot!.querySelector('#traceMode') as HTMLDivElement; + let isLongTrace = SpApplication.isLongTrace; + if (isLongTrace) { + traceMode!.style.display = 'block'; + } else { + traceMode!.style.display = 'none'; + } + } + initHtml(): string { return `
+
+ This is record long trace! +
Start Ark Ts Record diff --git a/ide/src/trace/component/setting/SpFileSystem.ts b/ide/src/trace/component/setting/SpFileSystem.ts index e8d1c66a..47664938 100644 --- a/ide/src/trace/component/setting/SpFileSystem.ts +++ b/ide/src/trace/component/setting/SpFileSystem.ts @@ -25,6 +25,7 @@ import { SpRecordTrace } from '../SpRecordTrace.js'; import { Cmd } from '../../../command/Cmd.js'; import { CmdConstant } from '../../../command/CmdConstant.js'; import { HdcDeviceManager } from '../../../hdc/HdcDeviceManager.js'; +import { SpApplication } from '../../SpApplication.js'; @element('sp-file-system') export class SpFileSystem extends BaseElement { @@ -202,6 +203,16 @@ export class SpFileSystem extends BaseElement { }); } + connectedCallback(): void { + let traceMode = this.shadowRoot!.querySelector('#traceMode') as HTMLDivElement; + let isLongTrace = SpApplication.isLongTrace; + if (isLongTrace) { + traceMode!.style.display = 'block'; + } else { + traceMode!.style.display = 'none'; + } + } + initHtml(): string { return `
+ +
+ This is record long trace! +
Start FileSystem Record diff --git a/ide/src/trace/component/setting/SpRecordPerf.ts b/ide/src/trace/component/setting/SpRecordPerf.ts index 28658908..e0fe0436 100644 --- a/ide/src/trace/component/setting/SpRecordPerf.ts +++ b/ide/src/trace/component/setting/SpRecordPerf.ts @@ -650,6 +650,16 @@ export class SpRecordPerf extends BaseElement { ]; } + connectedCallback(): void { + let traceMode = this.shadowRoot!.querySelector('#traceMode') as HTMLDivElement; + let isLongTrace = SpApplication.isLongTrace; + if (isLongTrace) { + traceMode!.style.display = 'block'; + } else { + traceMode!.style.display = 'none'; + } + } + initHtml(): string { return `
-
-
- +
+ This is record long trace! +
+
+
+
`; } diff --git a/ide/src/trace/component/setting/SpRecordSetting.ts b/ide/src/trace/component/setting/SpRecordSetting.ts index 1d0127f3..dc5caeb3 100644 --- a/ide/src/trace/component/setting/SpRecordSetting.ts +++ b/ide/src/trace/component/setting/SpRecordSetting.ts @@ -20,17 +20,28 @@ import '../../../base-ui/slider/LitSlider.js'; import { LitSlider } from '../../../base-ui/slider/LitSlider.js'; import '../../../base-ui/popover/LitPopover.js'; import { info } from '../../../log/Log.js'; +import { SpApplication } from '../../SpApplication.js'; @element('record-setting') export class SpRecordSetting extends BaseElement { private memoryBufferSlider: LitSlider | undefined; private maxDurationSliders: LitSlider | undefined; private radioBox: LitRadioBox | undefined; + private longTraceRadio: LitRadioBox | undefined; private bufferNumber: HTMLElement | undefined; private durationNumber: HTMLElement | undefined; private outputPath: HTMLInputElement | undefined; private lastMemoryValue: string | undefined; private lastDurationValue: string | undefined; + isRecordTemplate: boolean = false; + + get longTraceSingleFileMaxSize(): number{ + let maxFileSizeEl = this.shadowRoot?.querySelector('.max_size_result'); + if (maxFileSizeEl) { + return Number(maxFileSizeEl.value); + } + return 200; + } get recordMod(): boolean { if (this.radioBox) { @@ -39,13 +50,28 @@ export class SpRecordSetting extends BaseElement { return false; } + get longOutPath(): string { + if (this.outputPath && this.outputPath.value !== '' && this.outputPath.value !== 'long_trace/') { + return `/data/local/tmp/${ this.outputPath.value}/`; + } + return '/data/local/tmp/long_trace/'; + } + get output(): string { - if (this.outputPath && this.outputPath.value != '') { - return '/data/local/tmp/' + this.outputPath.value; + if (SpApplication.isLongTrace && !this.isRecordTemplate) { + if (this.outputPath && this.outputPath.value !== 'long_trace/' && this.outputPath.value !== '') { + return `/data/local/tmp/${ this.outputPath.value}/hiprofiler_data.htrace`; + } + return '/data/local/tmp/long_trace/hiprofiler_data.htrace'; + } else { + if (this.outputPath && this.outputPath.value !== '') { + return `/data/local/tmp/${ this.outputPath.value}`; + } + return '/data/local/tmp/hiprofiler_data.htrace'; } - return '/data/local/tmp/hiprofiler_data.htrace'; } + get bufferSize(): number { if (this.bufferNumber?.hasAttribute('percent')) { info('bufferSize is : ', this.bufferNumber!.getAttribute('percent')); @@ -66,19 +92,19 @@ export class SpRecordSetting extends BaseElement { let bufferInput = this.shadowRoot?.querySelector('.memory_buffer_result') as HTMLInputElement; let parentElement = this.memoryBufferSlider!.parentNode as Element; if (bufferInput.style.color != 'var(--dark-color1,#000000)' && this.lastMemoryValue) { - bufferInput.value = this.lastMemoryValue + ''; - this.memoryBufferSlider!.percent = this.lastMemoryValue + ''; + bufferInput.value = `${this.lastMemoryValue }`; + this.memoryBufferSlider!.percent = `${this.lastMemoryValue }`; this.memoryBufferSlider!.sliderStyle = { minRange: 4, maxRange: 512, - defaultValue: this.lastMemoryValue + '', + defaultValue: `${this.lastMemoryValue }`, resultUnit: 'MB', stepSize: 2, lineColor: 'var(--dark-color3,#46B1E3)', buttonColor: '#999999', }; - parentElement.setAttribute('percent', this.lastMemoryValue + ''); - this.lastMemoryValue = this.lastMemoryValue + ''; + parentElement.setAttribute('percent', `${this.lastMemoryValue }`); + this.lastMemoryValue = `${this.lastMemoryValue }`; bufferInput.style.color = 'var(--dark-color1,#000000)'; } @@ -116,11 +142,80 @@ export class SpRecordSetting extends BaseElement { button.style.backgroundColor = '#E4E3E9'; }); }); - this.radioBox = this.shadowRoot?.querySelector('#litradio') as LitRadioBox; + this.addLongTraceConfig(); + this.initLitSlider(); + } + + private addLongTraceConfig() { + this.longTraceRadio = this.shadowRoot?.querySelector('#longTraceRadio') as LitRadioBox; this.outputPath = this.shadowRoot?.querySelector('#trace_path') as HTMLInputElement; + let rootEl = this.shadowRoot?.querySelector('.root') as HTMLDivElement; + let longTraceMaxSlide = document.createElement('div'); + longTraceMaxSlide.innerHTML = `
+
+ Single file max size + (single file size after cutting is 200MB - 400MB) +
+ + +
+ + MB +
+
`; - this.initLitSlider(); + let maxSingleFileEl = longTraceMaxSlide.querySelector('.max-single-file-size'); + let maxSizeSliders = longTraceMaxSlide.querySelector('#max-size') as LitSlider; + let maxSizeInput = longTraceMaxSlide.querySelector('.max_size_result') as HTMLInputElement; + let maxSizeParentElement = maxSizeSliders.parentNode as Element; + maxSizeSliders.sliderStyle = { + minRange: 200, + maxRange: 400, + defaultValue: '200', + resultUnit: 'MB', + stepSize: 2, + lineColor: 'var(--dark-color3,#46B1E3)', + buttonColor: '#999999', + }; + maxSizeSliders.addEventListener('input', ()=>{ + if (maxSingleFileEl?.hasAttribute('percent')) { + maxSizeInput.value = `${maxSingleFileEl?.getAttribute('percent') }`; + } else { + maxSizeInput.value = maxSizeSliders.sliderStyle.defaultValue; + } + }); + maxSizeInput.value = maxSizeSliders.sliderStyle.defaultValue; + maxSizeParentElement.setAttribute('percent', '50'); + maxSizeInput.style.color = 'var(--dark-color1,#000000)'; + maxSizeInput.addEventListener('input', (ev) => { + maxSizeSliders!.percent = maxSizeInput.value; + let htmlInputElement = maxSizeSliders!.shadowRoot?.querySelector('#slider') as HTMLInputElement; + htmlInputElement.value = maxSizeInput.value; + maxSizeSliders!.sliderStyle = { + minRange: 200, + maxRange: 400, + defaultValue: maxSizeInput.value, + resultUnit: 'MB', + stepSize: 2, + lineColor: 'var(--dark-color3,#46B1E3)', + buttonColor: '#999999', + }; + maxSizeParentElement.setAttribute('percent', maxSizeInput.value); + }); + + this.radioBox!.addEventListener('click', ()=>{ + SpApplication.isLongTrace = false; + if (rootEl.lastChild === longTraceMaxSlide) { + rootEl.removeChild(longTraceMaxSlide); + } + this.outputPath!.value = 'hiprofiler_data.htrace'; + }); + this.longTraceRadio.addEventListener('click', ()=>{ + SpApplication.isLongTrace = true; + rootEl.appendChild(longTraceMaxSlide); + this.outputPath!.value = 'long_trace/'; + }); } initLitSlider() { @@ -221,7 +316,7 @@ export class SpRecordSetting extends BaseElement { durationParentElement.setAttribute('percent', '30'); return; } - let regExpMatch = durationInput.value.trim().match(`^\\d{1,2}\\:\\d{1,2}\\:\\d{1,2}$`); + let regExpMatch = durationInput.value.trim().match('^\\d{1,2}\\:\\d{1,2}\\:\\d{1,2}$'); if (regExpMatch) { let durationList = regExpMatchArray.split(':'); let resultDuration = Number(durationList[0]) * 3600 + Number(durationList[1]) * 60 + Number(durationList[2]); @@ -239,11 +334,11 @@ export class SpRecordSetting extends BaseElement { durationInput.parentElement!.style.backgroundColor = 'var(--dark-background5,#F2F2F2)'; durationInput.style.backgroundColor = 'var(--dark-background5,#F2F2F2)'; let htmlInputElement = this.maxDurationSliders!.shadowRoot?.querySelector('#slider') as HTMLInputElement; - htmlInputElement.value = resultDuration + ''; + htmlInputElement.value = `${resultDuration }`; this.maxDurationSliders!.sliderStyle = { minRange: 10, maxRange: 3600, - defaultValue: Number(durationList[0]) + ':' + Number(durationList[1]) + ':' + Number(durationList[2]), + defaultValue: `${Number(durationList[0]) }:${ Number(durationList[1]) }:${ Number(durationList[2])}`, resultUnit: 'h:m:s', stepSize: 1, lineColor: 'var(--dark-color4,#61CFBE)', @@ -289,6 +384,12 @@ export class SpRecordSetting extends BaseElement { width: 100%; height: 100%; } + #longTraceRadio{ + display: none; + } + :host([trace_config]) #longTraceRadio{ + display: block; + } .record-mode{ font-family: Helvetica-Bold; font-size: 16px; @@ -331,7 +432,7 @@ export class SpRecordSetting extends BaseElement { grid-template-columns: 1fr min-content; } - .max-duration{ + .max-duration, .max-single-file-size{ height: min-content; display: grid; grid-template-rows: 1fr 1fr; @@ -346,6 +447,7 @@ export class SpRecordSetting extends BaseElement { text-align: left; line-height: 16px; font-weight: 400; + margin-right: 20px; } button{ @@ -369,7 +471,7 @@ export class SpRecordSetting extends BaseElement { vertical-align: middle; } - .max_duration_result, .memory_buffer_result{ + .max_duration_result, .memory_buffer_result, .max_size_result{ background-color: var(--dark-background5,#F2F2F2); color:var(--dark-color,#6a6f77); border: none; @@ -396,7 +498,7 @@ export class SpRecordSetting extends BaseElement { border:1px solid var(--dark-border,#c8cccf); } - #memory-buffer, #max-duration { + #memory-buffer, #max-duration, #max-size { margin: 0 8px; grid-column: span 2; } @@ -419,7 +521,10 @@ export class SpRecordSetting extends BaseElement {
Record mode - Normal Mode +
+ Normal Mode + Long Trace Mode +
output file path diff --git a/ide/src/trace/component/setting/bean/ProfilerServiceTypes.ts b/ide/src/trace/component/setting/bean/ProfilerServiceTypes.ts index f2bf3a27..df54b7b8 100644 --- a/ide/src/trace/component/setting/bean/ProfilerServiceTypes.ts +++ b/ide/src/trace/component/setting/bean/ProfilerServiceTypes.ts @@ -27,7 +27,9 @@ export enum ProfilerSessionConfigBufferConfigPolicy { export interface ProfilerSessionConfig { buffers: ProfilerSessionConfigBufferConfig[]; sessionMode: ProfilerSessionConfigMode; - + splitFile?: boolean; + splitFileMaxSizeMb?: number; + splitFileMaxNum?: number; /** for OFFLINE mode, result file max size in KB */ resultMaxSize: number; /** if set to non-zero value, session will auto-destroyed after CreateSession in ms */ @@ -82,9 +84,10 @@ export interface ProfilerPluginConfig { protobuf_serialize?: boolean; } -export interface FileSystemConfig { +export interface HiebpfConfig { cmdLine: string; outfileName: string; + splitOutfileName?: string; } export interface MemoryConfig { @@ -897,6 +900,7 @@ export interface HiperfPluginConfig { isRoot: boolean; outfileName: string; recordArgs: string; + splitOutfileName?: string; } export interface HiSystemEventConfig { @@ -912,4 +916,5 @@ export interface ArkTSConfig { track_allocations: boolean; enable_cpu_profiler: boolean; cpu_profiler_interval: number; + splitOutfileName?: string; } diff --git a/ide/src/trace/component/trace/SpChartList.ts b/ide/src/trace/component/trace/SpChartList.ts index 6f268d69..239b7f32 100644 --- a/ide/src/trace/component/trace/SpChartList.ts +++ b/ide/src/trace/component/trace/SpChartList.ts @@ -39,6 +39,8 @@ const mouseMoveRange = 5 @element('sp-chart-list') export class SpChartList extends BaseElement { + private static COLLECT_G1 = '1'; + private static COLLECT_G2 = '2'; private collectEl1: HTMLDivElement | null | undefined; private collectEl2: HTMLDivElement | null | undefined; private groupTitle1: HTMLDivElement | null | undefined; @@ -171,7 +173,7 @@ export class SpChartList extends BaseElement { insertRowBefore(node: Node, child: Node) { if (child === null || (child as TraceRow).collectGroup === (node as TraceRow).collectGroup) { - if ((node as TraceRow).collectGroup === '1') { + if ((node as TraceRow).collectGroup === SpChartList.COLLECT_G1) { this.collectEl1!.insertBefore(node, child); this.collectRowList1 = Array.from(this.collectEl1!.children) as TraceRow[]; } else { @@ -312,7 +314,13 @@ export class SpChartList extends BaseElement { insertRow(row: TraceRow, group: string, updateGroup: boolean) { this.style.display = 'flex'; let collectGroup = !updateGroup && row.collectGroup ? row.collectGroup : group; - if (collectGroup === '1') { + if (row.collectGroup !== SpChartList.COLLECT_G1 && row.collectGroup !== SpChartList.COLLECT_G2) { + row.collectGroup = group; + } + if (updateGroup) { + row.collectGroup = group; + } + if (collectGroup === SpChartList.COLLECT_G1) { if (!this.collect1Expand) { this.collect1Expand = true; this.icon1!.style.transform = 'rotateZ(0deg)'; @@ -337,9 +345,6 @@ export class SpChartList extends BaseElement { } this.collectEl2!.appendChild(this.fragmentGroup2); } - if (updateGroup) { - row.collectGroup = group; - } this.updateGroupDisplay(); this.resizeHeight(); this.scrollTo({ top: this.scrollHeight }); @@ -348,7 +353,7 @@ export class SpChartList extends BaseElement { } deleteRow(row: TraceRow, clearCollectGroup: boolean) { - if (row.collectGroup === '1') { + if (row.collectGroup === SpChartList.COLLECT_G1) { this.collectRowList1.splice(this.collectRowList1.indexOf(row), 1); if (!this.fragmentGroup1.contains(row)) { this.fragmentGroup1.appendChild(row); diff --git a/ide/src/trace/component/trace/base/TraceRow.ts b/ide/src/trace/component/trace/base/TraceRow.ts index e62e7166..5e7d3fbc 100644 --- a/ide/src/trace/component/trace/base/TraceRow.ts +++ b/ide/src/trace/component/trace/base/TraceRow.ts @@ -384,9 +384,9 @@ export class TraceRow extends HTMLElement { return; } if (value) { - this.insertAfter(this.fragment, this); + this.updateChildRowStatus(); } else { - this.isShowChildrenRow(this.childrenList); + this.childRowToFragment(false); } if (value) { this.setAttribute('expansion', ''); @@ -405,17 +405,25 @@ export class TraceRow extends HTMLElement { ); } - private isShowChildrenRow(childrenRowList: Array>): void { - for (const childrenRow of childrenRowList) { + childRowToFragment (expansion: boolean) : void { + for (const childrenRow of this.childrenList){ if (!childrenRow.collect) { this.fragment.append(childrenRow); } - if (childrenRow.childrenList && childrenRow.expansion) { - this.isShowChildrenRow(childrenRow.childrenList); + if (!expansion) { + if (childrenRow.childrenList && childrenRow.expansion) { + this.childRowToFragment(expansion); + } } } } + updateChildRowStatus() : void { + this.fragment = document.createDocumentFragment(); + this.childRowToFragment(true); + this.insertAfter(this.fragment, this); + } + clearMemory() { this.dataList2 = []; this.dataList = []; @@ -440,13 +448,6 @@ export class TraceRow extends HTMLElement { } } - replaceTraceRow(newNode: any, oldNode: any) { - let oldIndex = this.childrenList.indexOf(oldNode); - if (oldIndex != -1) { - this.childrenList.splice(oldIndex, 1, newNode); - } - } - toParentAddTemplateType = (currentRowEl: TraceRow) => { let parentRow = currentRowEl.parentRowEl; if (parentRow !== undefined) { @@ -473,11 +474,6 @@ export class TraceRow extends HTMLElement { this.fragment.appendChild(child); } - removeChildTraceRow(row: TraceRow) { - this.childrenList.splice(this.childrenList.indexOf(row), 1); - this.fragment.removeChild(row); - } - addChildTraceRowAfter(child: TraceRow, targetRow: TraceRow) { TraceRowConfig.allTraceRowList.push(child); child.parentRowEl = this; diff --git a/ide/src/trace/component/trace/search/Search.ts b/ide/src/trace/component/trace/search/Search.ts index 290fa9b2..64425245 100644 --- a/ide/src/trace/component/trace/search/Search.ts +++ b/ide/src/trace/component/trace/search/Search.ts @@ -350,7 +350,10 @@ export class LitSearch extends BaseElement { overflow-y: auto; display: none; border-radius: 0 0 20px 20px; - } + } + .search-history-list:hover{ + cursor: pointer; + } .search-history-list-item { cursor: pointer; width: 100%; diff --git a/ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts b/ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts new file mode 100644 index 00000000..7fe61e25 --- /dev/null +++ b/ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; +import { LitTable } from '../../../../../base-ui/table/lit-table.js'; +import { SelectionParam } from '../../../../bean/BoxSelection.js'; +import { queryGpuDataTab } from '../../../../database/SqlLite.js'; +import { log } from '../../../../../log/Log.js'; +import { getProbablyTime } from '../../../../database/logic-worker/ProcedureLogicWorkerCommon.js'; +import { resizeObserver } from '../SheetUtils.js'; +import { Utils } from '../../base/Utils.js'; +import { MemoryConfig } from '../../../../bean/MemoryConfig.js'; + +interface Graph { + startTs: number; + startTsStr?: string; + size: number; + sizeStr?: string; +} + +@element('tabpane-gpu-graph') +export class TabPaneGpuGraph extends BaseElement { + private graphTbl: LitTable | null | undefined; + private range: HTMLLabelElement | null | undefined; + private graphSource: Array = []; + private currentSelectionParam: SelectionParam | undefined; + + set data(graphParam: SelectionParam | any) { + if (this.currentSelectionParam === graphParam) { + return; + } + this.currentSelectionParam = graphParam; + //@ts-ignore + this.graphTbl?.shadowRoot?.querySelector('.table')?.style?.height = this.parentElement!.clientHeight - 45 + 'px'; + this.range!.textContent = + 'Selected range: ' + ((graphParam.rightNs - graphParam.leftNs) / 1000000.0).toFixed(5) + ' ms'; + this.graphTbl!.loading = true; + queryGpuDataTab( + MemoryConfig.getInstance().iPid, + graphParam.leftNs, + graphParam.rightNs, + MemoryConfig.getInstance().snapshotDur, + "'mem.graph_pss'" + ).then((result) => { + this.graphTbl!.loading = false; + log('queryGpuDataTab result size : ' + result.length); + if (result.length > 0) { + result.forEach((it: Graph) => { + it.startTsStr = getProbablyTime(it.startTs); + it.sizeStr = Utils.getBinaryByteWithUnit(it.size); + }); + this.graphSource = result; + this.graphTbl!.recycleDataSource = this.graphSource; + } else { + this.graphSource = []; + this.graphTbl!.recycleDataSource = []; + } + }); + } + + initElements(): void { + this.graphTbl = this.shadowRoot?.querySelector('#tb-graph'); + this.range = this.shadowRoot?.querySelector('#graph-time-range'); + } + + connectedCallback(): void { + super.connectedCallback(); + resizeObserver(this.parentElement!, this.graphTbl!); + } + + initHtml(): string { + return ` + +
+
+ +
+
+ + + + + + +
+ `; + } +} diff --git a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts new file mode 100644 index 00000000..0adc3f8a --- /dev/null +++ b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts @@ -0,0 +1,200 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; +import { LitTable } from '../../../../../base-ui/table/lit-table.js'; +import { SelectionParam } from '../../../../bean/BoxSelection.js'; +import { getTabSmapsData, getTabSmapsSampleData } from '../../../../database/SqlLite.js'; +import { Utils } from '../../base/Utils.js'; +import { log } from '../../../../../log/Log.js'; +import { Smaps, SmapsType, TYPE_STRING } from '../../../../bean/SmapsStruct.js'; +import { MemoryConfig } from '../../../../bean/MemoryConfig.js'; +import { SpSystemTrace } from '../../../SpSystemTrace.js'; +@element('tabpane-smaps-sample') +export class TabPaneSmapsSample extends BaseElement { + private tblSmapsSample: LitTable | null | undefined; + private sourceSmapsSample: Array = []; + private querySmapsSampleResult: Array = []; + private isClick = false; + private tabTitle: HTMLDivElement | undefined | null; + set data(valSmapsSample: SelectionParam) { + this.parentElement!.style.overflow = 'unset'; + this.isClick = valSmapsSample.smapsType.length === 0; + this.init(); + this.tblSmapsSample!.loading = true; + if (!this.isClick) { + if (valSmapsSample.smapsType.length > 0) { + this.queryDataByDB(valSmapsSample); + } + } else { + this.setSmaps(valSmapsSample); + } + } + initElements(): void { + this.tblSmapsSample = this.shadowRoot?.querySelector('#tb-smaps-record'); + this.tabTitle = this.tblSmapsSample!.shadowRoot?.querySelector('.thead') as HTMLDivElement; + this.tblSmapsSample!.addEventListener('column-click', (evt) => { + // @ts-ignore + this.sortByColumn(evt.detail); + }); + } + connectedCallback() { + super.connectedCallback(); + new ResizeObserver(() => { + if (this.parentElement?.clientHeight != 0) { + // @ts-ignore + this.tblSmapsSample?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 15+ 'px'; + this.tblSmapsSample?.reMeauseHeight(); + } + }).observe(this.parentElement!); + } + queryDataByDB(srVal: SelectionParam | any): void { + getTabSmapsData(srVal.leftNs, srVal.rightNs, (MemoryConfig.getInstance().interval * 1000_000) / 5).then( + (result) => { + log('getTabSmapsData size :' + result.length); + this.tblSmapsSample!.loading = false; + this.filteredData(result); + } + ); + } + setSmaps(data: SelectionParam): void { + getTabSmapsSampleData(data.rightNs).then((result) => { + this.tblSmapsSample!.loading = false; + this.filteredData(result); + }); + } + private init(): void { + const thTable = this.tabTitle!.querySelector('.th'); + const smapsSampleTblNodes = thTable!.querySelectorAll('div'); + if (this.tabTitle!.hasAttribute('sort')) { + this.tabTitle!.removeAttribute('sort'); + smapsSampleTblNodes.forEach((item) => { + item.querySelectorAll('svg').forEach((svg) => { + svg.style.display = 'none'; + }); + }); + } + } + filteredData(result: any): void { + if (result.length !== null && result.length > 0) { + for (const smaps of result) { + smaps.typeName = TYPE_STRING[smaps.type]; + smaps.address = smaps.startAddr + ' - ' + smaps.endAddr; + smaps.swapStr = Utils.getBinaryByteWithUnit(smaps.swap); + smaps.rssStr = Utils.getBinaryByteWithUnit(smaps.rss); + smaps.pssStr = Utils.getBinaryByteWithUnit(smaps.pss); + smaps.sizeStr = Utils.getBinaryByteWithUnit(smaps.size); + smaps.sharedCleanStr = Utils.getBinaryByteWithUnit(smaps.sharedClean); + smaps.sharedDirtyStr = Utils.getBinaryByteWithUnit(smaps.sharedDirty); + smaps.privateCleanStr = Utils.getBinaryByteWithUnit(smaps.privateClean); + smaps.privateDirtyStr = Utils.getBinaryByteWithUnit(smaps.privateDirty); + smaps.swapPssStr = Utils.getBinaryByteWithUnit(smaps.swapPss); + smaps.time = Utils.getTimeString(smaps.startNs); + smaps.path = SpSystemTrace.DATA_DICT.get(smaps.path)?.split('/'); + smaps.permission = SpSystemTrace.DATA_DICT.get(smaps.pid)?.split('/'); + let resideS = smaps.reside.toFixed(2); + if (resideS === '0.00') { + smaps.resideStr = '0 %'; + } else { + smaps.resideStr = resideS + '%'; + } + } + this.sourceSmapsSample = result; + this.querySmapsSampleResult = result; + this.tblSmapsSample!.recycleDataSource = this.sourceSmapsSample; + } else { + this.sourceSmapsSample = []; + this.querySmapsSampleResult = []; + this.tblSmapsSample!.recycleDataSource = []; + } + } + initHtml(): string { + return ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `; + } + sortByColumn(detail: any): void { + // @ts-ignore + function compare(property, sort, type) { + return function (aSmapsSample: Smaps, bSmapsSample: Smaps) { + if (type === 'number') { + // @ts-ignore + return sort === 2 ? parseFloat(bSmapsSample[property]) - parseFloat(aSmapsSample[property]) : parseFloat(aSmapsSample[property]) - parseFloat(bSmapsSample[property]); + } else { + // @ts-ignore + if (bSmapsSample[property] > aSmapsSample[property]) { + return sort === 2 ? 1 : -1; + } else { + // @ts-ignore + if (bSmapsSample[property] === aSmapsSample[property]) { + return 0; + } else { + return sort === 2 ? -1 : 1; + } + } + } + }; + } + if ( + detail.key === 'rssStr' || + detail.key === 'sizeStr' || + detail.key === 'resideStr' + ) { + let key = detail.key.substring(0, detail.key.indexOf('Str')); + this.sourceSmapsSample.sort(compare(key, detail.sort, 'number')); + } else { + this.sourceSmapsSample.sort(compare(detail.key, detail.sort, 'string')); + } + this.tblSmapsSample!.recycleDataSource = this.sourceSmapsSample; + } +} diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts new file mode 100644 index 00000000..b6c5f8e1 --- /dev/null +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; +import { LitTable } from '../../../../../base-ui/table/lit-table.js'; +import { queryGpuResourceTabData } from '../../../../database/SqlLite.js'; +import { getByteWithUnit } from '../../../../database/logic-worker/ProcedureLogicWorkerCommon.js'; +import { ns2s } from '../../../../database/ui-worker/ProcedureWorkerCommon.js'; +import { SpSystemTrace } from '../../../SpSystemTrace.js'; +import { resizeObserver } from '../SheetUtils.js'; +@element('tabpane-gpu-resource') +export class TabPaneGpuResourceVmTracker extends BaseElement { + private gpuResourceTable: LitTable | undefined | null; + private gpuResourceDataSource: Array = []; + + set data(startNs: number) { + this.parentElement!.style.overflow = 'unset'; + this.gpuResourceDataSource = []; + this.setGpuResourceTableData(startNs); + } + + private async setGpuResourceTableData(startNs: number): Promise { + await queryGpuResourceTabData(startNs).then((results) => { + if (results.length > 0) { + results.sort(function (a, b) { + return b.totalSize - a.totalSize; + }); + let totalSize = 0; + for (let i = 0; i < results.length; i++) { + this.gpuResourceDataSource.push({ + name: SpSystemTrace.DATA_DICT.get(results[i].channelId), + size: getByteWithUnit(results[i].totalSize || 0), + }); + totalSize += results[i].totalSize; + } + this.gpuResourceDataSource.unshift( + { name: 'TimeStamp', size: ns2s(startNs) }, + { name: 'TimeStamp(Absolute)', size: (startNs + (window as any).recordStartNS) / 1000000000 }, + { name: 'Total', size: getByteWithUnit(totalSize) } + ); + } + this.gpuResourceTable!.recycleDataSource = this.gpuResourceDataSource; + }); + } + + public initElements(): void { + this.gpuResourceTable = this.shadowRoot?.querySelector('#gpu-resource-tbl'); + } + + connectedCallback() { + super.connectedCallback(); + resizeObserver(this.parentElement!, this.gpuResourceTable!); + } + public initHtml(): string { + return ` + + + + + + + + + `; + } +} diff --git a/ide/src/trace/database/IndexedDBHelp.ts b/ide/src/trace/database/IndexedDBHelp.ts index a4a9df0d..c2bac321 100644 --- a/ide/src/trace/database/IndexedDBHelp.ts +++ b/ide/src/trace/database/IndexedDBHelp.ts @@ -31,24 +31,24 @@ export class IndexedDBHelp { const database: IDBDatabase = idbOpenDBRequest.result; this.db = database; storeOptions?.forEach(option => { - let optionName = option.name + let optionName = option.name; if (database.objectStoreNames.contains(optionName) === false) { if (option.objectStoreParameters) { let objectStore = database.createObjectStore(optionName, option.objectStoreParameters); option.dataItems?.forEach(dataItem => { if (dataItem.indexParameters) { - objectStore.createIndex(dataItem.name, dataItem.name, dataItem.indexParameters) + objectStore.createIndex(dataItem.name, dataItem.keypath, dataItem.indexParameters); } else { - objectStore.createIndex(dataItem.name, dataItem.name) + objectStore.createIndex(dataItem.name, dataItem.keypath); } }) } else { let objectStore = database.createObjectStore(optionName); option.dataItems?.forEach(dataItem => { if (dataItem.indexParameters) { - objectStore.createIndex(dataItem.name, dataItem.name, dataItem.indexParameters) + objectStore.createIndex(dataItem.name, dataItem.name, dataItem.indexParameters); } else { - objectStore.createIndex(dataItem.name, dataItem.name) + objectStore.createIndex(dataItem.name, dataItem.name); } }) } @@ -79,17 +79,23 @@ export class IndexedDBHelp { return transaction.objectStore(storeName); } - public get(storeName: string, query: IDBValidKey | IDBKeyRange) { + public get(storeName: string, query: IDBValidKey | IDBKeyRange, queryIndex?: string) { return new Promise((resolve, reject) => { this.getObjectStore(storeName).then((objectStore: IDBObjectStore) => { - const request: IDBRequest = objectStore.get(query); + let request: IDBRequest; + if (queryIndex) { + const index = objectStore.index(queryIndex); + request = index.getAll(query); + } else { + request = objectStore.getAll(query) + } request.onsuccess = function (event) { // @ts-ignore resolve(event.target.result); }; request.onerror = (event) => { reject(event); - } + }; }); }); } @@ -104,7 +110,7 @@ export class IndexedDBHelp { }; request.onerror = (event) => { reject(event); - } + }; }); }); } @@ -112,14 +118,14 @@ export class IndexedDBHelp { public delete(storeName: string, query: IDBValidKey | IDBKeyRange) { return new Promise((resolve, reject) => { this.getObjectStore(storeName).then((objectStore: IDBObjectStore) => { - const request = objectStore.delete(query); + const request = objectStore['delete'](query); request.onsuccess = function (event) { // @ts-ignore resolve(event.target.result); }; request.onerror = (event) => { reject(event); - } + }; }); }); } @@ -134,14 +140,14 @@ export class IndexedDBHelp { }; request.onerror = (event) => { reject(event); - } + }; }); }); } } export class StoreOptions { - name: string = ""; + name: string = ''; objectStoreParameters?: IDBObjectStoreParameters; - dataItems?: Array<{ name: string, indexParameters?: IDBIndexParameters }>; + dataItems?: Array<{ name: string, keypath: string[] | string, indexParameters?: IDBIndexParameters }>; } diff --git a/ide/src/trace/database/LongTraceDBUtils.ts b/ide/src/trace/database/LongTraceDBUtils.ts new file mode 100644 index 00000000..970bdaec --- /dev/null +++ b/ide/src/trace/database/LongTraceDBUtils.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {IndexedDBHelp} from './IndexedDBHelp.js'; + +export class LongTraceDBUtils { + public static instance: LongTraceDBUtils | undefined; + dbVersion: number = 1; + dbName: string = 'sp'; + tableName: string = 'longTable'; + indexedDBHelp: IndexedDBHelp = new IndexedDBHelp(); + + public static getInstance(): LongTraceDBUtils { + if (!this.instance) { + this.instance = new LongTraceDBUtils(); + } + return this.instance; + } + + createDBAndTable(): Promise { + return this.indexedDBHelp.open(this.dbName, this.dbVersion, [ + { + name: this.tableName, + objectStoreParameters: {keyPath: 'id'}, + dataItems: [{name: 'QueryCompleteFile', keypath: ['timStamp','fileType', 'pageNum', 'index']}, + {name: 'QueryFileByPage', keypath: ['timStamp','fileType', 'pageNum']}] + } + ]); + } +} + diff --git a/ide/src/trace/database/TraceWorker.ts b/ide/src/trace/database/TraceWorker.ts index adb0b407..e8fbe3e1 100644 --- a/ide/src/trace/database/TraceWorker.ts +++ b/ide/src/trace/database/TraceWorker.ts @@ -29,6 +29,9 @@ let headUnitArray: Uint8Array | undefined; let thirdWasmMap = new Map(); let thirdJsonResult = new Map(); +let arkTsData: Array = []; +let arkTsDataSize: number = 0; + let currentAction: string = ''; let currentActionId: string = ''; @@ -404,9 +407,362 @@ self.onmessage = async (e: MessageEvent) => { } } else if (e.data.action === 'cut-file') { cutFileByRange(e); + } else if (e.data.action === 'long_trace') { + await initWASM(); + let result = {}; + let headArray = e.data.params.headArray; + let timStamp = e.data.params.timeStamp; + let allIndexDataList = e.data.params.splitDataList; + let splitFileInfos = e.data.params.splitFileInfo as Array<{ + fileType: string, + startIndex: number, + endIndex: number, + size: number + }>; + let maxSize = 48 * 1024 * 1024; + let maxPageNum = headArray.length / 1024; + let currentPageNum = 0; + let splitReqBufferAddr: number; + if (splitFileInfos) { + let splitFileInfo = splitFileInfos.filter(splitFileInfo => splitFileInfo.fileType !== 'trace'); + if (splitFileInfo && splitFileInfo.length > 0) { + let traceFileType: string = ''; + let db = await openDB(); + let newCutFilePageInfo: Map, dataTypes: string }] + }> = new Map(); + let cutFileCallBack = (heapPtr: number, size: number, dataType: number, isEnd: number) => { + let key = `${traceFileType}_${currentPageNum}`; + let out: Uint8Array = Module.HEAPU8.slice(heapPtr, heapPtr + size); + if (DataTypeEnum.data === dataType) { + if (traceFileType === 'arkts') { + arkTsData.push(out); + arkTsDataSize += size; + } else { + if (newCutFilePageInfo.has(key)) { + let newVar = newCutFilePageInfo.get(key); + newVar?.dataArray.push({data: out, dataTypes: 'data'}); + } else { + newCutFilePageInfo.set(key, { + traceFileType: traceFileType, + dataArray: [{data: out, dataTypes: 'data'}] + }); + } + } + } else if (DataTypeEnum.json === dataType) { + let cutFilePageInfo = newCutFilePageInfo.get(key); + if (cutFilePageInfo) { + let jsonStr: string = dec.decode(out); + let jsonObj = JSON.parse(jsonStr); + let valueArray: Array<{ offset: number, size: number }> = jsonObj.value; + cutFilePageInfo.dataArray.push({data: valueArray, dataTypes: 'json'}); + } + } + }; + splitReqBufferAddr = Module._InitializeSplitFile(Module.addFunction(cutFileCallBack, 'viiii'), REQ_BUF_SIZE); + Module.HEAPU8.set(headArray, splitReqBufferAddr); + Module._TraceStreamerGetLongTraceTimeSnapEx(headArray.length); + for (let fileIndex = 0; fileIndex < splitFileInfo.length; fileIndex++) { + let fileInfo = splitFileInfo[fileIndex]; + traceFileType = fileInfo.fileType; + for (let pageNum = 0; pageNum < maxPageNum; pageNum++) { + currentPageNum = pageNum; + await splitFileAndSave(timStamp, fileInfo.fileType, fileInfo.startIndex, fileInfo.endIndex, fileInfo.size, db, pageNum, maxSize, splitReqBufferAddr); + await initWASM(); + splitReqBufferAddr = Module._InitializeSplitFile(Module.addFunction(cutFileCallBack, 'viiii'), REQ_BUF_SIZE); + Module.HEAPU8.set(headArray, splitReqBufferAddr); + Module._TraceStreamerGetLongTraceTimeSnapEx(headArray.length); + } + } + for (const [fileTypePageNum, fileMessage] of newCutFilePageInfo) { + let fileTypePageNumArr = fileTypePageNum.split('_'); + let fileType = fileTypePageNumArr[0]; + let pageNum = Number(fileTypePageNumArr[1]); + let saveIndex = 0; + let saveStartOffset = 0; + let dataArray = fileMessage.dataArray; + let currentChunk = new Uint8Array(maxSize); + let currentChunkOffset = 0; + for (let fileDataIndex = 0; fileDataIndex < dataArray.length; fileDataIndex++) { + let receiveData = dataArray[fileDataIndex]; + if (receiveData.dataTypes === 'data') { + let receiveDataArray = receiveData.data as Uint8Array; + if (currentChunkOffset + receiveDataArray.length > maxSize) { + let freeSize = maxSize - currentChunkOffset; + let freeSaveData = receiveDataArray.slice(0, freeSize); + currentChunk.set(freeSaveData, currentChunkOffset); + await addDataToIndexeddb(db, { + 'buf': currentChunk, + 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + 'fileType': `${fileType}_new`, + 'pageNum': pageNum, + 'startOffset': saveStartOffset, + 'endOffset': saveStartOffset + maxSize, + 'index': saveIndex, + 'timStamp': timStamp + }); + saveStartOffset += maxSize; + saveIndex++; + currentChunk = new Uint8Array(maxSize); + let remnantArray = receiveDataArray.slice(freeSize); + currentChunkOffset = 0; + currentChunk.set(remnantArray, currentChunkOffset); + currentChunkOffset += remnantArray.length; + } else { + currentChunk.set(receiveDataArray, currentChunkOffset); + currentChunkOffset += receiveDataArray.length; + } + } else { + if (receiveData.data.length > 0) { + let needCutMessage = receiveData.data as Array<{ offset: number, size: number }>; + let startOffset = needCutMessage[0].offset; + let endOffset = needCutMessage[needCutMessage.length - 1].offset + needCutMessage[needCutMessage.length - 1].size; + let searchDataInfo = allIndexDataList.filter((value: { + fileType: string + index: number + pageNum: number + startOffsetSize: number + endOffsetSize: number + }) => { + return value.fileType === fileType && value.startOffsetSize <= endOffset && value.endOffsetSize >= startOffset; + }).sort((valueA: { startOffsetSize: number; }, valueB: { startOffsetSize: number; }) => { + return valueA.startOffsetSize - valueB.startOffsetSize; + }); + let startIndex = searchDataInfo[0].index; + let endIndex = searchDataInfo[searchDataInfo.length - 1].index; + let startQueryIndex = startIndex; + let endQueryIndex = startIndex + 10; + do { + endQueryIndex = Math.min(endQueryIndex, endIndex); + let searchCutFilter = searchDataInfo.filter((value: { + fileType: string + index: number + pageNum: number + startOffsetSize: number + endOffsetSize: number + }) => { + if (endQueryIndex === startQueryIndex) { + return value.index >= startQueryIndex; + } + return value.index >= startQueryIndex && value.index <= endQueryIndex; + }); + let minStartOffsetSize = Math.min(...searchCutFilter.map((item: { + startOffsetSize: number; + }) => item.startOffsetSize)); + let maxEndOffsetSize = Math.max(...searchCutFilter.map((item: { endOffsetSize: number; }) => item.endOffsetSize)); + let cutUseOffsetObjs = needCutMessage.filter(offseObj => { + return offseObj.offset > minStartOffsetSize && offseObj.offset < maxEndOffsetSize; + }); + let transaction = db.transaction(STORE_NAME, 'readonly'); + let store = transaction.objectStore(STORE_NAME); + let index = store.index('QueryCompleteFile'); + let range = IDBKeyRange.bound([timStamp, fileType, 0, startQueryIndex], [timStamp, fileType, 0, endQueryIndex], false, false); + const getRequest = index.openCursor(range); + let queryAllData = await queryDataFromIndexeddb(getRequest); + let mergeData = indexedDataToBufferData(queryAllData); + for (let cutOffsetObjIndex = 0; cutOffsetObjIndex < cutUseOffsetObjs.length; cutOffsetObjIndex++) { + let cutUseOffsetObj = cutUseOffsetObjs[cutOffsetObjIndex]; + let endOffset = cutUseOffsetObj.offset + cutUseOffsetObj.size; + let sliceData = mergeData.slice(cutUseOffsetObj.offset - minStartOffsetSize, endOffset - minStartOffsetSize); + let sliceDataLength = sliceData.length; + if (currentChunkOffset + sliceDataLength >= maxSize) { + let handleCurrentData = new Uint8Array(currentChunkOffset + sliceDataLength); + let freeSaveArray = currentChunk.slice(0, currentChunkOffset); + handleCurrentData.set(freeSaveArray, 0); + handleCurrentData.set(sliceData, freeSaveArray.length); + let newSliceDataLength: number = Math.ceil(handleCurrentData.length / maxSize); + for (let newSliceIndex = 0; newSliceIndex < newSliceDataLength; newSliceIndex++) { + let newSliceSize = newSliceIndex * maxSize; + let number = Math.min(newSliceSize + maxSize, handleCurrentData.length); + let saveArray = handleCurrentData.slice(newSliceSize, number); + if (newSliceIndex === newSliceDataLength - 1 && number - newSliceSize < maxSize) { + currentChunk = new Uint8Array(maxSize); + currentChunkOffset = 0; + currentChunk.set(saveArray, currentChunkOffset); + currentChunkOffset += saveArray.length; + } else { + await addDataToIndexeddb(db, { + 'buf': saveArray, + 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + 'fileType': `${fileType}_new`, + 'pageNum': pageNum, + 'startOffset': saveStartOffset, + 'endOffset': saveStartOffset + maxSize, + 'index': saveIndex, + 'timStamp': timStamp + }); + saveStartOffset += maxSize; + saveIndex++; + } + } + } else { + currentChunk.set(sliceData, currentChunkOffset); + currentChunkOffset += sliceDataLength; + } + } + startQueryIndex += 10; + endQueryIndex += 10; + } while (startQueryIndex <= endIndex && endQueryIndex <= endIndex); + } + } + } + if (currentChunkOffset !== 0) { + let freeArray = currentChunk.slice(0, currentChunkOffset); + await addDataToIndexeddb(db, { + 'buf': freeArray, + 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + 'fileType': `${fileType}_new`, + 'pageNum': pageNum, + 'startOffset': saveStartOffset, + 'endOffset': saveStartOffset + maxSize, + 'index': saveIndex, + 'timStamp': timStamp + }); + saveStartOffset += maxSize; + saveIndex++; + } + } + } + } + self.postMessage({ + id: e.data.id, + action: e.data.action, + results: result, + }); + return; } }; +function indexedDataToBufferData(sourceData: any): Uint8Array { + let uintArrayLength = 0; + let uintDataList = sourceData.map((item: any) => { + let currentBufData = new Uint8Array(item.buf); + uintArrayLength += currentBufData.length; + return currentBufData; + }); + let resultUintArray = new Uint8Array(uintArrayLength); + let offset = 0; + uintDataList.forEach((currentArray: Uint8Array) => { + resultUintArray.set(currentArray, offset); + offset += currentArray.length; + }); + return resultUintArray; +} + +async function splitFileAndSave(timStamp: number, fileType: string, startIndex: number, endIndex: number, fileSize: number, db: IDBDatabase, pageNum: number, maxSize: number, splitReqBufferAddr?: any) { + let queryStartIndex = startIndex; + let queryEndIndex = startIndex; + let saveIndex = 0; + let saveStartOffset = 0; + let currentChunk = new Uint8Array(maxSize); + let currentChunkOffset = 0; + do { + queryEndIndex = queryStartIndex + 9; + if (queryEndIndex > endIndex) { + queryEndIndex = endIndex; + } + const transaction = db.transaction(STORE_NAME, 'readonly'); + const store = transaction.objectStore(STORE_NAME); + const index = store.index('QueryCompleteFile'); + let range = IDBKeyRange.bound([timStamp, fileType, 0, startIndex], [timStamp, fileType, 0, endIndex], false, false); + const getRequest = index.openCursor(range); + let res = await queryDataFromIndexeddb(getRequest); + queryStartIndex = queryEndIndex + 1; + let resultFileSize = 0; + for (let i = 0; i < res.length; i++) { + let arrayBuffer = res[i]; + let uint8Array = new Uint8Array(arrayBuffer.buf); + let cutFileSize = 0; + while (cutFileSize < uint8Array.length) { + const sliceLen = Math.min(uint8Array.length - cutFileSize, REQ_BUF_SIZE); + const dataSlice = uint8Array.subarray(cutFileSize, cutFileSize + sliceLen); + Module.HEAPU8.set(dataSlice, splitReqBufferAddr); + cutFileSize += sliceLen; + resultFileSize += sliceLen; + if (resultFileSize >= fileSize) { + Module._TraceStreamerLongTraceSplitFileEx(sliceLen, 1, pageNum); + } else { + Module._TraceStreamerLongTraceSplitFileEx(sliceLen, 0, pageNum); + } + if (arkTsDataSize > 0 && fileType === 'arkts') { + for (let arkTsAllDataIndex = 0; arkTsAllDataIndex < arkTsData.length; arkTsAllDataIndex++) { + let currentArkTsData = arkTsData[arkTsAllDataIndex]; + let freeSize = maxSize - currentChunkOffset; + if (currentArkTsData.length > freeSize) { + let freeSaveData = currentArkTsData.slice(0, freeSize); + currentChunk.set(freeSaveData, currentChunkOffset); + await addDataToIndexeddb(db, { + 'buf': currentChunk, + 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + 'fileType': `${fileType}_new`, + 'pageNum': pageNum, + 'startOffset': saveStartOffset, + 'endOffset': saveStartOffset + maxSize, + 'index': saveIndex, + 'timStamp': timStamp + }); + saveStartOffset += maxSize; + saveIndex++; + let remnantData = currentArkTsData.slice(freeSize); + let remnantDataLength: number = Math.ceil(remnantData.length / maxSize); + for (let newSliceIndex = 0; newSliceIndex < remnantDataLength; newSliceIndex++) { + let newSliceSize = newSliceIndex * maxSize; + let number = Math.min(newSliceSize + maxSize, remnantData.length); + let saveArray = remnantData.slice(newSliceSize, number); + if (newSliceIndex === remnantDataLength - 1 && number - newSliceSize < maxSize) { + currentChunk = new Uint8Array(maxSize); + currentChunkOffset = 0; + currentChunk.set(saveArray, currentChunkOffset); + currentChunkOffset += saveArray.length; + } else { + await addDataToIndexeddb(db, { + 'buf': saveArray, + 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + 'fileType': `${fileType}_new`, + 'pageNum': pageNum, + 'startOffset': saveStartOffset, + 'endOffset': saveStartOffset + maxSize, + 'index': saveIndex, + 'timStamp': timStamp + }); + saveStartOffset += maxSize; + saveIndex++; + } + } + } else { + currentChunk.set(currentArkTsData, currentChunkOffset); + currentChunkOffset += currentArkTsData.length; + } + } + } + } + } + } while (queryEndIndex < endIndex); + if (fileType === 'arkts' && currentChunkOffset > 0 ) { + let remnantArray = new Uint8Array(currentChunkOffset); + let remnantChunk = currentChunk.slice(0, currentChunkOffset); + remnantArray.set(remnantChunk, 0); + await addDataToIndexeddb(db, { + 'buf': remnantArray, + 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + 'fileType': `${fileType}_new`, + 'pageNum': pageNum, + 'startOffset': saveStartOffset, + 'endOffset': saveStartOffset + maxSize, + 'index': saveIndex, + 'timStamp': timStamp + }); + arkTsDataSize = 0; + arkTsData.length = 0; + } +} + +enum DataTypeEnum { + data, + json +} + let uploadSoActionId: string = ''; let uploadFileIndex: number = 0; let uploadSoCallbackFn: any; @@ -607,3 +963,53 @@ function queryMetric(name: string): void { Module.HEAPU8.set(metricArray, reqBufferAddr); Module._TraceStreamerSqlMetricsQuery(metricArray.length); } + +const DB_NAME = 'sp'; +const DB_VERSION = 1; +const STORE_NAME = 'longTable'; + +function openDB(): Promise { + return new Promise((resolve, reject) => { + const openRequest = indexedDB.open(DB_NAME, DB_VERSION); + openRequest.onerror = () => reject(openRequest.error); + openRequest.onsuccess = () => { + resolve(openRequest.result); + }; + }); +} + +function queryDataFromIndexeddb(getRequest: IDBRequest): Promise { + return new Promise((resolve, reject) => { + let results: any[] = []; + getRequest.onerror = (event) => { + // @ts-ignore + reject(event.target.error); + }; + getRequest.onsuccess = (event) => { + // @ts-ignore + const cursor = event.target!.result; + if (cursor) { + results.push(cursor.value); + cursor['continue'](); + } else { + // @ts-ignore + resolve(results); + } + }; + }); +} + +function addDataToIndexeddb(db: IDBDatabase, value: any, key?: IDBValidKey) { + return new Promise((resolve, reject) => { + const transaction = db.transaction(STORE_NAME, 'readwrite'); + const objectStore = transaction.objectStore(STORE_NAME); + const request = objectStore.add(value, key); + request.onsuccess = function (event) { + // @ts-ignore + resolve(event.target.result); + }; + request.onerror = (event) => { + reject(event); + }; + }); +} -- Gitee From a3995b781229bd1bbb273888cbb6e80c5ed9f3bc Mon Sep 17 00:00:00 2001 From: zhangzepeng Date: Sat, 7 Oct 2023 09:59:11 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix.hdc=E6=8B=94=E6=8E=89=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=86=8D=E6=8F=92=E4=B8=8A=E4=BC=9A=E9=87=8D=E6=96=B0=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=94=B9=E4=B8=BA=E4=B8=8D=E4=BC=9A=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5.virse=E9=85=8D=E7=BD=AE=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9.slice=20detail=E9=87=8C=E7=9A=84cmdline?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=8C=E7=9B=B4=E6=8E=A5=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=AF=A5=E6=98=BE=E7=A4=BA.hilog=E8=A1=A8=E6=A0=BC=E5=88=97?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF,?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E6=BB=9A=E5=8A=A8=E6=97=B6=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangzepeng --- ide/src/base-ui/drawer/LitDrawer.ts | 4 +- ide/src/base-ui/icon.svg | 465 +-- ide/src/base-ui/menu/LitMainMenuItem.ts | 4 +- ide/src/base-ui/modal/LitModal.ts | 4 +- ide/src/base-ui/popover/LitPopover.ts | 5 +- ide/src/base-ui/popover/LitPopoverV.ts | 4 +- ide/src/base-ui/table/LitPageTable.ts | 49 +- ide/src/base-ui/table/lit-table.ts | 6 +- ide/src/base-ui/tabs/lit-tabs.ts | 12 +- ide/src/base-ui/tree/LitTree.ts | 168 +- ide/src/base-ui/tree/LitTreeNode.ts | 76 +- ide/src/base-ui/utils/CSVFormater.ts | 51 +- ide/src/command/CmdConstant.ts | 10 +- ide/src/doc/md/des_tables.md | 2392 ++++++++------- ...quickstart_Application_operation_skills.md | 19 +- ide/src/doc/md/quickstart_Frametimeline.md | 107 +- ide/src/doc/md/quickstart_Import_so.md | 278 +- ide/src/doc/md/quickstart_Js_memory.md | 140 +- ide/src/doc/md/quickstart_ability_monitor.md | 240 +- ide/src/doc/md/quickstart_animation.md | 107 +- ide/src/doc/md/quickstart_app_startup.md | 108 +- ide/src/doc/md/quickstart_arkts.md | 89 +- ide/src/doc/md/quickstart_bio.md | 166 +- ide/src/doc/md/quickstart_device_record.md | 59 +- ide/src/doc/md/quickstart_filesystem.md | 204 +- ide/src/doc/md/quickstart_hilog.md | 22 - ide/src/doc/md/quickstart_hiperf.md | 149 +- ide/src/doc/md/quickstart_hisystemevent.md | 157 +- ide/src/doc/md/quickstart_memory_template.md | 289 +- ide/src/doc/md/quickstart_native_memory.md | 199 +- ide/src/doc/md/quickstart_page_fault.md | 136 +- .../doc/md/quickstart_schedulinganalysis.md | 238 +- ide/src/doc/md/quickstart_sdk.md | 14 +- ide/src/doc/md/quickstart_smaps.md | 92 +- ide/src/doc/md/quickstart_sql_metrics.md | 37 +- ide/src/doc/md/quickstart_systemtrace.md | 109 +- ide/src/doc/md/quickstart_taskpool.md | 87 +- ide/src/doc/md/quickstart_web_record.md | 47 +- ide/src/doc/quickstart_animation.html | 1846 ++++++------ ide/src/doc/quickstart_app_startup.html | 1822 ++++++------ ide/src/doc/quickstart_arkts.html | 1764 +++++------ ide/src/doc/quickstart_hilog.html | 887 ------ ide/src/doc/quickstart_memory_template.html | 2388 +++++++-------- ide/src/doc/quickstart_taskpool.html | 1744 +++++------ ide/src/figures/Hilog/hilogconfig.jpg | Bin 41510 -> 0 bytes ide/src/figures/Hilog/hilogrow.jpg | Bin 15900 -> 0 bytes ide/src/figures/Hilog/hilogsummarytab.jpg | Bin 34026 -> 0 bytes ide/src/figures/Hilog/hilogtab.jpg | Bin 228077 -> 0 bytes .../OperationSkills/Tababsolutetime.jpg | Bin 37792 -> 0 bytes .../OperationSkills/Tabcallstackskip.jpg | Bin 55053 -> 0 bytes ide/src/figures/OperationSkills/Tabdrag.jpg | Bin 84327 -> 0 bytes .../figures/OperationSkills/Taboneclick.jpg | Bin 76021 -> 0 bytes ide/src/figures/OperationSkills/Tabskill.jpg | Bin 56483 -> 0 bytes .../OperationSkills/Tabskillcalltack.jpg | Bin 88830 -> 0 bytes .../figures/OperationSkills/Tabskillfold.jpg | Bin 75793 -> 0 bytes .../OperationSkills/Tabskilltemple.jpg | Bin 136725 -> 0 bytes .../OperationSkills/collectskilldrag.jpg | Bin 153430 -> 0 bytes .../figures/OperationSkills/collectskillg.jpg | Bin 115704 -> 0 bytes .../figures/OperationSkills/colorchoose.jpg | Bin 145589 -> 0 bytes .../figures/OperationSkills/colorcontrast.jpg | Bin 22734 -> 0 bytes .../figures/OperationSkills/rowskillflag.jpg | Bin 106865 -> 0 bytes .../figures/OperationSkills/rowskillinput.jpg | Bin 32307 -> 0 bytes ide/src/figures/OperationSkills/rowskillm.jpg | Bin 199133 -> 0 bytes ide/src/figures/OperationSkills/rowskilon.jpg | Bin 220034 -> 0 bytes .../figures/OperationSkills/schedpritab.jpg | Bin 82232 -> 0 bytes .../figures/OperationSkills/searchskill.jpg | Bin 11786 -> 0 bytes .../figures/OperationSkills/shellconfig.jpg | Bin 150390 -> 0 bytes ide/src/figures/OperationSkills/sqlselect.jpg | Bin 145876 -> 0 bytes .../figures/OperationSkills/threadtree.jpg | Bin 112832 -> 0 bytes ide/src/figures/OperationSkills/tracestop.jpg | Bin 89063 -> 0 bytes ide/src/hdc/HdcDeviceManager.ts | 20 +- ide/src/hdc/hdcclient/HdcClient.ts | 6 +- ide/src/hdc/hdcclient/HdcStream.ts | 2 - .../transmission/UsbTransmissionChannel.ts | 3 +- ide/src/icon.svg | 2588 +++++++++++------ ide/src/img/menu-cut.svg | 11 +- ide/src/img/table_no_data.svg | 35 +- ide/src/trace/SpApplication.ts | 465 +-- ide/src/trace/bean/BoxSelection.ts | 10 +- ide/src/trace/bean/CpuFreqStruct.ts | 7 +- ide/src/trace/bean/CpuStruct.ts | 40 +- ide/src/trace/bean/FpsStruct.ts | 56 +- ide/src/trace/bean/FrameChartStruct.ts | 2 +- ide/src/trace/bean/FrameComponentBean.ts | 2 +- ide/src/trace/bean/FuncStruct.ts | 24 +- ide/src/trace/bean/HeapStruct.ts | 41 +- ide/src/trace/bean/MemoryConfig.ts | 2 +- ide/src/trace/bean/PerfProfile.ts | 2 +- ide/src/trace/bean/ProcessMemStruct.ts | 40 +- ide/src/trace/bean/SearchFuncBean.ts | 2 +- ide/src/trace/bean/SmapsStruct.ts | 64 +- ide/src/trace/bean/ThreadStruct.ts | 35 +- ide/src/trace/bean/WakeupBean.ts | 2 +- ide/src/trace/component/SpFlags.ts | 25 +- ide/src/trace/component/SpInfoAndStas.ts | 20 +- ide/src/trace/component/SpMetrics.ts | 6 +- ide/src/trace/component/SpQuerySQL.ts | 29 +- ide/src/trace/component/SpRecordTrace.ts | 270 +- .../trace/component/SpRecyclerSystemTrace.ts | 10 +- ide/src/trace/component/SpSystemTrace.ts | 32 +- ide/src/trace/component/Utils.ts | 5 +- ide/src/trace/component/chart/SpArkTsChart.ts | 14 +- .../trace/component/chart/SpChartManager.ts | 2 +- ide/src/trace/component/chart/SpClockChart.ts | 8 +- ide/src/trace/component/chart/SpCpuChart.ts | 8 +- .../component/chart/SpFileSystemChart.ts | 60 +- ide/src/trace/component/chart/SpFpsChart.ts | 10 +- .../trace/component/chart/SpFrameTimeChart.ts | 269 +- ide/src/trace/component/chart/SpFreqChart.ts | 24 +- ide/src/trace/component/chart/SpHiPerf.ts | 34 +- .../component/chart/SpHiSysEventChart.ts | 32 +- ide/src/trace/component/chart/SpIrqChart.ts | 8 +- ide/src/trace/component/chart/SpLogChart.ts | 8 +- .../component/chart/SpNativeMemoryChart.ts | 16 +- .../trace/component/chart/SpProcessChart.ts | 22 +- ide/src/trace/component/chart/SpSdkChart.ts | 16 +- .../component/chart/SpVirtualMemChart.ts | 8 +- .../TabCpuDetailsThreads.ts | 3 +- .../Top20FrequencyThread.ts | 6 +- .../trace/component/setting/SpAllocations.ts | 10 +- .../trace/component/setting/SpHilogRecord.ts | 2 +- .../trace/component/setting/SpProbesConfig.ts | 2 +- .../component/setting/SpRecordSetting.ts | 31 +- .../component/setting/SpRecordTemplate.ts | 20 +- .../trace/component/setting/SpWebHdcShell.ts | 34 +- ide/src/trace/component/trace/SpChartList.ts | 20 +- .../component/trace/TimerShaftElement.ts | 2 +- .../trace/component/trace/base/CommonSql.ts | 417 +-- .../trace/component/trace/base/Extension.ts | 4 +- .../trace/component/trace/base/RangeSelect.ts | 36 +- .../trace/component/trace/base/TraceRow.ts | 13 +- .../component/trace/base/TraceRowConfig.ts | 7 +- .../component/trace/base/TraceRowObject.ts | 30 +- .../trace/component/trace/base/TraceSheet.ts | 4 +- ide/src/trace/component/trace/base/Utils.ts | 6 +- .../trace/component/trace/search/Search.ts | 11 +- .../component/trace/sheet/TabPaneCurrent.ts | 4 +- .../trace/sheet/TabPaneCurrentSelection.ts | 13 +- .../trace/sheet/ability/TabPaneCpuAbility.ts | 7 +- .../trace/sheet/ability/TabPaneDiskAbility.ts | 7 +- .../sheet/ability/TabPaneDmaSelectAbility.ts | 3 +- .../sheet/ability/TabPaneHistoryProcesses.ts | 10 +- .../sheet/ability/TabPaneLiveProcesses.ts | 7 +- .../sheet/ability/TabPaneMemoryAbility.ts | 10 +- .../sheet/ability/TabPaneNetworkAbility.ts | 10 +- .../trace/sheet/ability/TabPanePurgPin.ts | 17 +- .../trace/sheet/ability/TabPanePurgTotal.ts | 11 +- .../trace/sheet/ark-ts/TabPaneSummary.ts | 20 +- .../trace/sheet/clock/TabPaneClockCounter.ts | 7 +- .../trace/sheet/cpu/TabPaneCounterSample.ts | 4 +- .../trace/sheet/cpu/TabPaneCpuByProcess.ts | 7 +- .../trace/sheet/cpu/TabPaneCpuByThread.ts | 7 +- .../trace/sheet/cpu/TabPaneFrequencySample.ts | 4 +- .../trace/sheet/cpu/TabPaneSchedPriority.ts | 4 +- .../trace/sheet/energy/TabPanePowerDetails.ts | 8 +- .../sheet/file-system/TabPaneCallTree.ts | 8 +- .../file-system/TabPaneFileSystemCalltree.ts | 8 +- .../TabPaneFileSystemDescHistory.ts | 12 +- .../TabPaneFileSystemDescTimeSlice.ts | 12 +- .../file-system/TabPaneFileSystemEvents.ts | 12 +- .../TabPaneFilesystemStatistics.ts | 26 +- .../TabPaneFilesystemStatisticsAnalysis.ts | 41 +- .../TabPaneIOTierStatisticsAnalysis.ts | 36 +- .../file-system/TabPaneIoCompletionTimes.ts | 18 +- .../sheet/file-system/TabPaneVMEvents.ts | 17 +- .../TabPaneVirtualMemoryStatisticsAnalysis.ts | 24 +- .../trace/sheet/frame/TabFrameSpacing.ts | 17 +- .../trace/sheet/frame/TabPaneFrameDynamic.ts | 19 +- .../sheet/gpu/TabPaneGpuTotalBoxSelect.ts | 42 +- .../sheet/gpu/TabPaneGpuWindowBoxSelect.ts | 44 +- .../component/trace/sheet/gpu/TabPaneGraph.ts | 110 - .../trace/sheet/hilog/TabPaneHiLogSummary.ts | 16 +- .../trace/sheet/hilog/TabPaneHiLogs.ts | 48 +- .../trace/sheet/hiperf/TabPanePerfAnalysis.ts | 30 +- .../trace/sheet/hiperf/TabPerfBottomUp.ts | 2 +- .../trace/sheet/hiperf/TabPerfSampleList.ts | 3 +- .../trace/sheet/jank/TabPaneFrames.ts | 13 +- .../native-memory/TabPaneNMSampleList.ts | 6 +- .../TabPaneNMStatisticAnalysis.ts | 138 +- .../sheet/native-memory/TabPaneNMStatstics.ts | 3 +- .../sheet/native-memory/TabPaneNMemory.ts | 8 +- .../trace/sheet/process/TabPaneCounter.ts | 7 +- .../trace/sheet/process/TabPaneSlices.ts | 9 +- .../trace/sheet/process/TabPaneStartup.ts | 4 +- .../trace/sheet/process/TabPaneStaticInit.ts | 5 +- .../trace/sheet/sdk/TabPaneSdkCounter.ts | 7 +- .../trace/sheet/sdk/TabPaneSdkSlice.ts | 7 +- .../trace/sheet/smaps/TabPaneSmapsRecord.ts | 22 +- .../trace/sheet/smaps/TabPaneSmapsSample.ts | 200 -- .../trace/sheet/task/TabPaneTaskFrames.ts | 40 +- .../vmtracker/TabPaneDmaSelectVmTracker.ts | 3 +- .../TabPaneGpuMemorySelectVmTracker.ts | 3 +- .../TabPaneGpuMemoryVmTrackerComparison.ts | 24 +- .../vmtracker/TabPaneGpuResourceVmTracker.ts | 84 - .../sheet/vmtracker/TabPaneVmTrackerShm.ts | 6 +- .../trace/timer-shaft/CollapseButton.ts | 7 +- .../component/trace/timer-shaft/RangeRuler.ts | 2 +- .../trace/component/trace/timer-shaft/Rect.ts | 2 +- .../trace/timer-shaft/TabPaneFlag.ts | 6 +- ide/src/trace/database/ConvertTraceWorker.ts | 6 +- ide/src/trace/database/IndexedDBHelp.ts | 16 +- ide/src/trace/database/LongTraceDBUtils.ts | 13 +- ide/src/trace/database/SqlLite.ts | 40 +- ide/src/trace/database/TempSql.ts | 2 +- ide/src/trace/database/TraceWorker.ts | 263 +- .../logic-worker/ProcedureLogicWorker.ts | 2 +- .../ProcedureLogicWorkerFileSystem.ts | 12 +- .../ProcedureLogicWorkerSchedulingAnalysis.ts | 9 +- .../ui-worker/ProcedureWorkerAppStartup.ts | 24 +- .../database/ui-worker/ProcedureWorkerCPU.ts | 6 +- .../ui-worker/ProcedureWorkerClock.ts | 2 +- .../ui-worker/ProcedureWorkerCommon.ts | 167 +- .../ui-worker/ProcedureWorkerCpuAbility.ts | 31 +- .../ui-worker/ProcedureWorkerDiskIoAbility.ts | 22 +- .../ui-worker/ProcedureWorkerEnergySystem.ts | 9 +- .../ui-worker/ProcedureWorkerFileSystem.ts | 10 +- .../ProcedureWorkerFrameAnimation.ts | 68 +- .../ui-worker/ProcedureWorkerFrameDynamic.ts | 125 +- .../ui-worker/ProcedureWorkerFrameSpacing.ts | 187 +- .../ui-worker/ProcedureWorkerHiPerfEvent.ts | 7 +- .../ui-worker/ProcedureWorkerHiPerfProcess.ts | 7 +- .../ui-worker/ProcedureWorkerHiPerfReport.ts | 9 +- .../ui-worker/ProcedureWorkerHiPerfThread.ts | 10 +- .../database/ui-worker/ProcedureWorkerJank.ts | 24 +- .../database/ui-worker/ProcedureWorkerLog.ts | 6 +- .../ui-worker/ProcedureWorkerMemoryAbility.ts | 22 +- .../ProcedureWorkerNetworkAbility.ts | 22 +- .../ui-worker/ProcedureWorkerSnapshot.ts | 9 +- .../ui-worker/ProcedureWorkerSoInit.ts | 22 +- 229 files changed, 12815 insertions(+), 11495 deletions(-) delete mode 100644 ide/src/doc/md/quickstart_hilog.md delete mode 100644 ide/src/doc/quickstart_hilog.html delete mode 100644 ide/src/figures/Hilog/hilogconfig.jpg delete mode 100644 ide/src/figures/Hilog/hilogrow.jpg delete mode 100644 ide/src/figures/Hilog/hilogsummarytab.jpg delete mode 100644 ide/src/figures/Hilog/hilogtab.jpg delete mode 100644 ide/src/figures/OperationSkills/Tababsolutetime.jpg delete mode 100644 ide/src/figures/OperationSkills/Tabcallstackskip.jpg delete mode 100644 ide/src/figures/OperationSkills/Tabdrag.jpg delete mode 100644 ide/src/figures/OperationSkills/Taboneclick.jpg delete mode 100644 ide/src/figures/OperationSkills/Tabskill.jpg delete mode 100644 ide/src/figures/OperationSkills/Tabskillcalltack.jpg delete mode 100644 ide/src/figures/OperationSkills/Tabskillfold.jpg delete mode 100644 ide/src/figures/OperationSkills/Tabskilltemple.jpg delete mode 100644 ide/src/figures/OperationSkills/collectskilldrag.jpg delete mode 100644 ide/src/figures/OperationSkills/collectskillg.jpg delete mode 100644 ide/src/figures/OperationSkills/colorchoose.jpg delete mode 100644 ide/src/figures/OperationSkills/colorcontrast.jpg delete mode 100644 ide/src/figures/OperationSkills/rowskillflag.jpg delete mode 100644 ide/src/figures/OperationSkills/rowskillinput.jpg delete mode 100644 ide/src/figures/OperationSkills/rowskillm.jpg delete mode 100644 ide/src/figures/OperationSkills/rowskilon.jpg delete mode 100644 ide/src/figures/OperationSkills/schedpritab.jpg delete mode 100644 ide/src/figures/OperationSkills/searchskill.jpg delete mode 100644 ide/src/figures/OperationSkills/shellconfig.jpg delete mode 100644 ide/src/figures/OperationSkills/sqlselect.jpg delete mode 100644 ide/src/figures/OperationSkills/threadtree.jpg delete mode 100644 ide/src/figures/OperationSkills/tracestop.jpg delete mode 100644 ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts delete mode 100644 ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts delete mode 100644 ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts diff --git a/ide/src/base-ui/drawer/LitDrawer.ts b/ide/src/base-ui/drawer/LitDrawer.ts index ec20ccb1..08415d62 100644 --- a/ide/src/base-ui/drawer/LitDrawer.ts +++ b/ide/src/base-ui/drawer/LitDrawer.ts @@ -320,9 +320,7 @@ export class LitDrawer extends BaseElement { disconnectedCallback() {} //当 custom element被移动到新的文档时,被调用。 - adoptedCallback() { - - } + adoptedCallback() {} //当 custom element增加、删除、修改自身属性时,被调用。 attributeChangedCallback(name: string, oldValue: string, newValue: string) { diff --git a/ide/src/base-ui/icon.svg b/ide/src/base-ui/icon.svg index ff9b5bff..3e4d09f3 100644 --- a/ide/src/base-ui/icon.svg +++ b/ide/src/base-ui/icon.svg @@ -1,328 +1,459 @@ - \ No newline at end of file diff --git a/ide/src/base-ui/menu/LitMainMenuItem.ts b/ide/src/base-ui/menu/LitMainMenuItem.ts index d6b2e23b..9a1e7793 100644 --- a/ide/src/base-ui/menu/LitMainMenuItem.ts +++ b/ide/src/base-ui/menu/LitMainMenuItem.ts @@ -101,7 +101,9 @@ export class LitMainMenuItem extends BaseElement { ); } if (this.fileEL) this.fileEL.value = ''; - if (this.fileEL) {this.fileEL.value = ''} + if (this.fileEL) { + this.fileEL.value = ''; + } } }); } diff --git a/ide/src/base-ui/modal/LitModal.ts b/ide/src/base-ui/modal/LitModal.ts index 8eb1b057..7471a369 100644 --- a/ide/src/base-ui/modal/LitModal.ts +++ b/ide/src/base-ui/modal/LitModal.ts @@ -533,9 +533,7 @@ export class LitModal extends BaseElement { disconnectedCallback() {} //当 custom element被移动到新的文档时,被调用。 - adoptedCallback() { - - } + adoptedCallback() {} //当 custom element增加、删除、修改自身属性时,被调用。 attributeChangedCallback(name: string, oldValue: string, newValue: string) { diff --git a/ide/src/base-ui/popover/LitPopover.ts b/ide/src/base-ui/popover/LitPopover.ts index 3afff245..edc824a8 100644 --- a/ide/src/base-ui/popover/LitPopover.ts +++ b/ide/src/base-ui/popover/LitPopover.ts @@ -438,7 +438,10 @@ export class LitPopover extends BaseElement { const path = ev.composedPath && ev.composedPath(); if ( // @ts-ignore - this.popContent && !path.includes(this.popContent) && !path.includes(this.children[0]) && !path.includes(this.popContent) + this.popContent && + !path.includes(this.popContent) && + !path.includes(this.children[0]) && + !path.includes(this.popContent) ) { this.popContent!.open = false; } diff --git a/ide/src/base-ui/popover/LitPopoverV.ts b/ide/src/base-ui/popover/LitPopoverV.ts index 0e3a6a13..c3a02f89 100644 --- a/ide/src/base-ui/popover/LitPopoverV.ts +++ b/ide/src/base-ui/popover/LitPopoverV.ts @@ -34,11 +34,11 @@ export class LitPopover extends BaseElement { } set placement(value) { - this.setAttribute('placement',value || 'bottomLeft'); + this.setAttribute('placement', value || 'bottomLeft'); } get placement() { - return this.getAttribute('placement') + return this.getAttribute('placement'); } get trigger() { diff --git a/ide/src/base-ui/table/LitPageTable.ts b/ide/src/base-ui/table/LitPageTable.ts index f661f1da..753655a4 100644 --- a/ide/src/base-ui/table/LitPageTable.ts +++ b/ide/src/base-ui/table/LitPageTable.ts @@ -15,20 +15,19 @@ import { LitTableColumn } from './lit-table-column.js'; import { LitProgressBar } from './../progress-bar/LitProgressBar.js'; -import { BaseElement, element} from '../BaseElement.js'; +import { BaseElement, element } from '../BaseElement.js'; import '../utils/Template.js'; import { TableRowObject } from './TableRowObject.js'; import { JSONToCSV } from '../utils/CSVFormater.js'; @element('lit-page-table') export class LitPageTable extends BaseElement { - meauseRowElement: HTMLDivElement | undefined; currentRecycleList: HTMLDivElement[] = []; currentTreeDivList: HTMLDivElement[] = []; public rememberScrollTop = false; public getItemTextColor?: (data: any) => string; - public itemTextHandleMap: Map string> = new Map string>(); + public itemTextHandleMap: Map string> = new Map string>(); private ds: Array = []; public recycleDs: Array = []; private gridTemplateColumns: Array = []; @@ -53,7 +52,16 @@ export class LitPageTable extends BaseElement { private _loading: boolean = false; static get observedAttributes() { - return ['scroll-y', 'selectable', 'no-head', 'grid-line', 'defaultOrderColumn', 'hideDownload', 'loading', 'pagination']; + return [ + 'scroll-y', + 'selectable', + 'no-head', + 'grid-line', + 'defaultOrderColumn', + 'hideDownload', + 'loading', + 'pagination', + ]; } set loading(value: boolean) { @@ -143,14 +151,14 @@ export class LitPageTable extends BaseElement { this.currentPage = Math.max(this.currentPage - 1, 0); this.showCurrentPageData(); } - } + }; this.nextDiv!.onclick = () => { if (this.currentPage < this.ds.length - 1) { this.currentPage = Math.min(this.currentPage + 1, this.ds.length - 1); this.showCurrentPageData(); } - } - this.jumpDiv!.onclick= () => { + }; + this.jumpDiv!.onclick = () => { let value = this.targetPageInput!.value; let reg = /^[0-9]*$/; if (value.length > 0 && reg.test(value)) { @@ -169,7 +177,7 @@ export class LitPageTable extends BaseElement { } else { this.targetPageInput!.value = ''; } - } + }; } toTop() { @@ -734,19 +742,20 @@ export class LitPageTable extends BaseElement { private columnMinWidth: number = 50; private beforeResizeWidth1: number = 0; private beforeResizeWidth2: number = 0; - resizeEventHandler(header: HTMLDivElement, element: HTMLDivElement, index: number){ + resizeEventHandler(header: HTMLDivElement, element: HTMLDivElement, index: number) { header.addEventListener('mousemove', (event) => { if (this.isResize) { let width = event.clientX - this.resizeDownX; header.style.cursor = 'col-resize'; - let preWidth = this.beforeResizeWidth1, nowWidth = this.beforeResizeWidth2; + let preWidth = this.beforeResizeWidth1, + nowWidth = this.beforeResizeWidth2; if (width < 0) { preWidth = Math.max(this.beforeResizeWidth1 + width, this.columnMinWidth); - nowWidth = (this.beforeResizeWidth1 - preWidth) + this.beforeResizeWidth2; + nowWidth = this.beforeResizeWidth1 - preWidth + this.beforeResizeWidth2; } if (width > 0) { nowWidth = Math.max(this.beforeResizeWidth2 - width, this.columnMinWidth); - preWidth = (this.beforeResizeWidth2 - nowWidth) + this.beforeResizeWidth1; + preWidth = this.beforeResizeWidth2 - nowWidth + this.beforeResizeWidth1; } this.gridTemplateColumns[this.resizeColumnIndex - 1] = `${preWidth}px`; this.gridTemplateColumns[this.resizeColumnIndex] = `${nowWidth}px`; @@ -778,17 +787,17 @@ export class LitPageTable extends BaseElement { this.resizeColumnIndex = -1; header.style.cursor = 'pointer'; }); - element.addEventListener('mousedown', (event)=>{ + element.addEventListener('mousedown', (event) => { this.isResize = true; this.resizeColumnIndex = index; this.resizeDownX = event.clientX; - let pre = (header.childNodes.item(this.resizeColumnIndex - 1) as HTMLDivElement); - let now = (header.childNodes.item(this.resizeColumnIndex) as HTMLDivElement); + let pre = header.childNodes.item(this.resizeColumnIndex - 1) as HTMLDivElement; + let now = header.childNodes.item(this.resizeColumnIndex) as HTMLDivElement; this.beforeResizeWidth1 = pre.clientWidth; this.beforeResizeWidth2 = now.clientWidth; event.stopPropagation(); }); - element.addEventListener('click',(event) => { + element.addEventListener('click', (event) => { event.stopPropagation(); }); } @@ -839,7 +848,7 @@ export class LitPageTable extends BaseElement { meauseTreeElementHeight(rowData: any, depth: number) { return 27; } - + meauseAllRowHeight(list: any[]): TableRowObject[] { this.tbodyElement!.innerHTML = ''; this.meauseRowElement = undefined; @@ -867,7 +876,7 @@ export class LitPageTable extends BaseElement { } totalHeight += height; visibleObjects.push(tableRowObject); - } + }; let realIndex = 0; list.forEach((item, index) => { if (Array.isArray(item)) { @@ -1034,7 +1043,7 @@ export class LitPageTable extends BaseElement { } td.style.paddingLeft = rowData.depth * 15 + 'px'; if (!rowData.data.children || rowData.data.children.length === 0) { - td.style.paddingLeft = (15 * rowData.depth + 16) + 'px'; + td.style.paddingLeft = 15 * rowData.depth + 16 + 'px'; } (td as any).data = rowData.data; td.classList.add('tree-first-body'); @@ -1585,4 +1594,4 @@ export class LitPageTable extends BaseElement { if (!customElements.get('lit-page-table')) { customElements.define('lit-page-table', LitPageTable); -} \ No newline at end of file +} diff --git a/ide/src/base-ui/table/lit-table.ts b/ide/src/base-ui/table/lit-table.ts index 1ec70ade..0b294fc0 100644 --- a/ide/src/base-ui/table/lit-table.ts +++ b/ide/src/base-ui/table/lit-table.ts @@ -1480,9 +1480,9 @@ export class LitTable extends HTMLElement { if (text.indexOf('<') === -1) { td.title = text; } - // 如果表格中有模板的情况,将模板中的数据放进td中,没有模板,直接将文本放进td - // 但是对于Current Selection tab页来说,表格前两列是时间,第三列是input标签,第四列是button标签 - // 而第一行的数据只有第四列一个button,和模板中的数据并不一样,所以要特别处理一下 + // 如果表格中有模板的情况,将模板中的数据放进td中,没有模板,直接将文本放进td + // 但是对于Current Selection tab页来说,表格前两列是时间,第三列是input标签,第四列是button标签 + // 而第一行的数据只有第四列一个button,和模板中的数据并不一样,所以要特别处理一下 if (column.template) { if (dataIndex === 'color' && rowData.data.colorEl === undefined) { td.innerHTML = ''; diff --git a/ide/src/base-ui/tabs/lit-tabs.ts b/ide/src/base-ui/tabs/lit-tabs.ts index 2bb7e198..e4ff18d9 100644 --- a/ide/src/base-ui/tabs/lit-tabs.ts +++ b/ide/src/base-ui/tabs/lit-tabs.ts @@ -665,17 +665,17 @@ export class LitTabs extends HTMLElement { let span = a.querySelector('span') as HTMLSpanElement; let title = span.innerText; let rowType = document - .querySelector('sp-application')! - .shadowRoot?.querySelector('sp-system-trace')! - .getAttribute('clickRow'); + .querySelector('sp-application')! + .shadowRoot?.querySelector('sp-system-trace')! + .getAttribute('clickRow'); if (title === 'Counters' || title === 'Thread States') { title += `(${rowType})`; } if (title === 'Analysis') { let rowId = document - .querySelector('sp-application')! - .shadowRoot?.querySelector('sp-system-trace')! - .getAttribute('rowId'); + .querySelector('sp-application')! + .shadowRoot?.querySelector('sp-system-trace')! + .getAttribute('rowId'); if (rowId!.indexOf('DiskIOLatency') > -1) { title += '(disk-io)'; } else if (rowId!.indexOf('VirtualMemory') > -1) { diff --git a/ide/src/base-ui/tree/LitTree.ts b/ide/src/base-ui/tree/LitTree.ts index bbd105bd..4252aeab 100644 --- a/ide/src/base-ui/tree/LitTree.ts +++ b/ide/src/base-ui/tree/LitTree.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import './LitTreeNode.js' +import './LitTreeNode.js'; import { BaseElement, element } from '../BaseElement.js'; import { LitTreeNode } from './LitTreeNode.js'; @@ -28,7 +28,6 @@ export interface TreeItemData { @element('lit-tree') export class LitTree extends BaseElement { - private _treeData: Array = []; private currentSelectedNode: any; private currentSelectedData: any; @@ -70,7 +69,7 @@ export class LitTree extends BaseElement { this.currentSelectedNode.setAttribute('show-arrow', 'true'); let ul = document.createElement('ul'); // @ts-ignore - ul.open = 'true' + ul.open = 'true'; ul.style.transition = '.3s all'; this.currentSelectedNode.parentElement.append(ul); this.currentSelectedNode.arrow = true; @@ -79,17 +78,17 @@ export class LitTree extends BaseElement { } } return true; - } + }, }; let setProxy = (v: Array) => { - v.forEach(a => { + v.forEach((a) => { if (!a.children) { a.children = new Proxy([], handler); } else { a.children = new Proxy(a.children, handler); setProxy(a.children || []); } - }) + }); }; setProxy(this._treeData); this.proxyData = new Proxy(this._treeData, handler); @@ -97,7 +96,7 @@ export class LitTree extends BaseElement { set multiple(value: boolean) { if (value) { - this.setAttribute('multiple',''); + this.setAttribute('multiple', ''); } else { this.removeAttribute('multiple'); } @@ -129,12 +128,12 @@ export class LitTree extends BaseElement { //当 custom element首次被插入文档DOM时,被调用。 connectedCallback() { - this.onclick = ev => { + this.onclick = (ev) => { this.contextMenu!.style.display = 'none'; this.currentSelectedData = null; this.currentSelectedNode = null; this.selectedNode(null); - } + }; } getCheckdKeys() { @@ -147,32 +146,38 @@ export class LitTree extends BaseElement { //展开所有节点 expandKeys(keys: Array) { - keys.forEach(k => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => b.expand())); + keys.forEach((k) => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => b.expand())); } //收起所有节点 collapseKeys(keys: Array) { - keys.forEach(k => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => b.collapse())); + keys.forEach((k) => + this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => b.collapse()) + ); } checkedKeys(keys: Array) { - keys.forEach(k => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => { - b.setAttribute('checked', 'true'); - b.checkHandler(); - })); + keys.forEach((k) => + this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => { + b.setAttribute('checked', 'true'); + b.checkHandler(); + }) + ); } uncheckedKeys(keys: Array) { - keys.forEach(k => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => { - b.removeAttribute('checked'); - b.removeAttribute('missing'); - b.checkHandler(); - })); + keys.forEach((k) => + this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => { + b.removeAttribute('checked'); + b.removeAttribute('missing'); + b.checkHandler(); + }) + ); } drawTree(parent: any, array: Array, topDepth: boolean = false) { let that = this; - array.forEach(a => { + array.forEach((a) => { let li = document.createElement('li'); let node: LitTreeNode = document.createElement('lit-tree-node') as LitTreeNode; node.title = a.title; @@ -184,31 +189,31 @@ export class LitTree extends BaseElement { e.preventDefault(); }; //在拖动目标上触发事件 (源元素) - node.ondrag = ev => this.onDrag(ev);//元素正在拖动时触发 - node.ondragstart = ev => this.onDragStart(ev);//用户开始拖动元素时触发 - node.ondragend = ev => this.onDragEnd(ev);// 用户完成元素拖动后触发 + node.ondrag = (ev) => this.onDrag(ev); //元素正在拖动时触发 + node.ondragstart = (ev) => this.onDragStart(ev); //用户开始拖动元素时触发 + node.ondragend = (ev) => this.onDragEnd(ev); // 用户完成元素拖动后触发 //释放目标时触发的事件: - node.ondragenter = ev => this.onDragEnter(ev);//当被鼠标拖动的对象进入其容器范围内时触发此事件 - node.ondragover = ev => this.onDragOver(ev);//当某被拖动的对象在另一对象容器范围内拖动时触发此事件 - node.ondragleave = ev => this.onDragLeave(ev);//当被鼠标拖动的对象离开其容器范围内时触发此事件 - node.ondrop = ev => this.onDrop(ev);//在一个拖动过程中,释放鼠标键时触发此事件 + node.ondragenter = (ev) => this.onDragEnter(ev); //当被鼠标拖动的对象进入其容器范围内时触发此事件 + node.ondragover = (ev) => this.onDragOver(ev); //当某被拖动的对象在另一对象容器范围内拖动时触发此事件 + node.ondragleave = (ev) => this.onDragLeave(ev); //当被鼠标拖动的对象离开其容器范围内时触发此事件 + node.ondrop = (ev) => this.onDrop(ev); //在一个拖动过程中,释放鼠标键时触发此事件 } node.selected = a.selected || false; //是否选中行 - node.checked = a.checked || false;// 是否勾选 + node.checked = a.checked || false; // 是否勾选 node.data = a; node.addEventListener('change', (e: any) => { if (e.detail && !this.multiple) { - this.nodeList.forEach(item => { + this.nodeList.forEach((item) => { item.checked = item.data!.key === node.data!.key; item.data!.checked = item.checked; }); } - var litTreeNodes = this.nodeList.filter(it => it.checked); + var litTreeNodes = this.nodeList.filter((it) => it.checked); if (litTreeNodes.length === 0) { node.checked = true; node.data!.checked = true; } - that.dispatchEvent(new CustomEvent('onChange', {detail: {data: (node as any).data, checked: e.detail}})); + that.dispatchEvent(new CustomEvent('onChange', { detail: { data: (node as any).data, checked: e.detail } })); }); node.multiple = this.hasAttribute('multiple'); node.checkable = this.getAttribute('checkable') || 'false'; @@ -226,7 +231,7 @@ export class LitTree extends BaseElement { if (a.icon) { (node as any).iconName = a.icon; } else { - (node as any).iconName = 'folder' + (node as any).iconName = 'folder'; } } else { node.iconName = ''; @@ -247,24 +252,24 @@ export class LitTree extends BaseElement { node.arrow = false; } li.onclick = (e) => { - e.stopPropagation() + e.stopPropagation(); if (this.hasAttribute('foldable')) { // @ts-ignore if (li.data.children && li.data.children.length > 0) { node.autoExpand(); } else { // @ts-ignore - this.dispatchEvent(new CustomEvent('onSelect', {detail: li.data})) + this.dispatchEvent(new CustomEvent('onSelect', { detail: li.data })); this.selectedNode(node); } } else { // @ts-ignore - this.dispatchEvent(new CustomEvent('onSelect', {detail: li.data})) + this.dispatchEvent(new CustomEvent('onSelect', { detail: li.data })); this.selectedNode(node); } }; // node 添加右键菜单功能 - node.oncontextmenu = ev => { + node.oncontextmenu = (ev) => { ev.preventDefault(); this.selectedNode(node); this.currentSelectedNode = node; @@ -274,7 +279,7 @@ export class LitTree extends BaseElement { this.contextMenu!.style.top = ev.pageY + 'px'; }; }); - this.oncontextmenu = ev => { + this.oncontextmenu = (ev) => { ev.preventDefault(); this.contextMenu!.style.display = 'block'; this.contextMenu!.style.left = ev.pageX + 'px'; @@ -286,7 +291,7 @@ export class LitTree extends BaseElement { selectedNode(node: LitTreeNode | null | undefined) { this.shadowRoot!.querySelectorAll('lit-tree-node').forEach((a) => { a.selected = false; - }) + }); if (node) { node.selected = true; } @@ -296,9 +301,7 @@ export class LitTree extends BaseElement { this.contextMenu!.style.display = 'none'; } - onDrag(e: MouseEvent) { - - } + onDrag(e: MouseEvent) {} onDragStart(ev: MouseEvent) { this.srcDragElement = ev.target; @@ -321,13 +324,16 @@ export class LitTree extends BaseElement { let node = ev.target as LitTreeNode; if (this.srcDragElement.data.key === node.data!.key) return; let rect = (ev.currentTarget! as any).getBoundingClientRect(); - if (ev.clientX >= rect.left + rect.width / 3 && ev.clientX < rect.left + rect.width) { //bottom-right + if (ev.clientX >= rect.left + rect.width / 3 && ev.clientX < rect.left + rect.width) { + //bottom-right this.dragDirection = 'bottom-right'; node.drawLine('bottom-right'); - } else if (ev.clientY >= rect.top && ev.clientY < rect.top + rect.height / 2) {//上面 + } else if (ev.clientY >= rect.top && ev.clientY < rect.top + rect.height / 2) { + //上面 this.dragDirection = 'top'; node.drawLine('top'); - } else if (ev.clientY <= rect.bottom && ev.clientY > rect.top + rect.height / 2) {//下面 + } else if (ev.clientY <= rect.bottom && ev.clientY > rect.top + rect.height / 2) { + //下面 this.dragDirection = 'bottom'; node.drawLine('bottom'); } @@ -344,13 +350,13 @@ export class LitTree extends BaseElement { (ev.target as LitTreeNode).style.backgroundColor = '#ffffff00'; (ev.target as LitTreeNode).drawLine(''); //移动的不是node节点 而是上层的li节点 - let srcData = this.srcDragElement.data;//获取原节点的data数据 - let dstData = (ev.target as LitTreeNode).data;//获取目标节点的data数据 - if (srcData.key === dstData!.key) return;//同一个节点不用处理 + let srcData = this.srcDragElement.data; //获取原节点的data数据 + let dstData = (ev.target as LitTreeNode).data; //获取目标节点的data数据 + if (srcData.key === dstData!.key) return; //同一个节点不用处理 let srcElement = this.srcDragElement.parentElement; let srcParentElement = srcElement.parentElement; let dstElement = (ev.target as LitTreeNode).parentElement; - srcElement.parentElement.removeChild(srcElement);//node li ul 从 ul 中移除 li + srcElement.parentElement.removeChild(srcElement); //node li ul 从 ul 中移除 li if (this.dragDirection === 'top') { dstElement!.parentElement!.insertBefore(srcElement, dstElement); } else if (this.dragDirection === 'bottom') { @@ -362,32 +368,34 @@ export class LitTree extends BaseElement { ul.style.cssText = 'transition: all 0.3s ease 0s;'; dstElement!.appendChild(ul); } - dstElement!.querySelector('lit-tree-node')!.arrow = true;//拖动进入子节点,需要开启箭头 + dstElement!.querySelector('lit-tree-node')!.arrow = true; //拖动进入子节点,需要开启箭头 ul.appendChild(srcElement); } - let ul1 = dstElement!.querySelector('ul');//如果拖动后目标节点的子节点没有记录,需要关闭arrow箭头 + let ul1 = dstElement!.querySelector('ul'); //如果拖动后目标节点的子节点没有记录,需要关闭arrow箭头 if (ul1) { if (ul1.childElementCount == 0) (ul1.previousElementSibling! as LitTreeNode).arrow = false; } - if (srcParentElement.childElementCount === 0) srcParentElement.previousElementSibling.arrow = false;//如果拖动的原节点的父节点没有子节点需要 关闭arrow箭头 + if (srcParentElement.childElementCount === 0) srcParentElement.previousElementSibling.arrow = false; //如果拖动的原节点的父节点没有子节点需要 关闭arrow箭头 //拖动调整结构后修改 data树形数据结构 this.removeDataNode(this._treeData, srcData); this.addDataNode(this._treeData, srcData, dstData!.key, this.dragDirection!); - this.dispatchEvent(new CustomEvent('drop', { - detail: { - treeData: this._treeData, - srcData: srcData, - dstData: dstData, - type: this.dragDirection - } - })) + this.dispatchEvent( + new CustomEvent('drop', { + detail: { + treeData: this._treeData, + srcData: srcData, + dstData: dstData, + type: this.dragDirection, + }, + }) + ); ev.stopPropagation(); return undefined; } //移除treeData中指定的节点 通过key匹配 removeDataNode(arr: Array, d: TreeItemData) { - let delIndex = arr.findIndex(v => v.key === d.key); + let delIndex = arr.findIndex((v) => v.key === d.key); if (delIndex > -1) { arr.splice(delIndex, 1); return; @@ -436,38 +444,38 @@ export class LitTree extends BaseElement { insertNode.draggable = true; document.ondragover = function (e) { e.preventDefault(); - } + }; //在拖动目标上触发事件 (源元素) - insertNode.ondrag = ev => this.onDrag(ev);//元素正在拖动时触发 - insertNode.ondragstart = ev => this.onDragStart(ev);//用户开始拖动元素时触发 - insertNode.ondragend = ev => this.onDragEnd(ev);// 用户完成元素拖动后触发 + insertNode.ondrag = (ev) => this.onDrag(ev); //元素正在拖动时触发 + insertNode.ondragstart = (ev) => this.onDragStart(ev); //用户开始拖动元素时触发 + insertNode.ondragend = (ev) => this.onDragEnd(ev); // 用户完成元素拖动后触发 //释放目标时触发的事件: - insertNode.ondragenter = ev => this.onDragEnter(ev);//当被鼠标拖动的对象进入其容器范围内时触发此事件 - insertNode.ondragover = ev => this.onDragOver(ev);//当某被拖动的对象在另一对象容器范围内拖动时触发此事件 - insertNode.ondragleave = ev => this.onDragLeave(ev);//当被鼠标拖动的对象离开其容器范围内时触发此事件 - insertNode.ondrop = ev => this.onDrop(ev);//在一个拖动过程中,释放鼠标键时触发此事件 + insertNode.ondragenter = (ev) => this.onDragEnter(ev); //当被鼠标拖动的对象进入其容器范围内时触发此事件 + insertNode.ondragover = (ev) => this.onDragOver(ev); //当某被拖动的对象在另一对象容器范围内拖动时触发此事件 + insertNode.ondragleave = (ev) => this.onDragLeave(ev); //当被鼠标拖动的对象离开其容器范围内时触发此事件 + insertNode.ondrop = (ev) => this.onDrop(ev); //在一个拖动过程中,释放鼠标键时触发此事件 } insertNode.selected = a.selected || false; //是否选中行 - insertNode.checked = a.checked || false;// 是否勾选 + insertNode.checked = a.checked || false; // 是否勾选 insertNode.data = a; insertNode.addEventListener('change', (e: any) => { if (e.detail && !this.multiple) { - this.nodeList.forEach(node => { + this.nodeList.forEach((node) => { node.checked = node.data!.key === insertNode.data!.key; }); } - this.dispatchEvent(new CustomEvent('onChange', {detail: {data: insertNode.data, checked: e.detail}})); - }) + this.dispatchEvent(new CustomEvent('onChange', { detail: { data: insertNode.data, checked: e.detail } })); + }); this.nodeList.push(insertNode); insertNode.checkable = this.getAttribute('checkable') || 'false'; insertNode.multiple = this.hasAttribute('multiple'); // @ts-ignore li.data = a; li.append(insertNode); - parent.append(li) + parent.append(li); let ul = document.createElement('ul'); // @ts-ignore - ul.open = 'true' + ul.open = 'true'; ul.style.transition = '.3s all'; if (a.children && a.children.length > 0) { if (this.hasAttribute('show-icon')) { @@ -495,22 +503,22 @@ export class LitTree extends BaseElement { insertNode.arrow = false; } li.onclick = (e) => { - e.stopPropagation() + e.stopPropagation(); if (this.hasAttribute('foldable')) { // @ts-ignore if (li.data.children && li.data.children.length > 0) { insertNode.autoExpand(); } else { // @ts-ignore - this.dispatchEvent(new CustomEvent('onSelect', {detail: li.data})); + this.dispatchEvent(new CustomEvent('onSelect', { detail: li.data })); this.selectedNode(insertNode); } } else { // @ts-ignore - this.dispatchEvent(new CustomEvent('onSelect', {detail: li.data})); + this.dispatchEvent(new CustomEvent('onSelect', { detail: li.data })); this.selectedNode(insertNode); } - } + }; // node 添加右键菜单功能 insertNode.oncontextmenu = (ev) => { ev.preventDefault(); @@ -578,4 +586,4 @@ export class LitTree extends BaseElement { if (!customElements.get('lit-tree')) { customElements.define('lit-tree', LitTree); -} \ No newline at end of file +} diff --git a/ide/src/base-ui/tree/LitTreeNode.ts b/ide/src/base-ui/tree/LitTreeNode.ts index 45ee60ff..e9e32c34 100644 --- a/ide/src/base-ui/tree/LitTreeNode.ts +++ b/ide/src/base-ui/tree/LitTreeNode.ts @@ -13,8 +13,8 @@ * limitations under the License. */ -import '../icon/LitIcon.js' -import '../checkbox/LitCheckBox.js' +import '../icon/LitIcon.js'; +import '../checkbox/LitCheckBox.js'; import { BaseElement, element } from '../BaseElement.js'; import { LitCheckBox } from '../checkbox/LitCheckBox.js'; import { LitIcon } from '../icon/LitIcon.js'; @@ -22,7 +22,6 @@ import { TreeItemData } from './LitTree.js'; @element('lit-tree-node') export class LitTreeNode extends BaseElement { - private arrowElement: HTMLSpanElement | null | undefined; private itemElement: HTMLDivElement | null | undefined; private checkboxElement: LitCheckBox | null | undefined; @@ -30,7 +29,20 @@ export class LitTreeNode extends BaseElement { private _data: TreeItemData | null | undefined; static get observedAttributes() { - return ['icon-name', 'icon-size', 'color', 'path', 'title', 'arrow', 'checkable', 'selected', 'checked', 'missing', 'multiple', 'top-depth']; + return [ + 'icon-name', + 'icon-size', + 'color', + 'path', + 'title', + 'arrow', + 'checkable', + 'selected', + 'checked', + 'missing', + 'multiple', + 'top-depth', + ]; } get checkable() { @@ -65,7 +77,6 @@ export class LitTreeNode extends BaseElement { return this.hasAttribute('multiple'); } - get iconName() { return this.getAttribute('icon-name') || ''; } @@ -138,12 +149,12 @@ export class LitTreeNode extends BaseElement { this.arrowElement!.onclick = (e) => { e.stopPropagation(); this.autoExpand(); - } + }; this.checkboxElement!.onchange = (e: any) => { e.stopPropagation(); this.onChange(e.detail.checked); return false; - } + }; //这里需要给checkbox 添加onclick时间 并停止冒泡,不然onchange事件会触发父节点中的 onclick事件 this.checkboxElement!.onclick = (e) => { e.stopPropagation(); @@ -158,7 +169,7 @@ export class LitTreeNode extends BaseElement { this.checked = checked; this.data!.checked = checked; this.checkHandler(); - this.dispatchEvent(new CustomEvent('change', {detail: checked})); + this.dispatchEvent(new CustomEvent('change', { detail: checked })); } initHtml(): string { @@ -320,7 +331,7 @@ export class LitTreeNode extends BaseElement { ${this.title}
- ` + `; } //当 custom element首次被插入文档DOM时,被调用。 @@ -341,26 +352,33 @@ export class LitTreeNode extends BaseElement { a.removeAttribute('missing'); }); } else { - this.nextElementSibling.querySelectorAll('lit-tree-node').forEach((a: any) => a.checked = false); + this.nextElementSibling.querySelectorAll('lit-tree-node').forEach((a: any) => (a.checked = false)); } } let setCheckStatus = (element: any) => { - if (element.parentElement.parentElement.previousElementSibling && element.parentElement.parentElement.previousElementSibling.tagName === 'LIT-TREE-NODE') { - let allChecked = Array.from(element.parentElement.parentElement.querySelectorAll('lit-tree-node')).every((item: any) => item.checked); - let someChecked = Array.from(element.parentElement.parentElement.querySelectorAll('lit-tree-node')).some((item: any, index, array) => item.checked); + if ( + element.parentElement.parentElement.previousElementSibling && + element.parentElement.parentElement.previousElementSibling.tagName === 'LIT-TREE-NODE' + ) { + let allChecked = Array.from(element.parentElement.parentElement.querySelectorAll('lit-tree-node')).every( + (item: any) => item.checked + ); + let someChecked = Array.from(element.parentElement.parentElement.querySelectorAll('lit-tree-node')).some( + (item: any, index, array) => item.checked + ); if (allChecked === true) { element.parentElement.parentElement.previousElementSibling.checked = true; element.parentElement.parentElement.previousElementSibling.removeAttribute('missing'); } else if (someChecked) { - element.parentElement.parentElement.previousElementSibling.setAttribute('missing', '') - element.parentElement.parentElement.previousElementSibling.removeAttribute('checked') + element.parentElement.parentElement.previousElementSibling.setAttribute('missing', ''); + element.parentElement.parentElement.previousElementSibling.removeAttribute('checked'); } else { - element.parentElement.parentElement.previousElementSibling.removeAttribute('missing') - element.parentElement.parentElement.previousElementSibling.removeAttribute('checked') + element.parentElement.parentElement.previousElementSibling.removeAttribute('missing'); + element.parentElement.parentElement.previousElementSibling.removeAttribute('checked'); } - setCheckStatus(element.parentElement.parentElement.previousElementSibling) + setCheckStatus(element.parentElement.parentElement.previousElementSibling); } - } + }; setCheckStatus(this); } } @@ -419,14 +437,10 @@ export class LitTreeNode extends BaseElement { } //当 custom element从文档DOM中删除时,被调用。 - disconnectedCallback() { - - } + disconnectedCallback() {} //当 custom element被移动到新的文档时,被调用。 - adoptedCallback() { - - } + adoptedCallback() {} //当 custom element增加、删除、修改自身属性时,被调用。 attributeChangedCallback(name: string, oldValue: any, newValue: any) { @@ -457,7 +471,7 @@ export class LitTreeNode extends BaseElement { } //在node top top-right bottom bottom-right 画线条 - drawLine(direction: string/*string[top|bottom|top-right|bottom-right]*/) { + drawLine(direction: string /*string[top|bottom|top-right|bottom-right]*/) { let item = this.shadowRoot!.querySelector('#item'); if (!item) return; item.removeAttribute('line-top'); @@ -466,16 +480,16 @@ export class LitTreeNode extends BaseElement { item.removeAttribute('line-bottom-right'); switch (direction) { case 'top': - item.setAttribute('line-top', '') + item.setAttribute('line-top', ''); break; case 'bottom': - item.setAttribute('line-bottom', '') + item.setAttribute('line-bottom', ''); break; case 'top-right': - item.setAttribute('line-top-right', '') + item.setAttribute('line-top-right', ''); break; case 'bottom-right': - item.setAttribute('line-bottom-right', '') + item.setAttribute('line-bottom-right', ''); break; } } @@ -483,4 +497,4 @@ export class LitTreeNode extends BaseElement { if (!customElements.get('lit-tree-node')) { customElements.define('lit-tree-node', LitTreeNode); -} \ No newline at end of file +} diff --git a/ide/src/base-ui/utils/CSVFormater.ts b/ide/src/base-ui/utils/CSVFormater.ts index 9feb1fcc..8686b11c 100644 --- a/ide/src/base-ui/utils/CSVFormater.ts +++ b/ide/src/base-ui/utils/CSVFormater.ts @@ -27,7 +27,9 @@ export class JSONToCSV { formatter: undefined, }; let showLabel = typeof isShowLabel === 'undefined' ? true : isShowLabel; - let row = '', csv = '', key; + let row = '', + csv = '', + key; // 如果要现实表头文字 if (showLabel) { // 如果有传入自定义的表头文字 @@ -91,9 +93,12 @@ export class JSONToCSV { linkDom.click(); document.body.removeChild(linkDom); } else if (browserType['ie'] >= 10 || browserType['edge'] == 'edge') { - (navigator as any).msSaveBlob(new Blob(['\uFEFF' + csvData], { - type: 'text/csv', - }), fileName); + (navigator as any).msSaveBlob( + new Blob(['\uFEFF' + csvData], { + type: 'text/csv', + }), + fileName + ); } else { let oWin: any = window.top?.open('about:blank', '_blank'); oWin.document.write('sep=,\r\n' + csvData); @@ -105,9 +110,11 @@ export class JSONToCSV { static getDownloadUrl(csvData: any) { if (window.Blob && window.URL && (window.URL as any).createObjectURL) { - return URL.createObjectURL(new Blob(['\uFEFF' + csvData], { - type: 'text/csv', - })); + return URL.createObjectURL( + new Blob(['\uFEFF' + csvData], { + type: 'text/csv', + }) + ); } } @@ -118,16 +125,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; } @@ -144,7 +151,7 @@ export class JSONToCSV { data.forEach((item: any) => { let depthCSV = 0; const loop = (data: any, depth: any) => { - result.push({depthCSV: depth, ...data}); + result.push({ depthCSV: depth, ...data }); let child = data.children; if (child) { for (let i = 0; i < child.length; i++) { @@ -181,8 +188,8 @@ export class JSONToCSV { return new Promise((resolve) => { let data: any = this.columnsData(dataSource.columns); let columns = { - title: data.titleList, - key: data.ketList, + title: data.titleList, + key: data.ketList, }; if (dataSource.tables.length > 0) { if (Array.isArray(dataSource.tables[0])) { @@ -191,9 +198,9 @@ export class JSONToCSV { JSONToCSV.setCsvData({ data: resultArr, fileName: `${dataSource.fileName}_${childIndex}`, - columns: columns + columns: columns, }); - }) + }); } else { let resultArr = JSONToCSV.treeToArr(dataSource.tables); JSONToCSV.setCsvData({ diff --git a/ide/src/command/CmdConstant.ts b/ide/src/command/CmdConstant.ts index bee04902..9cd1d05e 100644 --- a/ide/src/command/CmdConstant.ts +++ b/ide/src/command/CmdConstant.ts @@ -19,20 +19,18 @@ export class CmdConstant { static CMD_MOUNT = 'hdc_std shell mount -o remount,rw /'; static CMD_GET_PROCESS = 'hdc_std shell ps -A -opid,cmd'; static CMD_GET_APP_NMAE = 'hdc_std shell ps -A -ocmd'; - static CMD_GET_CPU_COUNT = 'hdc_std shell grep -c \'processor\' /proc/cpuinfo'; + static CMD_GET_CPU_COUNT = "hdc_std shell grep -c 'processor' /proc/cpuinfo"; static CMD_GET_HIPERF_EVENTS = 'hdc_std shell hiperf list'; static CMD_GET_VERSION = 'hdc_std shell param get const.product.software.version'; - static CMD_GET_DEBUG_PROCESS = - `hdc shell netstat -anp |grep Panda |grep -v grep | sed \'s/.* \\([0-9]*\\)\\/.*/\\1/\' |xargs -r ps -A -opid,cmd`; + static CMD_GET_DEBUG_PROCESS = `hdc shell netstat -anp |grep Panda |grep -v grep | sed \'s/.* \\([0-9]*\\)\\/.*/\\1/\' |xargs -r ps -A -opid,cmd`; static CMD_HDC_DEVICES = 'hdc_std list targets'; static CMD_MOUNT_DEVICES = 'hdc_std -t {0} shell mount -o remount,rw /'; static CMD_GET_PROCESS_DEVICES = 'hdc_std -t {0} shell ps -A -opid,cmd'; static CMD_GET_APP_NMAE_DEVICES = 'hdc_std -t {0} shell ps -A -ocmd'; - static CMD_GET_CPU_COUNT_DEVICES = 'hdc_std -t {0} shell grep -c \'processor\' /proc/cpuinfo'; + static CMD_GET_CPU_COUNT_DEVICES = "hdc_std -t {0} shell grep -c 'processor' /proc/cpuinfo"; static CMD_GET_HIPERF_EVENTS_DEVICES = 'hdc_std -t {0} shell hiperf list'; static CMD_FIEL_RECV_DEVICES = 'hdc_std -t {0} file recv {1} ./'; - static CMS_HDC_STOP = - 'hdc_std -t {0} shell killall -2 hiprofiler_cmd'; + static CMS_HDC_STOP = 'hdc_std -t {0} shell killall -2 hiprofiler_cmd'; static CMS_STOP = 'hdc_std shell killall -2 hiprofiler_cmd'; static CMS_HDC_CANCEL = 'hdc_std -t {0} shell killall hiprofilerd hiprofiler_plugins native_daemon hiperf hiebpf hiprofiler_cmd'; diff --git a/ide/src/doc/md/des_tables.md b/ide/src/doc/md/des_tables.md index 4b17ec0c..b6569f69 100644 --- a/ide/src/doc/md/des_tables.md +++ b/ide/src/doc/md/des_tables.md @@ -1,585 +1,717 @@ -# 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) -## TraceStreamer输出数据库包含以下表格 -| 表名称 |作用| -| ---- |---- | -| app_name | 记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系 | -| args | 记录方法参数集合| -| bio_latency_sample | 记录IO操作相关方法调用,及调用栈数据| -| callstack | 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号| -| clk_event_filter | 记录时钟相关的信息| -| clock_event_filter | 此结构用来维护时钟事件,cpu与唯一的ID做关联| -| cpu_measure_filter | cpu事件过滤器表| -| cpu_usage | 记录CPU使用率事件| -| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据| -| data_type | 记录数据类型和typeId的关联关系| -| diskio | 记录磁盘读写数据事件| -| ebpf_callstack | 记录了采样相关信息| -| file_system_samp | 记录了调用栈的相关信息| -| hidump | 记录FPS(Frame Per Second)数据| -| hisys_event_measure | 记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件 | -| instant | 记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用 | -| irq | 记录中断相关事件| -| 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_filter | 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录| -| 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),数据的损失等,查看此结构对应的表,可对数据源有基本的了解| -| symbols | 记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间| -| syscall | 记录用户空间函数与内核空间函数相互调用记录| -| sys_event_filter | 记录所有的filter| -| sys_mem_measure | 记录了所有的系统内存相关的测量信息| -| thread | 记录所有的线程信息| -| thread_filter | 过滤线程| -| thread_state | 记录线程状态信息| -| trace_range | 记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用| -| clock_snapshot | 时钟号和时间,时钟名的映射表| -| datasource_clockid | 数据源和时钟号的映射表| +# 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) + +## TraceStreamer 输出数据库包含以下表格 + +| 表名称 | 作用 | +| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | +| app_name | 记录 HiSysEvent 事件的事件名与 IDE 部分事件的字段名为 APPNAME 中存放的相关信息的映射关系 | +| args | 记录方法参数集合 | +| bio_latency_sample | 记录 IO 操作相关方法调用,及调用栈数据 | +| callstack | 记录调用堆栈和异步调用信息,其中 depth,stack_id 和 parent_stack_id 仅在非异步调用中有效。当 cookid 不为空时,为异步调用,此时 callid 为进程唯一号,否则为线程唯一号 | +| clk_event_filter | 记录时钟相关的信息 | +| clock_event_filter | 此结构用来维护时钟事件,cpu 与唯一的 ID 做关联 | +| cpu_measure_filter | cpu 事件过滤器表 | +| cpu_usage | 记录 CPU 使用率事件 | +| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据 | +| data_type | 记录数据类型和 typeId 的关联关系 | +| diskio | 记录磁盘读写数据事件 | +| ebpf_callstack | 记录了采样相关信息 | +| file_system_samp | 记录了调用栈的相关信息 | +| hidump | 记录 FPS(Frame Per Second)数据 | +| hisys_event_measure | 记录了 HiSysEvent 事件相关数据,目前 HiSysEvent 事件包括了异常事件,IDE 事件,器件状态事件 | +| instant | 记录 Sched_waking, sched_wakeup 事件, 用作 ThreadState 表的上下文使用 | +| irq | 记录中断相关事件 | +| 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_filter | 记录一个递增的 filterid 队列,所有其他的 filter 类型在获取过程中,均从此数据列表中获取下一个可用的 filter_id 并做记录 | +| 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),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 | +| symbols | 记录系统调用名称和其函数指针的对应关系,trace 中用 addr 来映射 function_name 来节省存储空间 | +| syscall | 记录用户空间函数与内核空间函数相互调用记录 | +| sys_event_filter | 记录所有的 filter | +| sys_mem_measure | 记录了所有的系统内存相关的测量信息 | +| thread | 记录所有的线程信息 | +| thread_filter | 过滤线程 | +| thread_state | 记录线程状态信息 | +| trace_range | 记录 ftrace 数据与其他类型数据的时间交集,供前端展示数据时使用 | +| clock_snapshot | 时钟号和时间,时钟名的映射表 | +| datasource_clockid | 数据源和时钟号的映射表 | + ## 表与事件来源 -| 表名称 | 事件源 | 插件名 | 备注 | -| ---- | ---- | ---- | ---- | -|app_name | - |hisysevent-plugin |JSON数据源 | -|args | - |ftrace-plugin |配合callstack使用 | -|callstack | - |ftrace-plugin |异步或非异步的调用 | -|cpu_measure_filter | - |ftrace-plugin |cpu跟踪器,cpu频率等 | -|cpu_usage | - |cpu-plugin |cpu使用率 | -|data_dict | 通用的 | - |所有字符串的记录 | -|data_type | 通用的 | - |辅助表 | -|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_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内存数据 | -|live_process | - |process-plugin |Monitor数据 | -|network | - |network-plugin |Monitor数据 | -|diskio | - |diskio-plugin |Monitor数据 | -|log | - |hilog-plugin |系统日志 | -|measure | 通用的 | - |系统中的计量值(数值型)| -|measure_filter | 通用的 | - |计量值的查询辅助表 | -|meta | 通用的 | - |记录解析现场数据(解析时间,数据类型,解析工具等)| -|native_hook | - |nativehook/hookdaemon |malloc && mmap内存数据 | -|native_hook_frame | - |nativehook/hookdaemon |native_hook调用栈数据 | -|native_hook_statistic | - |nativehook/hookdaemon |malloc && mmap统计数据 | -|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_range | 通用的 | - |trace数据的时长 | -|thread_filter | 通用的 |ftrace-plugin |线程计量跟踪表(比较少用)| -|clock_snapshot | 通用的 |通用的 |时钟号和时间,时钟名的映射表| -|datasource_clockid | 通用的 |通用的 |数据源和时钟号的映射表| - -## ___表格关系图___ + +| 表名称 | 事件源 | 插件名 | 备注 | +| --------------------------- | ------ | --------------------- | -------------------------------------------------- | +| app_name | - | hisysevent-plugin | JSON 数据源 | +| args | - | ftrace-plugin | 配合 callstack 使用 | +| callstack | - | ftrace-plugin | 异步或非异步的调用 | +| cpu_measure_filter | - | ftrace-plugin | cpu 跟踪器,cpu 频率等 | +| cpu_usage | - | cpu-plugin | cpu 使用率 | +| data_dict | 通用的 | - | 所有字符串的记录 | +| data_type | 通用的 | - | 辅助表 | +| 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_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 内存数据 | +| live_process | - | process-plugin | Monitor 数据 | +| network | - | network-plugin | Monitor 数据 | +| diskio | - | diskio-plugin | Monitor 数据 | +| log | - | hilog-plugin | 系统日志 | +| measure | 通用的 | - | 系统中的计量值(数值型) | +| measure_filter | 通用的 | - | 计量值的查询辅助表 | +| meta | 通用的 | - | 记录解析现场数据(解析时间,数据类型,解析工具等) | +| native_hook | - | nativehook/hookdaemon | malloc && mmap 内存数据 | +| native_hook_frame | - | nativehook/hookdaemon | native_hook 调用栈数据 | +| native_hook_statistic | - | nativehook/hookdaemon | malloc && mmap 统计数据 | +| 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_range | 通用的 | - | trace 数据的时长 | +| thread_filter | 通用的 | ftrace-plugin | 线程计量跟踪表(比较少用) | +| clock_snapshot | 通用的 | 通用的 | 时钟号和时间,时钟名的映射表 | +| datasource_clockid | 通用的 | 通用的 | 数据源和时钟号的映射表 | + +## **_表格关系图_** + --- + ### 进程表与线程表关系 + 当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。 -Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。 -thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。 -![GitHub Logo](../../figures/traceStreamer/process_thread.png) +Process 和 Thread 表中的 id 字段可以唯一标识进程和线程。process 表中的 id 在其他表中用作 ipid 字段。thread 表中的 id 在其他表中用作 itid 字段。 +thread 表通过 ipid 字段关联 process 表的 id 字段,可以查询线程归属进程。 +![GitHub Logo](../../figures/traceStreamer/process_thread.png) + ### 查询举例 -- 已知pid = 123,查看当前进程下的所有线程信息,可以使用如下SQL语句: -```select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id``` + +- 已知 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](../../figures/traceStreamer/thread_state.png) + +thread_state 表记录所有线程的运行状态信息,包含 ts(状态起始时间),dur(状态持续时间),cpu, itid, state(线程状态)。 thread 表的 id 字段与 thread_state 表的 itid 字段相关联。 +![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``` + +- 已知 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 表记录堆内存申请(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) +native_hook_frame 表记录内存申请/释放的调用堆栈。通过 callChainId 区分一组调用堆栈,depth 为堆栈深度,depth 为 0 时,表示当前行为栈顶数据。 +![GitHub Logo](../../figures/traceStreamer/dump_and_mem.png) -native_hook_statistic表记录内存申请/释放的统计信息。通过callChainId区分一组调用堆栈。每个统计事件将记录当前事件的callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。 -![GitHub Logo](../../figures/traceStreamer/db_native_hook_statistic.png) +native_hook_statistic 表记录内存申请/释放的统计信息。通过 callChainId 区分一组调用堆栈。每个统计事件将记录当前事件的 callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。 +![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``` -- 已知callchainid = 1, 查看当前内存变化调用堆栈 -```select * from native_hook_frame where callchain_id = 1``` -- 已知callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息 -```select * from native_hook_statistic where callchain_id = 1``` + +- 已知 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字段的连续性,来判断是否存在日志丢失的情况。 + +log 表记录日志信息。可以根据 seq 字段的连续性,来判断是否存在日志丢失的情况。 ![GitHub Logo](../../figures/traceStreamer/log.png) + ### 查询举例 -- 已知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字段相关联。 +- 已知 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](../../figures/traceStreamer/perf.png) -![GitHub Logo](../../figures/traceStreamer/perf.png) ### 查询举例 -- 已知同步后的时间戳为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``` +- 已知同步后的时间戳为 28463134340470,查询采样数据 + `select * from perf_sample where timestamp_trace = 28463134340470` -- 已知同步后的时间戳为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``` +- 已知同步后的时间戳为 28463134340470,查询采样数据对应的的调用栈信息 + `select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and A.sample_id = B.sample_id` -- 已知线程号为6700,查询所有的采样记录 -```select * from perf_sample where thread_id = 6700``` +- 已知同步后的时间戳为 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` -- 已知进程号为7863,查询所有的采样记录 -```select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = B.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.*, 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) + +frame_slice: 记录 RS(RenderService)和应用的帧渲染。 +gpu_slice: 记录 RS 的帧对应的 gpu 渲染时长。 +frame_maps:记录应用到 RS 的帧的映射关系。 +![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 ``` +- 已知进程的实际渲染帧的 dst 为 12,求其对应的 RS 进程的渲染帧 + `select * from frame_slice where id = 12 ` -- 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长 -```select * from gpu_slice where frame_row = 14``` +- 已知 RS 的渲染帧在 frame_slice 中所在行是 14,求其对应的 GPU 渲染时长 + `select * from gpu_slice where frame_row = 14` -### JS内存数据表关系图 +### JS 内存数据表关系图 -js_heap_files:记录js内存数据的文件名和文件索引 +js_heap_files:记录 js 内存数据的文件名和文件索引 ![GitHub Logo](../../figures/traceStreamer/js_heap_files.png) -js_heap_nodes:记录js内存类对象数据 -js_heap_edges:记录js内存类对象的成员数据 -js_heap_trace_node:记录timeline的调用栈信息 -js_heap_sample:记录timeline的时间轴信息 +js_heap_nodes:记录 js 内存类对象数据 +js_heap_edges:记录 js 内存类对象的成员数据 +js_heap_trace_node:记录 timeline 的调用栈信息 +js_heap_sample:记录 timeline 的时间轴信息 ![GitHub Logo](../../figures/traceStreamer/js_heap_nodes.png) -## TraceStreamer输出数据库表格详细介绍 -### app_name表 + +## 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的表关联信息。 + +记录 HiSysevent 上报事件中的 IDE 相关事件中 APPNAME 的表关联信息。 + #### 字段详细描述 -- id:用于与表hisys_event_measure表中的key_id字段做对应 -- app_name:对应的事件的信息ID -- app_key:对应的事件的APPNAME字段的信息ID -### args表 +- 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表 +### 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操作相关方法调用,及调用栈数据。 + +记录 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表 + +- 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为进程唯一号,否则为线程唯一号。 + +记录调用堆栈和异步调用信息,其中 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表 +### 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表 +### 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做关联。 + +此结构用来维护时钟事件,cpu 与唯一的 ID 做关联。 + #### 主要字段描述 -- Type:时钟事件类型 + +- Type:时钟事件类型 - Name:时钟事件名称 -### cpu_measure_filter表 +### 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。 + +将 cpu 号作为 key1,cpu 的频率,空闲等状态作为 key2,唯一确定一个 filter_id。 + #### 主要字段描述 -- Id(filterid), cpu:事件名称,cpu号 -### cpu_usage表 +- 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使用率相关的数据。 + +记录了与 CPU 使用率相关的数据。 + #### 主要字段描述 -- total_load:总负荷 -- user_load:用户负载 -- system_load:系统负载 + +- total_load:总负荷 +- user_load:用户负载 +- system_load:系统负载 - process_num:线程数 -### data_dict表 +### data_dict 表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|data |TEXT | +| ------------ | -------- | +| id | INT | +| data | TEXT | + #### 表描述 -此表记录了一个数据类型ID和字符串的映射。 + +此表记录了一个数据类型 ID 和字符串的映射。 + #### 主要字段描述 -- id:索引值 + +- id:索引值 - data:字符串 -### data_type表 +### data_type 表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|typeId |INT | -|desc |TEXT | +| ------------ | -------- | +| id | INT | +| typeId | INT | +| desc | TEXT | + #### 表描述 -此表记录了一个数据类型ID和数据描述的映射。 + +此表记录了一个数据类型 ID 和数据描述的映射。 + #### 主要字段描述 -- typeId::数据类型id + +- typeId::数据类型 id - Desc:数据类型描述 -### diskio表 +### 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表 +### 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:调用栈的唯一标识。与ebpf_callstack表中Callchain_id字段关联 -- depth:调用栈深度。取值为零时表示栈顶 -- ip:调用栈ip -- symbols_id:调用栈函数名称, 与data_dict中的id字段关联 -- file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联 -### file_system_sample表 +- callchain_id:调用栈的唯一标识。与 ebpf_callstack 表中 Callchain_id 字段关联 +- depth:调用栈深度。取值为零时表示栈顶 +- ip:调用栈 ip +- 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表 +### hidump 表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|ts |INT | -|fps |INT | +| ------------ | -------- | +| id | INT | +| ts | INT | +| fps | INT | + #### 表描述 + 此表记录了设备的帧率信息,fps。 + #### 相关字段描述 + - fps:帧率值 -### hisys_event_measure表 +### 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事件的相关数据,及其相关表的映射信息。 + +记录所有的 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表 + +- 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事件。 + +记录了系统中的 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 + +- dur:调用中断时长 +- callid:调用中断者的 ID,比如针对线程表里面的 id +- cat:调用栈数据类型(取值范围:irq,softirq...) +- name:调用中断的名称 +- depth:中断调用的深度 +- parent_id:父调用中断的 id - spanId:分布式调用中断关联关系 -### js_heap_edges表 +### js_heap_edges 表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------- | -------- | | file_id | INT | @@ -589,19 +721,25 @@ js_heap_sample:记录timeline的时间轴信息 | to_node | INT | | from_node_id | INT | | to_node_id | INT | + #### 表描述 -记录js内存数据类对象对应的成员的信息。 + +记录 js 内存数据类对象对应的成员的信息。 + #### 相关字段描述 -- file_id:文件ID + +- 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 +- 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 表 -### js_heap_files表 #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | id | INT | @@ -609,17 +747,23 @@ js_heap_sample:记录timeline的时间轴信息 | start_time | INT | | end_time | INT | | pid | INT | + #### 表描述 -记录了js内存数据的文件名称和时间。 + +记录了 js 内存数据的文件名称和时间。 + #### 相关字段描述 -- id:文件ID + +- id:文件 ID - file_name:文件名称 - start_time:数据抓取的起始时间 - end_time:数据抓取的终止时间 - pid:进程号 -### js_heap_info表 +### js_heap_info 表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | @@ -627,17 +771,23 @@ js_heap_sample:记录timeline的时间轴信息 | type | INT | | int_value | INT | | str_value | TEXT | + #### 表描述 -记录了js内存数据类型,如nodes和edges的字段类型和数据总数。 + +记录了 js 内存数据类型,如 nodes 和 edges 的字段类型和数据总数。 + #### 相关字段描述 -- file_id:文件ID + +- file_id:文件 ID - key:类型名称 - type:数据类型索引 -- int_value:int类型的数据值,如count类型数据 -- str_value:string类型的数据值,如typename +- int_value:int 类型的数据值,如 count 类型数据 +- str_value:string 类型的数据值,如 typename + +### js_heap_location 表 -### js_heap_location表 #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | @@ -645,17 +795,23 @@ js_heap_sample:记录timeline的时间轴信息 | script_id | INT | | line | INT | | column | INT | + #### 表描述 -记录了js内存location节点相关数据,此表目前无抓取到的数据。 + +记录了 js 内存 location 节点相关数据,此表目前无抓取到的数据。 + #### 相关字段描述 -- file_id:文件ID -- object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引 -- script_id:关联到的类对象所在文件的绝对路径ID + +- file_id:文件 ID +- object_index:与 location 关联的类对象的索引,取值为 js_heap_nodes 的下标索引 +- script_id:关联到的类对象所在文件的绝对路径 ID - line:在类对象所在的文件中的行号 - column:在类对象所在的文件中的列号 -### js_heap_nodes表 +### js_heap_nodes 表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------- | -------- | | file_id | INT | @@ -667,49 +823,67 @@ js_heap_sample:记录timeline的时间轴信息 | edge_count | INT | | trace_node_id | INT | | detachedness | INT | + #### 表描述 -记录了js内存数据中类对象的数据。 + +记录了 js 内存数据中类对象的数据。 + #### 相关字段描述 -- file_id:文件ID + +- file_id:文件 ID - node_index:类对象的索引 - type:类对象的类型 - name:类对象的名称 -- id:类对象的唯一ID +- id:类对象的唯一 ID - self_size:该类对象所有成员的大小(以字节为单位) - edge_count:该类对象指向的类成员的个数 -- trace_node_id:该类对象关联到js_heap_trace_node表中的调用栈ID -- detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否 +- trace_node_id:该类对象关联到 js_heap_trace_node 表中的调用栈 ID +- detachedness:是否可以从 window 全局对象访问此节点,0 表示是,1 表示否 + +### js_heap_sample 表 -### js_heap_sample表 #### 表结构 + | Columns Name | SQL TYPE | | ---------------- | -------- | | file_id | INT | | timestamp_us | INT | | last_assigned_id | INT | + #### 表描述 -记录了timeline模式下的时间轴信息。 + +记录了 timeline 模式下的时间轴信息。 + #### 相关字段描述 -- file_id:文件ID + +- file_id:文件 ID - timestamp_us:时间信息 -- last_assigned_id:当前时间点的id +- last_assigned_id:当前时间点的 id + +### js_heap_string 表 -### js_heap_string表 #### 表结构 + | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | | file_index | INT | | string | TEXT | + #### 表描述 -记录了js内存数据中的字符串。 + +记录了 js 内存数据中的字符串。 + #### 相关字段描述 -- file_id:文件ID + +- file_id:文件 ID - file_index:索引 - string:对应的字符串信息 -### js_heap_trace_function_info表 +### js_heap_trace_function_info 表 + #### 表结构 + | Columns Name | SQL TYPE | | -------------- | -------- | | file_id | INT | @@ -720,20 +894,26 @@ js_heap_sample:记录timeline的时间轴信息 | script_id | INT | | line | INT | | column | INT | + #### 表描述 -记录了timeline模式下的调用栈的每个函数信息。 + +记录了 timeline 模式下的调用栈的每个函数信息。 + #### 相关字段描述 -- file_id:文件ID + +- file_id:文件 ID - function_index:函数索引 -- function_id:函数ID +- function_id:函数 ID - name:函数名称 - script_name:关联到的类对象所在文件的绝对路径名称 -- script_id:关联到的类对象所在文件的绝对路径ID +- script_id:关联到的类对象所在文件的绝对路径 ID - line:在类对象所在的文件中的行号 - column:在类对象所在的文件中的列号 -### js_heap_trace_node表 +### js_heap_trace_node 表 + #### 表结构 + | Columns Name | SQL TYPE | | ------------------- | -------- | | file_id | INT | @@ -742,733 +922,957 @@ js_heap_sample:记录timeline的时间轴信息 | count | INT | | size | INT | | parent_id | INT | + #### 表描述 -记录了timeline模式下的调用栈的信息。 + +记录了 timeline 模式下的调用栈的信息。 + #### 相关字段描述 -- file_id:文件ID + +- file_id:文件 ID - id:调用栈节点索引 - function_info_index:函数信息索引 - count:调用栈个数 - size:调用栈大小 - parent_id:调用栈父节点 -### live_process表 +### 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表 +### 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表 +### 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:数值 -- filter_id:对应filter表中的ID -### measure_filter表 +- 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表 +记录一个递增的 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版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 + +此表记录了数据解析或导出时的一些现场数据,比如使用的 TraceStreamer 版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 + #### 主要字段描述 -- Name:指定元数据的key -- Value:指定元数据的value -### native_hook表 +- 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 | -#### 表描述 -记录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 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:表示当前活跃内存总量的持续时间 +- 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表 +### 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 + +- callchain_id:内存分配的回调链 id +- ipid:进程 id - ts:统计数据上报时间 -- type:事件类型,0代表malloc事件,1代表mmap事件 +- type:事件类型,0 代表 malloc 事件,1 代表 mmap 事件 - apply_count:当前调用栈内存分配总次数 - release_count:当前调用栈内存释放总次数 - apply_size:当前调用栈累计分配总大小 - release_size:当前调用栈累计释放总大小 -### network表 +### 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表 +### 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:操作页数 -- itid:TS内部线程号 - -### perf_callchain表 + +- 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采样数据的调用栈信息。 + +记录了 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表 +### 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工具采集到的函数符号表和文件名。 + +记录 Hiperf 工具采集到的函数符号表和文件名。 + #### 主要字段描述 -- file_id:文件编号 -- serial_id:一个文件中可能有多个函数,serial_id表示函数的编号 -- symbol:函数名 + +- file_id:文件编号 +- serial_id:一个文件中可能有多个函数,serial_id 表示函数的编号 +- symbol:函数名 - path:文件路径 -### perf_report表 +### perf_report 表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|report_type |TEXT | -|report_value |TEXT | +| ------------ | -------- | +| id | INT | +| report_type | TEXT | +| report_value | TEXT | + #### 表描述 -记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 + +记录 Hiperf 工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 + #### 主要字段描述 -- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) + +- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) - report_value:对应类型的取值 -### perf_sample表 +### 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工具的采样信息。 + +记录 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表 + +- 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工具采集到的进程和线程数据。 + +记录 Hiperf 工具采集到的进程和线程数据。 + #### 主要字段描述 -- thread_id:线程号 -- process_id:进程号 + +- thread_id:线程号 +- process_id:进程号 - thread_name:线程名 -### process表 +### 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表 +### 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 作为 key1,进程的内存,界面刷新,屏幕亮度等信息作为 key2,唯一确定一个 filter_id, filter_id 同时被记录在 filter 表中。 + #### 主要字段描述 -- id:进程id -- type:固定取值:process_filter -- name:进程名 -- ipid:该进程表中的id与process表中的id相关联 -### process_measure表 +- 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:数值 -- filter_id:对应process_measure_filter表中的ID -### process_measure_filter表 +- 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表中。 + +将进程 ID 作为 key1,进程的内存,界面刷新,屏幕亮度等信息作为 key2,唯一确定一个 filter_id, filter_id 同时被记录在 measure_filter 表中。 + #### 字段详细描述 -- type:固定取值:process_measure_filter -- name:cpu状态名 + +- type:固定取值:process_measure_filter +- name:cpu 状态名 - ipid:进程内部编号 -### raw表 +### 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数据。 + +记录了系统中的 waking、wakup、cpu_idel、cpu_frequency 数据。 + #### 相关字段描述 -- type:固定字段(raw) -- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking) -- cpu:事件发生在哪个CPU -- itid:时间对应哪个utid -### sched_slice表 +- 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事件的原始记录。 + +此数据结构主要作为 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表 +### 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字段相关联 -- path_id:如果区域是从文件映射的,则这是文件的名称对应的id序号与表data_dict的id字段相关联 - -### stat表 + +- 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表 +### symbols 表 + #### 表结构 + | Columns Name | SQL TYPE | -|---- |---- | -|id |INT | -|funcname |TEXT | -|addr |INT | +| ------------ | -------- | +| id | INT | +| funcname | TEXT | +| addr | INT | + #### 表描述 + 此表记录了被调用函数与其地址的映射关系。 + #### 相关字段描述 -- funcname:系统调用名称 + +- funcname:系统调用名称 - adr:系统调用地址 -### syscall表 +### 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:时间戳 -- ret:返回值,在type为exit时有效 -### sys_event_filter表 +- 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。 + +记录所有的 filter。 + #### 相关字段描述 -- type:文件类型 + +- type:文件类型 - name:文件名 -### sys_mem_measure表 +### 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:数值 -- filter_id:对应filter表中的ID -### thread表 +- 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表 +### 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 作为 key1,线程的内存,界面刷新,屏幕亮度等信息作为 key2,唯一确定一个 filter_id, filter_id 同时被记录在 filter 表中。 + #### 主要字段描述 -- id:线程id -- type:线程类型 -- name:线程名称 -- itid:该表中的tid与thread表中的tid相关联 -### thread_state表 +- 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 + +- 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状态 "I", interrupted -"T", Traced -"X", ExitedDead -"Z", Zombie -"I", CloneThread -"I", TaskKilled -"DK", -"DK-IO", -"DK-NIO", +"T", Traced +"X", ExitedDead +"Z", Zombie +"I", CloneThread +"I", TaskKilled +"DK", +"DK-IO", +"DK-NIO", "TK", TracedKill "R", WakeKill "P", Parked "R+", ForeGround ``` -### clock_snapshot表 +### 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 表 -### 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仍然需要知道原始的时钟号是怎样的 -### frame_slice表 +- clock_id:时钟号,对应 clock_snapshot 中的时钟号 + 这个表是用来告诉 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之间的关联关系。 + +应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及 RenderService 和 App 之间的关联关系。 + #### 关键字段描述 -- callstack_id:该帧数据对应着callstack表的调用栈所在的行数 -- dur:该帧渲染时长(当数据不完整时,改行数据为空) -- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割 -- dst:该帧对应的渲染帧是哪一行 -- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧 -- flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧, 2 表示数据不需要绘制(没有frameNum信息) + +- callstack_id:该帧数据对应着 callstack 表的调用栈所在的行数 +- dur:该帧渲染时长(当数据不完整时,改行数据为空) +- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割 +- dst:该帧对应的渲染帧是哪一行 +- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧 +- flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧, 2 表示数据不需要绘制(没有 frameNum 信息) - depth:预留 - frame_no:预留 -### frame_maps表 + +### 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的关系。 + +该表记录了 app 到 RenderService 的帧的映射关系,同 frame_slice 表中的 src 映射到 dst 的关系。 + #### 关键字段描述 -- src_row:frame_slice表中app的帧所在的行 -- dst_row:frame_slice表中RenderService的帧所在的行 -### gpu_slice表 + +- 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上的渲染时长。 + +该表记录了每一帧数据在 GPU 上的渲染时长。 + #### 关键字段描述 -- frame_row:frame_slice表中渲染帧所在的行 -- dur:帧渲染时长 -### trace_range表 + +- 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的结束时间,纳秒为单位 \ No newline at end of file + +- start_ts:trace 的开始时间,纳秒为单位 +- end_ts:trace 的结束时间,纳秒为单位 diff --git a/ide/src/doc/md/quickstart_Application_operation_skills.md b/ide/src/doc/md/quickstart_Application_operation_skills.md index 219aa684..a43cf087 100644 --- a/ide/src/doc/md/quickstart_Application_operation_skills.md +++ b/ide/src/doc/md/quickstart_Application_operation_skills.md @@ -1,23 +1,24 @@ ## 应用操作技巧 - 应用操作技巧主要展示各个小模块的使用技巧。 + +应用操作技巧主要展示各个小模块的使用技巧。 ###可导入符号表 -符号表导入适用于所有支持调用栈的Tab页,选择一个文件夹,获取文件下及其子文件夹的所有so文件,更新数据库中符号数据。文件夹内so的格式需要与在设备上的路径一致,例如下图中,选择的文件夹为import,选择导入的libnative_hook.z.so,在设备上的路径是/system/lib64/,那么在本地选择的文件夹内也需要保证路径是import/system/lib64/libnative_hook.z.so。 +符号表导入适用于所有支持调用栈的 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下的调用栈没有符号化完全。 +以 NativeMemory 举例,导入 NativeMemory 文件,点击 Call info 的 Tab 页,在搜索框中输入 libnative_hook.z.so,会发现该 so 下的调用栈没有符号化完全。 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_nativehook.jpg) -将本地编译的so通过导入按钮导入,本地导入路径是import/system/lib64/libnative_hook.z.so,红框处是导入按钮 +将本地编译的 so 通过导入按钮导入,本地导入路径是 import/system/lib64/libnative_hook.z.so,红框处是导入按钮 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_local.jpg) -导入so以后,在搜索框中输入libnative_hook.z.so,会发现符号化数据已经更新 +导入 so 以后,在搜索框中输入 libnative_hook.z.so,会发现符号化数据已经更新 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_new.jpg) ###网页连接文件打开接口 -网页连接文件打开接口可以在网址后增加文件地址,打开后直接打开trace。 -接口的url路径如下: +网页连接文件打开接口可以在网址后增加文件地址,打开后直接打开 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(固定格式)。 diff --git a/ide/src/doc/md/quickstart_Frametimeline.md b/ide/src/doc/md/quickstart_Frametimeline.md index 99d722b3..d03c5fea 100644 --- a/ide/src/doc/md/quickstart_Frametimeline.md +++ b/ide/src/doc/md/quickstart_Frametimeline.md @@ -1,47 +1,64 @@ -# Frame timeline抓取和展示说明 +# Frame timeline 抓取和展示说明 + 抓取和展示卡顿丢帧检测的数据。 -## Frame timeline的抓取 -### Frame timeline抓取界面配置说明 -打开Frame timeline开关抓取Frametimeline数据。 -![GitHub Logo]( ../../figures/Frame/frameset.jpg) -### Frame timeline文件的抓取 -点击Record setting,在output file path输入文件名hiprofiler_dataframe.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 -![GitHub Logo]( ../../figures/Frame/framesetting.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。 -![GitHub Logo]( ../../figures/Frame/frameexcuting.jpg) -## Frame timeline功能介绍 -将抓取的文件导入到smartperf工具查看。 -### Frame timeline泳道图展示 -Frame timeline展开就可以看到泳道图,泳道图上可以显示帧编号。 -![GitHub Logo]( ../../figures/Frame/framechart.jpg) -+ Expected Timeline:理想帧泳道图。 -+ Actual Timeline:真实帧泳道图。 -### Frame timeline泳道图的框选功能 + +## Frame timeline 的抓取 + +### Frame timeline 抓取界面配置说明 + +打开 Frame timeline 开关抓取 Frametimeline 数据。 +![GitHub Logo](../../figures/Frame/frameset.jpg) + +### Frame timeline 文件的抓取 + +点击 Record setting,在 output file path 输入文件名 hiprofiler_dataframe.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 +![GitHub Logo](../../figures/Frame/framesetting.jpg) +点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 +![GitHub Logo](../../figures/Frame/frameexcuting.jpg) + +## Frame timeline 功能介绍 + +将抓取的文件导入到 smartperf 工具查看。 + +### Frame timeline 泳道图展示 + +Frame timeline 展开就可以看到泳道图,泳道图上可以显示帧编号。 +![GitHub Logo](../../figures/Frame/framechart.jpg) + +- Expected Timeline:理想帧泳道图。 +- Actual Timeline:真实帧泳道图。 + +### Frame timeline 泳道图的框选功能 + 可以对真实帧数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格。 -Frames的Tab页如图: -![GitHub Logo]( ../../figures/Frame/frameprocess.jpg) -+ Jank Type:卡顿类型。 -+ Min duration:最小持续时间。 -+ Max duration:最大持续时间。 -+ Mean duration:平均持续时间。 -+ Occurrences:事件数。 -### Frame timeline泳道图的点选功能 -通过点选理想帧和真实帧展示Tab页(Current Selection)。 -理想帧Tab页如下图: -![GitHub Logo]( ../../figures/Frame/frameexpectedtab.jpg) -+ Name:帧编号。 -+ StartTime:启动时间。 -+ Absolute Time:绝对时间。 -+ Duration:持续时间。 -+ Process:进程名。 -真实帧Tab页如下图: -![GitHub Logo]( ../../figures/Frame/frameactualtab.jpg) -+ Name:帧编号。 -+ StartTime:启动时间。 -+ Absolute Time:绝对时间。 -+ Duration:持续时间。 -+ Process:进程名。 -+ Jank Type:卡顿类型。 -+ Gpu Duration:GPU耗时。 -+ FrameTimeLine flows:显示的是绘制一帧的完整过程, 由两个阶段组成应用的提交一帧。 -+ Following flows:展示真实帧包含的关联的帧,图中斜向上箭头点击会进行跳转功能直接定位到具体进程真实帧位置,点选的同时还将包含的关联帧通过线连起来,可以跨越多个进程。 +Frames 的 Tab 页如图: +![GitHub Logo](../../figures/Frame/frameprocess.jpg) + +- Jank Type:卡顿类型。 +- Min duration:最小持续时间。 +- Max duration:最大持续时间。 +- Mean duration:平均持续时间。 +- Occurrences:事件数。 + +### Frame timeline 泳道图的点选功能 + +通过点选理想帧和真实帧展示 Tab 页(Current Selection)。 +理想帧 Tab 页如下图: +![GitHub Logo](../../figures/Frame/frameexpectedtab.jpg) + +- Name:帧编号。 +- StartTime:启动时间。 +- Absolute Time:绝对时间。 +- Duration:持续时间。 +- Process:进程名。 + 真实帧 Tab 页如下图: + ![GitHub Logo](../../figures/Frame/frameactualtab.jpg) +- Name:帧编号。 +- StartTime:启动时间。 +- Absolute Time:绝对时间。 +- Duration:持续时间。 +- Process:进程名。 +- Jank Type:卡顿类型。 +- Gpu Duration:GPU耗时。 +- FrameTimeLine flows:显示的是绘制一帧的完整过程, 由两个阶段组成应用的提交一帧。 +- Following flows:展示真实帧包含的关联的帧,图中斜向上箭头点击会进行跳转功能直接定位到具体进程真实帧位置,点选的同时还将包含的关联帧通过线连起来,可以跨越多个进程。 diff --git a/ide/src/doc/md/quickstart_Import_so.md b/ide/src/doc/md/quickstart_Import_so.md index e07d95d2..51cd5149 100644 --- a/ide/src/doc/md/quickstart_Import_so.md +++ b/ide/src/doc/md/quickstart_Import_so.md @@ -1,137 +1,153 @@ # 调用栈可视化和不同库函数调用占比说明 -调用栈可视化可以将开发者编译的so符号化结果展示出来,不同库函数的占比通过饼图的方式展示出来。 -## Native Memory文件的不同库函数占比 -Native Memory分为三级统计,分别按照内存分配的类型(Alloc/Mmap),lib库,函数进行统计分析。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。 -点击Analysis的Tab页,先以内存分配的类型去统计。 + +调用栈可视化可以将开发者编译的 so 符号化结果展示出来,不同库函数的占比通过饼图的方式展示出来。 + +## Native Memory 文件的不同库函数占比 + +Native Memory 分为三级统计,分别按照内存分配的类型(Alloc/Mmap),lib 库,函数进行统计分析。其中 lib 跟函数为每一条调用栈,从栈顶往下查找,非 musl 库与 c++库的第一条函数及其 lib 为每次分配归属的函数及 lib 库。 +点击 Analysis 的 Tab 页,先以内存分配的类型去统计。 ![GitHub Logo](../../figures/ImportSo/Native_import_all.jpg) -+ Memory Type:事件类型。 -+ Existing:框选区域内申请没有释放的大小。 -+ #Existing:框选区域内申请没有释放的次数。 -+ Total Bytes:框选区间内申请的大小。 -+ #Total:框选区间内申请的次数。 -+ Transient:框选区域内释放的大小。 -+ #Transient:框选区域内释放的次数。 -+ %:各个显示项的占比。 -以lib库去统计,如图显示的是AllocEvent的so占比的饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/Native_import_so_Existing.jpg) -+ Library:So名称。 -+ Existing:框选区域内申请没有释放的大小。 -+ #Existing:框选区域内申请没有释放的次数。 -+ Total Bytes:框选区间内申请的大小。 -+ #Total:框选区间内申请的次数。 -+ Transient:框选区域内释放的大小。 -+ #Transient:框选区域内释放的次数。 -+ %:各个显示项的占比。 -以函数去统计,如图显示的是AllocEvent/libmali-bifrost-g52-g2p0-ohos.so的函数占比的饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/Native_import_so_function.jpg) -+ Function:函数名称。 -+ Existing:框选区域内申请没有释放的大小。 -+ #Existing:框选区域内申请没有释放的次数。 -+ Total Bytes:框选区间内申请的大小。 -+ #Total:框选区间内申请的次数。 -+ Transient:框选区域内释放的大小。 -+ #Transient:框选区域内释放的次数。 -+ %:各个显示项的占比。 -## Hiperf文件的不同库函数占比 -Hiperf分为四级统计,分别按照进程,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈的栈顶函数及其lib。 -点击Analysis的Tab页,先以进程去统计。 + +- Memory Type:事件类型。 +- Existing:框选区域内申请没有释放的大小。 +- #Existing:框选区域内申请没有释放的次数。 +- Total Bytes:框选区间内申请的大小。 +- #Total:框选区间内申请的次数。 +- Transient:框选区域内释放的大小。 +- #Transient:框选区域内释放的次数。 +- %:各个显示项的占比。 + 以 lib 库去统计,如图显示的是 AllocEvent 的 so 占比的饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/Native_import_so_Existing.jpg) +- Library:So名称。 +- Existing:框选区域内申请没有释放的大小。 +- #Existing:框选区域内申请没有释放的次数。 +- Total Bytes:框选区间内申请的大小。 +- #Total:框选区间内申请的次数。 +- Transient:框选区域内释放的大小。 +- #Transient:框选区域内释放的次数。 +- %:各个显示项的占比。 + 以函数去统计,如图显示的是 AllocEvent/libmali-bifrost-g52-g2p0-ohos.so 的函数占比的饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/Native_import_so_function.jpg) +- Function:函数名称。 +- Existing:框选区域内申请没有释放的大小。 +- #Existing:框选区域内申请没有释放的次数。 +- Total Bytes:框选区间内申请的大小。 +- #Total:框选区间内申请的次数。 +- Transient:框选区域内释放的大小。 +- #Transient:框选区域内释放的次数。 +- %:各个显示项的占比。 + +## Hiperf 文件的不同库函数占比 + +Hiperf 分为四级统计,分别按照进程,线程,lib 库,函数进行统计。其中 lib 跟函数为每一条调用栈的栈顶函数及其 lib。 +点击 Analysis 的 Tab 页,先以进程去统计。 ![GitHub Logo](../../figures/ImportSo/Hiperf_import_all.jpg) -+ ProcessName:进程名。 -+ Weight:该进程下的调用方法的执行次数。 -+ %:该进程下的调用方法的执行占比。 -以线程统计,如图显示的是hiperf进程下的线程的饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/Hiperf_import_thread.jpg) -+ ThreadName:线程名。 -+ Weight:该线程下的调用方法的执行次数。 -+ %:该线程下的调用方法的执行占比。 -以lib库统计,如图显示的是hiperf线程下的各so占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/Hiperf_import_lib.jpg) -+ Library:so的名称。 -+ Weight:该so的调用方法的执行次数。 -+ %:该so的调用方法的执行占比。 -以函数统计,如图显示的是ld-musl-aarch64.so.1下的各函数占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/Hiperf_import_Fuc.jpg) -+ Library:so的名称。 -+ Weight:该so的调用方法的执行次数。 -+ %:该so的调用方法的执行占比。 -## FileSystem文件的不同库函数占比 -FileSystem分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。 -点击Analysis的Tab页,先以进程去统计。 + +- ProcessName:进程名。 +- Weight:该进程下的调用方法的执行次数。 +- %:该进程下的调用方法的执行占比。 + 以线程统计,如图显示的是 hiperf 进程下的线程的饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/Hiperf_import_thread.jpg) +- ThreadName:线程名。 +- Weight:该线程下的调用方法的执行次数。 +- %:该线程下的调用方法的执行占比。 + 以 lib 库统计,如图显示的是 hiperf 线程下的各 so 占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/Hiperf_import_lib.jpg) +- Library:so的名称。 +- Weight:该so的调用方法的执行次数。 +- %:该so的调用方法的执行占比。 + 以函数统计,如图显示的是 ld-musl-aarch64.so.1 下的各函数占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/Hiperf_import_Fuc.jpg) +- Library:so的名称。 +- Weight:该so的调用方法的执行次数。 +- %:该so的调用方法的执行占比。 + +## FileSystem 文件的不同库函数占比 + +FileSystem 分为五级统计,分别按照进程,系统调用类型,线程,lib 库,函数进行统计。其中 lib 跟函数为每一条调用栈,从栈顶往下查找,非 musl 库与 c++库的第一条函数及其 lib 为每次分配归属的函数及 lib 库。 +点击 Analysis 的 Tab 页,先以进程去统计。 ![GitHub Logo](../../figures/ImportSo/filesystem_import_process.jpg) -+ ProcessName:进程名。 -+ Duration:总时长。 -+ %:总时长占比。 -以系统调用类型统计,如图显示的是grep进程下的Read和Write系统调用的时长占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/filesystem_import_Type.jpg) -+ Type:系统调用类型(Read和Write)。 -+ Duration:系统调用的总时长。 -+ %:总时长占比。 -以线程统计,如图显示的是系统调用是Read类型的线程的占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/filesystem_import_thread.jpg) -+ ThreadName:线程名。 -+ Duration:该线程的系统调用的总时长。 -+ %:总时长占比。 -以lib库统计,如图显示toybox的lib库的占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/filesystem_import_lib.jpg) -+ Library:so的名称。 -+ Duration:该so的系统调用的总时长。 -+ %:总时长占比。 -以函数统计,如图显示0x558111afbc (toybox)的函数占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/filesystem_import_func.jpg) -+ Function:函数名称。 -+ Duration:该函数的系统调用的总时长。 -+ %:总时长占比。 -## Bio文件的不同库函数占比 -Bio分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非submit_bio第一条函数及其lib为每次分配归属的函数及lib库。 -点击Analysis的Tab页,先以进程去统计。 + +- ProcessName:进程名。 +- Duration:总时长。 +- %:总时长占比。 + 以系统调用类型统计,如图显示的是 grep 进程下的 Read 和 Write 系统调用的时长占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/filesystem_import_Type.jpg) +- Type:系统调用类型(Read和Write)。 +- Duration:系统调用的总时长。 +- %:总时长占比。 + 以线程统计,如图显示的是系统调用是 Read 类型的线程的占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/filesystem_import_thread.jpg) +- ThreadName:线程名。 +- Duration:该线程的系统调用的总时长。 +- %:总时长占比。 + 以 lib 库统计,如图显示 toybox 的 lib 库的占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/filesystem_import_lib.jpg) +- Library:so的名称。 +- Duration:该so的系统调用的总时长。 +- %:总时长占比。 + 以函数统计,如图显示 0x558111afbc (toybox)的函数占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/filesystem_import_func.jpg) +- Function:函数名称。 +- Duration:该函数的系统调用的总时长。 +- %:总时长占比。 + +## Bio 文件的不同库函数占比 + +Bio 分为五级统计,分别按照进程,系统调用类型,线程,lib 库,函数进行统计。其中 lib 跟函数为每一条调用栈,从栈顶往下查找,非 submit_bio 第一条函数及其 lib 为每次分配归属的函数及 lib 库。 +点击 Analysis 的 Tab 页,先以进程去统计。 ![GitHub Logo](../../figures/ImportSo/bio_import_process.jpg) -+ ProcessName:进程名。 -+ Duration:总时长。 -+ %:总时长占比。 -以系统调用类型统计,如图显示的是jbd2/mmcblk0p11进程下的DATA_WRITE系统调用的时长占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/bio_import_Type.jpg) -+ Type:系统调用类型。 -+ Duration:系统调用的总时长。 -+ %:总时长占比。 -以线程统计,如图显示的是系统调用是DATA_WRITE类型的线程的占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/bio_import_thread.jpg) -+ ThreadName:线程名。 -+ Duration:该线程的系统调用的总时长。 -+ %:总时长占比。 -以lib库统计,如图显示kallsyms的lib库的占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/bio_import_lib.jpg) -+ Library:so的名称。 -+ Duration:该so的系统调用的总时长。 -+ %:总时长占比。 -以函数统计,如图显示submit_bh的函数占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/bio_import_func.jpg) -+ Function:函数名称。 -+ Duration:该函数的系统调用的总时长。 -+ %:总时长占比。 -## Page Fault文件的不同库函数占比 -Page Fault分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。 -点击Analysis的Tab页,先以进程去统计。 + +- ProcessName:进程名。 +- Duration:总时长。 +- %:总时长占比。 + 以系统调用类型统计,如图显示的是 jbd2/mmcblk0p11 进程下的 DATA_WRITE 系统调用的时长占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/bio_import_Type.jpg) +- Type:系统调用类型。 +- Duration:系统调用的总时长。 +- %:总时长占比。 + 以线程统计,如图显示的是系统调用是 DATA_WRITE 类型的线程的占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/bio_import_thread.jpg) +- ThreadName:线程名。 +- Duration:该线程的系统调用的总时长。 +- %:总时长占比。 + 以 lib 库统计,如图显示 kallsyms 的 lib 库的占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/bio_import_lib.jpg) +- Library:so的名称。 +- Duration:该so的系统调用的总时长。 +- %:总时长占比。 + 以函数统计,如图显示 submit_bh 的函数占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/bio_import_func.jpg) +- Function:函数名称。 +- Duration:该函数的系统调用的总时长。 +- %:总时长占比。 + +## Page Fault 文件的不同库函数占比 + +Page Fault 分为五级统计,分别按照进程,系统调用类型,线程,lib 库,函数进行统计。其中 lib 跟函数为每一条调用栈,从栈顶往下查找,非 musl 库与 c++库的第一条函数及其 lib 为每次分配归属的函数及 lib 库。 +点击 Analysis 的 Tab 页,先以进程去统计。 ![GitHub Logo](../../figures/ImportSo/pagefault_import_process.jpg) -+ ProcessName:进程名。 -+ Duration:总时长。 -+ %:总时长占比。 -以系统调用类型统计,如图显示的是1.ui进程下的File Backed In和Copy On Writer系统调用的时长占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/pagefault_import_Type.jpg) -+ Type:系统调用类型。 -+ Duration:系统调用的总时长。 -+ %:总时长占比。 -以线程统计,如图显示的是系统调用是File Backed In类型的线程的占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/pagefault_import_thread.jpg) -+ ThreadName:线程名。 -+ Duration:该线程的系统调用的总时长。 -+ %:总时长占比。 -以lib库统计,如图显示各lib库的占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/pagefault_import_lib.jpg) -+ Library:so的名称。 -+ Duration:该so的系统调用的总时长。 -+ %:总时长占比。 -以函数统计,如图显示各函数占比饼图和Table表。 -![GitHub Logo](../../figures/ImportSo/pagefault_import_func.jpg) -+ Function:函数名称。 -+ Duration:该函数的系统调用的总时长。 -+ %:总时长占比。 \ No newline at end of file + +- ProcessName:进程名。 +- Duration:总时长。 +- %:总时长占比。 + 以系统调用类型统计,如图显示的是 1.ui 进程下的 File Backed In 和 Copy On Writer 系统调用的时长占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/pagefault_import_Type.jpg) +- Type:系统调用类型。 +- Duration:系统调用的总时长。 +- %:总时长占比。 + 以线程统计,如图显示的是系统调用是 File Backed In 类型的线程的占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/pagefault_import_thread.jpg) +- ThreadName:线程名。 +- Duration:该线程的系统调用的总时长。 +- %:总时长占比。 + 以 lib 库统计,如图显示各 lib 库的占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/pagefault_import_lib.jpg) +- Library:so的名称。 +- Duration:该so的系统调用的总时长。 +- %:总时长占比。 + 以函数统计,如图显示各函数占比饼图和 Table 表。 + ![GitHub Logo](../../figures/ImportSo/pagefault_import_func.jpg) +- Function:函数名称。 +- Duration:该函数的系统调用的总时长。 +- %:总时长占比。 diff --git a/ide/src/doc/md/quickstart_Js_memory.md b/ide/src/doc/md/quickstart_Js_memory.md index 0eb71f7b..d7396c51 100644 --- a/ide/src/doc/md/quickstart_Js_memory.md +++ b/ide/src/doc/md/quickstart_Js_memory.md @@ -1,85 +1,107 @@ -# Js Memory抓取和展示说明 -Js Memory是查看程序中存量内存的情况。 -## Js Memory的抓取 -### Js Memory抓取配置参数 +# Js Memory 抓取和展示说明 + +Js Memory 是查看程序中存量内存的情况。 + +## Js Memory 的抓取 + +### Js Memory 抓取配置参数 + ![GitHub Logo](../../figures/Jsmemory/jsmemorysetting.jpg) 配置参数说明: -* Process:设置抓取的进程ID,此处以1747进程号为例。 -* Heap snapshot:堆快照性能分析会显示网页的JavaScript对象和相关DOM节点中内存分配情况。 -* include numerical values in capture:在快照中添加数字。 -* Interval:抓取的时间间隔。 -* Allocation insteumentation on timeline:分配时间轴显示了插桩的JavaScript内存分配随时间变化的情况。 -* record stack traces of allocations(extra performance overhead):录制各项分配的堆栈轨迹(会产生额外的性能开销)。 - -再点击Record setting,在output file path输入文件名hiprofiler_data_jsmemory.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是30s。 + +- Process:设置抓取的进程 ID,此处以 1747 进程号为例。 +- Heap snapshot:堆快照性能分析会显示网页的 JavaScript 对象和相关 DOM 节点中内存分配情况。 +- include numerical values in capture:在快照中添加数字。 +- Interval:抓取的时间间隔。 +- Allocation insteumentation on timeline:分配时间轴显示了插桩的 JavaScript 内存分配随时间变化的情况。 +- record stack traces of allocations(extra performance overhead):录制各项分配的堆栈轨迹(会产生额外的性能开销)。 + +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_jsmemory.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 30s。 ![GitHub Logo](../../figures/Jsmemory/jsmemoryset.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 ![GitHub Logo](../../figures/Jsmemory/jsmemoryrecord.jpg) -## Js Memory展示说明 -将抓取的jsmemory文件导入到smartperf工具中查看,查看程序中存量内存的情况。 -### Js Memory泳道图展示类型 + +## Js Memory 展示说明 + +将抓取的 jsmemory 文件导入到 smartperf 工具中查看,查看程序中存量内存的情况。 + +### Js Memory 泳道图展示类型 + 堆快照类型文件的泳道图展示。 ![GitHub Logo](../../figures/Jsmemory/jsnapshotChart.jpg) -+ Heapsnapshot:堆快照性能分析会显示网页的JavaScript对象和相关DOM节点中内存分配情况。 -时间轴上分配插桩类型文件的泳道图展示。 -![GitHub Logo](../../figures/Jsmemory/jstimelineChart.jpg) -+ Heaptimeline:分配时间轴显示了插桩的JavaScript内存分配随时间变化的情况。 - -### Js Memory泳道图的框选功能 -可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个tab页。 -Summary的Tab页,主要显示了总览视图,通过类的名称来分组显示对象。 + +- Heapsnapshot:堆快照性能分析会显示网页的JavaScript对象和相关DOM节点中内存分配情况。 + 时间轴上分配插桩类型文件的泳道图展示。 + ![GitHub Logo](../../figures/Jsmemory/jstimelineChart.jpg) +- Heaptimeline:分配时间轴显示了插桩的JavaScript内存分配随时间变化的情况。 + +### Js Memory 泳道图的框选功能 + +可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个 tab 页。 +Summary 的 Tab 页,主要显示了总览视图,通过类的名称来分组显示对象。 ![GitHub Logo](../../figures/Jsmemory/JsSummary.jpg) -+ Constructor:类创建的所有对象,其中 + +- Constructor:类创建的所有对象,其中 第一层为类名,后面的x表示该类创建了多少实例。 第二层为该类的实例名+id,id唯一。 第三层以下为实例中的成员变量。 -+ Distance:使用节点的最短简单路径显示到根的距离。 - 例如下图其中GC Root为根节点,distance为0,G为上次GC之后新申请内存的实例,distance为100000000。在界面上显示为-,A、B、C、D、E、F、H为调用节点;以E为例,从A->D->F>E,distance为4,从A->D->E,distance为3;从B->E,distance为2,遵循最小distance原则,E的distance为2,同理D的distance为2,F的distance为2,H的distance也为2。 +- Distance:使用节点的最短简单路径显示到根的距离。 + + 例如下图其中 GC Root 为根节点,distance 为 0,G 为上次 GC 之后新申请内存的实例,distance 为 100000000。在界面上显示为-,A、B、C、D、E、F、H 为调用节点;以 E 为例,从 A->D->F>E,distance 为 4,从 A->D->E,distance 为 3;从 B->E,distance 为 2,遵循最小 distance 原则,E 的 distance 为 2,同理 D 的 distance 为 2,F 的 distance 为 2,H 的 distance 也为 2。 - 其中第一层类的distance为该类所有实例中最小的distance,如果有实例的distance为-,类的distance也为-(-表示没有被root节点引用的实例,如下图的G) - ![GitHub Logo](../../figures/Jsmemory/js_sample.png) -+ ShallowSize:是指实例自身占用的内存, 可以理解为保存该'数据结构'需要多少内存 + 其中第一层类的 distance 为该类所有实例中最小的 distance,如果有实例的 distance 为-,类的 distance 也为-(-表示没有被 root 节点引用的实例,如下图的 G) + ![GitHub Logo](../../figures/Jsmemory/js_sample.png) + +- ShallowSize:是指实例自身占用的内存, 可以理解为保存该'数据结构'需要多少内存 例如下面的代码: -``` javascript - class X { - a: number = 0; - b: boolean = false; - c: ChartStruct = new ChartStruct(); - } + +```javascript +class X { + a: number = 0; + b: boolean = false; + c: ChartStruct = new ChartStruct(); +} ``` + 假设当前是在64位系统, 对于类X来说, 一个X实例的Shallow Size为: 类定义的8byte 没有继承其他类, 所以没有父类fields - a,b变量为基本类型number,boolean型, js中都为8byte; + a,b变量为基本类型number,boolean型, js中都为8byte; c变量是引用类型, 和它是否指向具体实例无关, 固定占4byte -+ RetainedSize:Retained Size含义为表示当一个实例被GC回收时, 可以同时被回收的实例的Shallow Size之和。 - * 如上图所示;假设所有的节点Size都为1,按照A->B->C的顺序回收。 - * 当A被回收时,H被D调用,先不回收,D没有被调用,D回收,由于D被回收,H没有被调用,H回收,由于F被C调用,E被B、F也调用了,所以不能被回收,此时A的Retained Size为3,D的Retained Size为2, H的Retained Size为1。 - * 当B被回收时,由于E被F占用,所以E不会被回收,此时B的Retained Size为1。 - * 当C被回收时,F没有被调用,E没有被调用,所以都会被回收,此时C的Retained Size为3,F的Retained Size为2, E的Retained Size为1。 +- RetainedSize:Retained Size含义为表示当一个实例被GC回收时, 可以同时被回收的实例的Shallow Size之和。 + - 如上图所示;假设所有的节点 Size 都为 1,按照 A->B->C 的顺序回收。 + - 当 A 被回收时,H 被 D 调用,先不回收,D 没有被调用,D 回收,由于 D 被回收,H 没有被调用,H 回收,由于 F 被 C 调用,E 被 B、F 也调用了,所以不能被回收,此时 A 的 Retained Size 为 3,D 的 Retained Size 为 2, H 的 Retained Size 为 1。 + - 当 B 被回收时,由于 E 被 F 占用,所以 E 不会被回收,此时 B 的 Retained Size 为 1。 + - 当 C 被回收时,F 没有被调用,E 没有被调用,所以都会被回收,此时 C 的 Retained Size 为 3,F 的 Retained Size 为 2, E 的 Retained Size 为 1。 -Comparison的Tab页,主要显示了比较视图,显示两份快照间的不同之处,主要比较类创建与释放的实例数量。 +Comparison 的 Tab 页,主要显示了比较视图,显示两份快照间的不同之处,主要比较类创建与释放的实例数量。 ![GitHub Logo](../../figures/Jsmemory/JsComparison.jpg) -+ #Constructor:类创建的所有对象,类名与id相同视为同一个实例,其中 + +- #Constructor:类创建的所有对象,类名与id相同视为同一个实例,其中 第一层为类的比较,每个时间点的对比其他时间点的类创建与销毁了哪些实例。 第二层为实例,由于展示的是创建或者销毁实例,固只展示Size大小。 第三层以下为实例的成员变量,不存在比较信息。 -+ #New:新增的实例数量,圆点代表有意义的数据,下划线代表无意义的数据。 -+ #Deleted:删除的实例数量。 -+ #Delta:#New减去#Deleted的数量。 -+ Alloc.Size:新增实例的Size。 -+ Freed Size:删除实例的Size。 -+ Size Delta:Delta的Size。 -### Js Memory的辅助信息功能 -在Summary和Comparison的Tab页,选中左边实例,右边Retainers的Tab页会显示多少个实例引用了左边选中的实例。 +- #New:新增的实例数量,圆点代表有意义的数据,下划线代表无意义的数据。 +- #Deleted:删除的实例数量。 +- #Delta:#New减去#Deleted的数量。 +- Alloc.Size:新增实例的Size。 +- Freed Size:删除实例的Size。 +- Size Delta:Delta的Size。 + +### Js Memory 的辅助信息功能 + +在 Summary 和 Comparison 的 Tab 页,选中左边实例,右边 Retainers 的 Tab 页会显示多少个实例引用了左边选中的实例。 ![GitHub Logo](../../figures/Jsmemory/jsmemorycallstack.jpg) -+ Object:引用的实例。 -+ Distance:使用节点的最短简单路径显示到根的距离。 -+ ShallowSize:所有对象的本身的内存大小之和。 -+ RetainedSize:对象以及其相关的对象一起被删除后所释放的内存大小,同一组对象之间的最大保留大小。 -### Js Memory详细显示的过滤功能 -在下方的Class Filter中输入类名,可以对类名进行过滤,如下图输入array,会过滤出类名是array的相关数据。 -![GitHub Logo](../../figures/Jsmemory/Jsmemoryfilter.jpg) \ No newline at end of file + +- Object:引用的实例。 +- Distance:使用节点的最短简单路径显示到根的距离。 +- ShallowSize:所有对象的本身的内存大小之和。 +- RetainedSize:对象以及其相关的对象一起被删除后所释放的内存大小,同一组对象之间的最大保留大小。 + +### Js Memory 详细显示的过滤功能 + +在下方的 Class Filter 中输入类名,可以对类名进行过滤,如下图输入 array,会过滤出类名是 array 的相关数据。 +![GitHub Logo](../../figures/Jsmemory/Jsmemoryfilter.jpg) diff --git a/ide/src/doc/md/quickstart_ability_monitor.md b/ide/src/doc/md/quickstart_ability_monitor.md index d4383935..e0325ef1 100644 --- a/ide/src/doc/md/quickstart_ability_monitor.md +++ b/ide/src/doc/md/quickstart_ability_monitor.md @@ -1,113 +1,127 @@ -# Ability Monitor抓取和展示说明 -抓取和展示处理的CPU,内存,磁盘IO和网络使用情况统计。 -## Ability Monitor的抓取 -### Ability Monitor抓取界面配置说明 -点击Probes config,如选择抓取AbilityMonitor。 -![GitHub Logo]( ../../figures/AbilityMonitor/abilityset.jpg) -### Ability Monitor文件的抓取 -点击Record setting,在output file path输入文件名hiprofiler_data_abilitymonitor.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 -![GitHub Logo]( ../../figures/AbilityMonitor/abilitysetting.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 -![GitHub Logo]( ../../figures/AbilityMonitor/abilitycommand.jpg) -输入hdc_shell,进入设备,执行命令。 -![GitHub Logo]( ../../figures/AbilityMonitor/abilityexcutecommand.jpg) -进入指定目录,cd /data/local/tmp进入到目录,会看到生成的trace文件。 -![GitHub Logo]( ../../figures/AbilityMonitor/abilityhtrace.jpg) -## Ability Monitor功能介绍 -将抓取的文件导入到smartperf工具查看,能了解CPU,内存,磁盘IO和网络的使用情况。 -### Ability Monitor泳道图展示 -Ability Monitor展开就可以看到泳道图,包括CPU,内存,磁盘IO,网络的使用情况。 -![GitHub Logo]( ../../figures/AbilityMonitor/abilitymonitorflowchart.jpg) -+ 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]( ../../figures/AbilityMonitor/liveprocess.jpg) -+ 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]( ../../figures/AbilityMonitor/ProcessesHistory.jpg) -+ 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]( ../../figures/AbilityMonitor/cpusummary.jpg) -+ Start Time:采集时间的时间戳。 -+ Duration:前一次采集到本次采集的时间差。 -+ TotalLoad%:总的CPU使用率。 -+ UserLoad%:CPU在用户态空间运行的使用率。 -+ SystemLoad%:CPU在内核空间运行的使用率。 -+ Process:进程号。 -框选MemoryTotal,Cached,SwapTota三个区域的泳道图,会展示System Memory Summary的Tab页。 -![GitHub Logo]( ../../figures/AbilityMonitor/memorytab.jpg) -+ 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]( ../../figures/AbilityMonitor/disktab.jpg) -+ 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]( ../../figures/AbilityMonitor/network.jpg) -+ Start Time:采集时间的时间戳。 -+ Duration:前一次采集到本次采集的时间差。 -+ Data Received:接收的网络数据总字节数。 -+ Data Received/sec:每秒接收的网络数据字节数。 -+ Data Send:发送的网络数据总字节数。 -+ Data Send/sec:每秒发送的网络数据字节数。 -+ Packets In:接收的网络总数据包数。 -+ Packets In/sec:每秒接收的网络数据包数。 -+ Packets Out:发送的网络总数据包数。 -+ Packets Out/sec:每秒发送的网络数据包数。 +# Ability Monitor 抓取和展示说明 + +抓取和展示处理的 CPU,内存,磁盘 IO 和网络使用情况统计。 + +## Ability Monitor 的抓取 + +### Ability Monitor 抓取界面配置说明 + +点击 Probes config,如选择抓取 AbilityMonitor。 +![GitHub Logo](../../figures/AbilityMonitor/abilityset.jpg) + +### Ability Monitor 文件的抓取 + +点击 Record setting,在 output file path 输入文件名 hiprofiler_data_abilitymonitor.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 +![GitHub Logo](../../figures/AbilityMonitor/abilitysetting.jpg) +点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 +![GitHub Logo](../../figures/AbilityMonitor/abilitycommand.jpg) +输入 hdc_shell,进入设备,执行命令。 +![GitHub Logo](../../figures/AbilityMonitor/abilityexcutecommand.jpg) +进入指定目录,cd /data/local/tmp 进入到目录,会看到生成的 trace 文件。 +![GitHub Logo](../../figures/AbilityMonitor/abilityhtrace.jpg) + +## Ability Monitor 功能介绍 + +将抓取的文件导入到 smartperf 工具查看,能了解 CPU,内存,磁盘 IO 和网络的使用情况。 + +### Ability Monitor 泳道图展示 + +Ability Monitor 展开就可以看到泳道图,包括 CPU,内存,磁盘 IO,网络的使用情况。 +![GitHub Logo](../../figures/AbilityMonitor/abilitymonitorflowchart.jpg) + +- 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](../../figures/AbilityMonitor/liveprocess.jpg) + +- 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](../../figures/AbilityMonitor/ProcessesHistory.jpg) +- 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](../../figures/AbilityMonitor/cpusummary.jpg) +- Start Time:采集时间的时间戳。 +- Duration:前一次采集到本次采集的时间差。 +- TotalLoad%:总的CPU使用率。 +- UserLoad%:CPU在用户态空间运行的使用率。 +- SystemLoad%:CPU在内核空间运行的使用率。 +- Process:进程号。 + 框选 MemoryTotal,Cached,SwapTota 三个区域的泳道图,会展示 System Memory Summary 的 Tab 页。 + ![GitHub Logo](../../figures/AbilityMonitor/memorytab.jpg) +- 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](../../figures/AbilityMonitor/disktab.jpg) +- 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](../../figures/AbilityMonitor/network.jpg) +- 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 59ded268..650f2353 100644 --- a/ide/src/doc/md/quickstart_animation.md +++ b/ide/src/doc/md/quickstart_animation.md @@ -1,58 +1,79 @@ -# Animation的抓取和展示说明 +# Animation 的抓取和展示说明 + 通过动效模板的指标项对图形子系统和应用做动效卡顿类问题分析。 -### Animation抓取参数的配置 + +### Animation 抓取参数的配置 + ![GitHub Logo](../../figures/animation/animationconfig.jpg) 配置项说明: -+ Animation effect:动效配置项的总开关。 -### Animation展示说明 -将抓取的Animation文件导入到smartperf工具中,查看图形子系统和应用动效卡顿类问题。 -### Animation泳道图展示 -Animation的响应时延泳道图显示,泳道图的Slice会显示响应时延,如下图中的Completion delay(683.035938ms)。 + +- Animation effect:动效配置项的总开关。 + +### Animation 展示说明 + +将抓取的 Animation 文件导入到 smartperf 工具中,查看图形子系统和应用动效卡顿类问题。 + +### Animation 泳道图展示 + +Animation 的响应时延泳道图显示,泳道图的 Slice 会显示响应时延,如下图中的 Completion delay(683.035938ms)。 ![GitHub Logo](../../figures/animation/anrsdelayrow.jpg)。 -Animation的动效曲线和帧间距的总泳道图,如图点击leashWindow40旁边的小齿轮可以切换leashWindow。 +Animation 的动效曲线和帧间距的总泳道图,如图点击 leashWindow40 旁边的小齿轮可以切换 leashWindow。 ![GitHub Logo](../../figures/animation/anrsallrow.jpg)。 -Animation的动效曲线泳道图展示,如下: +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页会显示相关信息。 + +点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic 的 Tab 页会显示相关信息。 ![GitHub Logo](../../figures/animation/anieffectcurvselect.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ Value:属性值。 + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- Value:属性值。 + ### 动效曲线泳道图框选功能 -框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。 + +框选动效曲线泳道图,Frame Dynamic 的 Tab 页会显示框选范围内每个点的属性值。 ![GitHub Logo](../../figures/animation/anieffectcurvdrag.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ Value:属性值。 + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- Value:属性值。 + ### 帧间距泳道图点选功能 -点选帧间距泳道图,Frame spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。 + +点选帧间距泳道图,Frame spacing 的 Tab 页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。 ![GitHub Logo](../../figures/animation/anispacingselect.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ property:动效宽度或高度属性。 -+ Value2: 当前帧的属性值。 -+ Value1: 前一帧的属性值。 -+ Screen:存储设备的物理宽度/高度。 -+ T2(s): 当前帧的结束时间。 -+ T1(s): 前一帧的结束时间。 -+ result:帧间距。 + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- property:动效宽度或高度属性。 +- Value2: 当前帧的属性值。 +- Value1: 前一帧的属性值。 +- Screen:存储设备的物理宽度/高度。 +- T2(s): 当前帧的结束时间。 +- T1(s): 前一帧的结束时间。 +- result:帧间距。 + ### 帧间距泳道图框选功能 -框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。 + +框选帧间距泳道图,Frame spacing 的 Tab 页会显示框选范围内帧间距数据。 ![GitHub Logo](../../figures/animation/anispacingdrag.jpg) -+ Timestamp: 时间戳信息。 -+ Index: 属性索引。 -+ property:动效宽度或高度属性。 -+ Value2: 当前帧的属性值。 -+ Value1: 前一帧的属性值。 -+ Screen:存储设备的物理宽度/高度。 -+ T2(s): 当前帧的结束时间。 -+ T1(s): 前一帧的结束时间。 -+ result:帧间距。 \ No newline at end of file + +- Timestamp: 时间戳信息。 +- Index: 属性索引。 +- property:动效宽度或高度属性。 +- 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 c57dda80..f6f20762 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 的抓取和展示说明 + 应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。 -### App startup抓取参数的配置 + +### App startup 抓取参数的配置 + ![GitHub Logo](../../figures/appstartup/appstartupconfig.jpg) 配置项说明: -+ App startup:配置项的总开关。 -### App startup展示说明 -将抓取的App startup文件导入到smartperf工具中,查看应用启动各阶段耗时的情况。 -### App startup泳道图展示 -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点选为例: +应用启动包括六个阶段,分别是 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:应用启动的持续时间。 -### App startup泳道图Tab页跳转功能 -点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。 -以Process Creating的跳转为例: + +- 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。 -### App startup泳道图的框选功能 + +- 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:应用各阶段启动时长。 -+ %:应用各阶段启动时长的占比。 -### So初始化泳道图展示 -So初始化的泳道图展示: + +- Process / Startup: 应用名称和启动阶段名称。 +- Duration:应用各阶段启动时长。 +- %:应用各阶段启动时长的占比。 + +### So 初始化泳道图展示 + +So 初始化的泳道图展示: ![GitHub Logo](../../figures/appstartup/staticinitilizationrow.jpg) -### So初始化泳道图的点选功能 -点选So初始化的Slice,展示该so初始化信息的tab页。 + +### So 初始化泳道图的点选功能 + +点选 So 初始化的 Slice,展示该 so 初始化信息的 tab 页。 ![GitHub Logo](../../figures/appstartup/staticinitilizationslice.jpg) -+ Name:So的名称。 -+ StartTime(Relative):So初始化开始时间(相对时间)。 -+ StartTime(Absolute):So初始化开始时间(绝对时间)。 -+ Duration:So初始化耗时。 -### So初始化泳道图Tab页跳转功能 -点击So初始化开始时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。 + +- 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。 -### So初始化泳道图的框选功能 -So初始化泳道图框选功能主要是框选So初始化泳道图之后,统计各个进程下各个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_arkts.md b/ide/src/doc/md/quickstart_arkts.md index 0c70e942..c5c40238 100644 --- a/ide/src/doc/md/quickstart_arkts.md +++ b/ide/src/doc/md/quickstart_arkts.md @@ -1,44 +1,59 @@ -# Cpuprofiler抓取和展示说明 -Cpuprofiler模板帮助ArkTs开发和测试分析虚拟机层执行开销大问题,提供Ts层耗时长函数和阶段。 -## Cpuprofiler的抓取 -#### Cpuprofiler的抓取配置参数 -打开Start Ark Ts Record总开关下面的Start cpu profiler开关抓取cpuprofiler数据。 +# Cpuprofiler 抓取和展示说明 + +Cpuprofiler 模板帮助 ArkTs 开发和测试分析虚拟机层执行开销大问题,提供 Ts 层耗时长函数和阶段。 + +## Cpuprofiler 的抓取 + +#### Cpuprofiler 的抓取配置参数 + +打开 Start Ark Ts Record 总开关下面的 Start cpu profiler 开关抓取 cpuprofiler 数据。 ![GitHub Logo](../../figures/arkts/cpuprofilerconfig.jpg) -### Cpuprofiler展示说明 -将抓取的cpuprofiler文件导入到smartperf中,查看Ts层耗时长的函数和阶段。 + +### Cpuprofiler 展示说明 + +将抓取的 cpuprofiler 文件导入到 smartperf 中,查看 Ts 层耗时长的函数和阶段。 ![GitHub Logo](../../figures/arkts/cpuprofilerrow.jpg) -### Cpuprofiler的泳道图悬浮显示 -鼠标放到泳道图的Slice上会有悬浮框显示。 + +### Cpuprofiler 的泳道图悬浮显示 + +鼠标放到泳道图的 Slice 上会有悬浮框显示。 ![GitHub Logo](../../figures/arkts/cpuprofilertip.jpg) -+ Name : 函数名。 -+ Self Time: 函数自身执行时间(不包含其调用者)。 -+ Total Time : 函数自身及调用者的调用时间总和。 -+ Url : 函数所在的文件名称。 -### Cpuprofiler泳道图的点选和框选功能 -点选或者框选泳道图上函数名的Slice,会显示Js Profiler Statistics,Js Profiler CallTree,Js Profiler BottomUp的Tab页信息。 -Js Profiler Statistics的Tab页显示数据的维度信息,以饼图和Table表的方式展示,如下图: + +- Name : 函数名。 +- Self Time: 函数自身执行时间(不包含其调用者)。 +- Total Time : 函数自身及调用者的调用时间总和。 +- Url : 函数所在的文件名称。 + +### Cpuprofiler 泳道图的点选和框选功能 + +点选或者框选泳道图上函数名的 Slice,会显示 Js Profiler Statistics,Js Profiler CallTree,Js Profiler BottomUp 的 Tab 页信息。 +Js Profiler Statistics 的 Tab 页显示数据的维度信息,以饼图和 Table 表的方式展示,如下图: ![GitHub Logo](../../figures/arkts/cpuprofilerselects.jpg) ![GitHub Logo](../../figures/arkts/cpuprofilerdrags.jpg) -+ Type : 维度名称,有九大维度(NAPI、ARKUI_ENGINE、BUTLTIN、GC、AINT、CINT、AOT、RUNTIME、OTHER)。 -+ Total : 时间。 -+ % : 时间占比。 -Js Profiler CallTree的Tab页把name,url,depth,parent相同的函数合并,构建成一个top down的树结构,以树形表格的形式显示,表格中显示函数调用关系,如下图: -![GitHub Logo](../../figures/arkts/cpuprofilerselectc.jpg) -![GitHub Logo](../../figures/arkts/cpuprofilerdragc.jpg) -+ Symbol : 函数名。 -+ Self Time: 函数自身执行时间(不包含其调用者)。 -+ Total Time : 函数自身及调用者的调用时间总和。 -Js Profiler BottomUp的Tab页把name,url,depth,parent相同的函数合并,构建成一个bottom up的树结构,以树形表格的形式显示,只不过作为根节点的是被调用者,表格中显示函数被调用关系,如下图: -![GitHub Logo](../../figures/arkts/cpuprofilerselectb.jpg) -![GitHub Logo](../../figures/arkts/cpuprofilerdragb.jpg) -+ Symbol : 函数名。 -+ Self Time: 函数自身执行时间(不包含其调用者)。 -+ Total Time : 函数自身及调用者的调用时间总和。 -### Cpuprofiler的Heaviest Stack功能 -Js Profiler CallTree的Tab页的Heaviest Stack表格显示的是选中的函数的完整的调用栈。 + +- Type : 维度名称,有九大维度(NAPI、ARKUI_ENGINE、BUTLTIN、GC、AINT、CINT、AOT、RUNTIME、OTHER)。 +- Total : 时间。 +- % : 时间占比。 + Js Profiler CallTree 的 Tab 页把 name,url,depth,parent 相同的函数合并,构建成一个 top down 的树结构,以树形表格的形式显示,表格中显示函数调用关系,如下图: + ![GitHub Logo](../../figures/arkts/cpuprofilerselectc.jpg) + ![GitHub Logo](../../figures/arkts/cpuprofilerdragc.jpg) +- Symbol : 函数名。 +- Self Time: 函数自身执行时间(不包含其调用者)。 +- Total Time : 函数自身及调用者的调用时间总和。 + Js Profiler BottomUp 的 Tab 页把 name,url,depth,parent 相同的函数合并,构建成一个 bottom up 的树结构,以树形表格的形式显示,只不过作为根节点的是被调用者,表格中显示函数被调用关系,如下图: + ![GitHub Logo](../../figures/arkts/cpuprofilerselectb.jpg) + ![GitHub Logo](../../figures/arkts/cpuprofilerdragb.jpg) +- Symbol : 函数名。 +- Self Time: 函数自身执行时间(不包含其调用者)。 +- Total Time : 函数自身及调用者的调用时间总和。 + +### Cpuprofiler 的 Heaviest Stack 功能 + +Js Profiler CallTree 的 Tab 页的 Heaviest Stack 表格显示的是选中的函数的完整的调用栈。 ![GitHub Logo](../../figures/arkts/cpuprofilerheavic.jpg) -Js Profiler BottomUp的Tab页的Heaviest Stack表格显示的是选中的函数的完整的逆序调用栈。 +Js Profiler BottomUp 的 Tab 页的 Heaviest Stack 表格显示的是选中的函数的完整的逆序调用栈。 ![GitHub Logo](../../figures/arkts/cpuprofilerheavib.jpg) -+ Symbol : 函数名。 -+ Total Time : 函数自身及调用者的调用时间总和。 -+ % : 总时间占比。 \ No newline at end of file + +- Symbol : 函数名。 +- Total Time : 函数自身及调用者的调用时间总和。 +- % : 总时间占比。 diff --git a/ide/src/doc/md/quickstart_bio.md b/ide/src/doc/md/quickstart_bio.md index d4182083..4862bc40 100644 --- a/ide/src/doc/md/quickstart_bio.md +++ b/ide/src/doc/md/quickstart_bio.md @@ -1,85 +1,111 @@ -# Bio的抓取和展示说明 -抓取和展示IO延迟的数据。 -## Bio的抓取 -### Bio抓取配置参数 +# Bio 的抓取和展示说明 + +抓取和展示 IO 延迟的数据。 + +## Bio 的抓取 + +### Bio 抓取配置参数 + ![GitHub Logo](../../figures/Bio/Biosetting.jpg) 配置项说明: -+ Start BIO Latency Record:配置项的总开关。 -+ Process:默认配置的是整个系统的,也可选择单进程抓取。 -+ Max Unwind Level:配置抓取调用栈的最大深度。 -再点击Record setting,在output file path输入文件名hiprofiler_data_bio.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 -![GitHub Logo](../../figures/Bio/Biorecord.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。 -![GitHub Logo](../../figures/Bio/Bioexcuting.jpg) -### Bio展示说明 -抓取结束后Bio的trace会自动加载展示。 + +- Start BIO Latency Record:配置项的总开关。 +- Process:默认配置的是整个系统的,也可选择单进程抓取。 +- Max Unwind Level:配置抓取调用栈的最大深度。 + 再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_bio.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 + ![GitHub Logo](../../figures/Bio/Biorecord.jpg) + 点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 + ![GitHub Logo](../../figures/Bio/Bioexcuting.jpg) + +### Bio 展示说明 + +抓取结束后 Bio 的 trace 会自动加载展示。 ![GitHub Logo](../../figures/Bio/Biosummary.jpg) -界面布局介绍:页内存整体界面布局分为3个部分: -+ 红色区域:泳道图。 -+ 绿色区域:详细信息。 -+ 黄色区域:辅助信息(Callstack)。 +界面布局介绍:页内存整体界面布局分为 3 个部分: + +- 红色区域:泳道图。 +- 绿色区域:详细信息。 +- 黄色区域:辅助信息(Callstack)。 -### Bio泳道图展示 -Bio泳道图鼠标悬浮以10ms为区间展示该周期内最大的读或者写延迟。 +### Bio 泳道图展示 + +Bio 泳道图鼠标悬浮以 10ms 为区间展示该周期内最大的读或者写延迟。 ![GitHub Logo](../../figures/Bio/Biochart.jpg) -### Bio泳道图的框选功能 -可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有三个tab页。 -Disk I/O Tier Statistics的Tab页如图: + +### Bio 泳道图的框选功能 + +可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有三个 tab 页。 +Disk I/O Tier Statistics 的 Tab 页如图: ![GitHub Logo](../../figures/Bio/Biostatistics.jpg) -+ Tier/Process/Path:按照Tier,Process,Path的维度去展示。 -+ Count:事件数量。 -+ Total Latency:每种进程,事件的总延迟。 -+ Min Total Latency:最小延迟时间。 -+ Avg Total Latency:平均延迟时间。 -+ Max Total Latency:最大延迟时间。 -Disk I/O Latency Calltree的Tab页如图: -![GitHub Logo](../../figures/Bio/BioCalltree.jpg) -+ Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 -+ Local:为该调用方法自身占用的CPU时间。 -+ Weight:调用方法的执行占比。 -Trace Completion Times的Tab页如图: -![GitHub Logo](../../figures/Bio/Biotimes.jpg) -+ Start:事件的开始时间。 -+ Total Latency:事件的延迟时间。 -+ Process:进程名(pid)。 -+ Thread:线程名(tid)。 -+ Latency per 4KB:原始数据里没有,每4k数据的延迟时间,需要根据延迟的size跟延迟的时间去计算。 -+ Opration:事件类型。 -+ Bytes:延迟的数据量。 -+ Path:操作的文件路径。 -+ Block Number:块数量。 -+ Tier:层级。 -+ BackTrace:调用栈顶部函数,并显示调用栈深度。 -### Bio支持多种Options展示风格 -点击Disk I/O Latency Calltree的Tab页底部的Options,会有两个CheckBox复选框。 + +- Tier/Process/Path:按照Tier,Process,Path的维度去展示。 +- Count:事件数量。 +- Total Latency:每种进程,事件的总延迟。 +- Min Total Latency:最小延迟时间。 +- Avg Total Latency:平均延迟时间。 +- Max Total Latency:最大延迟时间。 + Disk I/O Latency Calltree 的 Tab 页如图: + ![GitHub Logo](../../figures/Bio/BioCalltree.jpg) +- Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 +- Local:为该调用方法自身占用的CPU时间。 +- Weight:调用方法的执行占比。 + Trace Completion Times 的 Tab 页如图: + ![GitHub Logo](../../figures/Bio/Biotimes.jpg) +- Start:事件的开始时间。 +- Total Latency:事件的延迟时间。 +- Process:进程名(pid)。 +- Thread:线程名(tid)。 +- Latency per 4KB:原始数据里没有,每4k数据的延迟时间,需要根据延迟的size跟延迟的时间去计算。 +- Opration:事件类型。 +- Bytes:延迟的数据量。 +- Path:操作的文件路径。 +- Block Number:块数量。 +- Tier:层级。 +- BackTrace:调用栈顶部函数,并显示调用栈深度。 + +### Bio 支持多种 Options 展示风格 + +点击 Disk I/O Latency Calltree 的 Tab 页底部的 Options,会有两个 CheckBox 复选框。 ![GitHub Logo](../../figures/Bio/BioOptions.jpg) -+ Invert:反向输出调用树。 -+ Hide System so:隐藏系统库文件 。 -### Bio支持过滤调用栈调用次数的展示风格 -点击Disk I/O Latency Calltree的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 + +- Invert:反向输出调用树。 +- Hide System so:隐藏系统库文件 。 + +### Bio 支持过滤调用栈调用次数的展示风格 + +点击 Disk I/O Latency Calltree 的 Tab 页底部的 Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 ![GitHub Logo](../../figures/Bio/Biocounter.jpg) -### Bio功能的调用栈Group展示-数据分析支持剪裁功能 +### Bio 功能的调用栈 Group 展示-数据分析支持剪裁功能 + ![GitHub Logo](../../figures/Bio/Biodatamining.jpg) -+ 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 - -+ 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。 -+ 点击Reset按钮,将恢复选中的裁剪内容。 -### Bio功能的调用栈Group展示支持按条件过滤 -在Input Filter输入关键字,会显示出带有该关键字的展示信息。 - ![GitHub Logo](../../figures/Bio/Bioinputfilter.jpg) -### Bio辅助信息区展示调用栈 -当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的Heaviest Stack Trace: - ![GitHub Logo](../../figures/Bio/Bioheaviesttrace.jpg) -### Bio的Tier的过滤 - 通过选择根据Tier去过滤。 - ![GitHub Logo](../../figures/Bio/Biofilter.jpg) -### Bio的火焰图功能 -点击Disk I/O Latency Calltree左下角的柱状图的图标,会切换到火焰图页面。 + +- 裁剪 Callstack,点击 Callstack 上一个节点符号,再点击底部 Symbol Filter 按钮,则该符号自动被裁剪掉,同时将该节点往下所有的 Callstack 内容裁剪掉。 + +- 裁剪 Library,点击 Library Filter 按钮,则该库文件符号下所有的子节点也被裁剪。 +- 点击 Reset 按钮,将恢复选中的裁剪内容。 + +### Bio 功能的调用栈 Group 展示支持按条件过滤 + +在 Input Filter 输入关键字,会显示出带有该关键字的展示信息。 +![GitHub Logo](../../figures/Bio/Bioinputfilter.jpg) + +### Bio 辅助信息区展示调用栈 + +当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的 Heaviest Stack Trace: +![GitHub Logo](../../figures/Bio/Bioheaviesttrace.jpg) + +### Bio 的 Tier 的过滤 + +通过选择根据 Tier 去过滤。 +![GitHub Logo](../../figures/Bio/Biofilter.jpg) + +### Bio 的火焰图功能 + +点击 Disk I/O Latency Calltree 左下角的柱状图的图标,会切换到火焰图页面。 ![GitHub Logo](../../figures/Bio/Bioflame.jpg) -进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和Duration时长。 +进入到火焰图页面,火焰图的展示跟 Callinfo 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和 Duration 时长。 ![GitHub Logo](../../figures/Bio/Bioflameshow.jpg) 鼠标左键火焰图,会进入下一级界面,右键回到上一级。 ![GitHub Logo](../../figures/Bio/Bioflamelevel.jpg) - diff --git a/ide/src/doc/md/quickstart_device_record.md b/ide/src/doc/md/quickstart_device_record.md index 37598543..f072110f 100644 --- a/ide/src/doc/md/quickstart_device_record.md +++ b/ide/src/doc/md/quickstart_device_record.md @@ -1,37 +1,44 @@ -# 设备端抓取trace说明 -从设备端抓取trace文件的配置和方法。 +# 设备端抓取 trace 说明 + +从设备端抓取 trace 文件的配置和方法。 + ## 界面配置说明 + ![GitHub Logo](../../figures/hiprofilercmd/systraceconfig.jpg) 说明: -* Record setting:设置trace的抓取模式,buffer size大小,抓取时长。 -* Trace command:生成的抓取命令行。 -* Probes config:trace的抓取参数配置。 -* Native Memory:NativeMemory数据的抓取参数配置。 -* Hiperf:Hiperf数据的抓取参数配置。 -* eBPF Config:ebpf数据的抓取参数配置。 -* VM Tracker:smaps数据的抓取参数配置。 -* HiSystemEvent:HiSystemEvent数据抓取参数配置。 -* SDK Config:SDK数据抓取参数配置。 -## 命令行的生成和trace文件的抓取 -点击Probes config,如选择抓取Scheduling details。 + +- Record setting:设置 trace 的抓取模式,buffer size 大小,抓取时长。 +- Trace command:生成的抓取命令行。 +- Probes config:trace 的抓取参数配置。 +- Native Memory:NativeMemory 数据的抓取参数配置。 +- Hiperf:Hiperf 数据的抓取参数配置。 +- eBPF Config:ebpf 数据的抓取参数配置。 +- VM Tracker:smaps 数据的抓取参数配置。 +- HiSystemEvent:HiSystemEvent 数据抓取参数配置。 +- SDK Config:SDK 数据抓取参数配置。 + +## 命令行的生成和 trace 文件的抓取 + +点击 Probes config,如选择抓取 Scheduling details。 ![GitHub Logo](../../figures/hiprofilercmd/Scheduling.jpg) -再点击Record setting,在output file path输入文件名hiprofiler_data_example.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_example.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/hiprofilercmd/tracesetting.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 ![GitHub Logo](../../figures/hiprofilercmd/command.jpg) 命令参数说明: -* -o:文件的输入路径和名称。 -* -t:抓取的时长。 -* buffer pages:buffer size大小。 -* sample_duration:数据采集的时间。 -* sample_interval:主动获取插件数据的间隔时间(ms,只针对轮询插件,例如memory插件,cpu插件,dikio插件等,对流式插件和独立插件无效)。 -* trace_period_ms:ftrace插件读取内核缓冲区数据的间隔时间(ms)。 -* hitrace_time:hitrace命令行抓取时间,与hiprofiler_cmd下发的-t配置联动。 - -输入hdc_std shell,进入设备,执行命令。 + +- -o:文件的输入路径和名称。 +- -t:抓取的时长。 +- buffer pages:buffer size 大小。 +- sample_duration:数据采集的时间。 +- sample_interval:主动获取插件数据的间隔时间(ms,只针对轮询插件,例如 memory 插件,cpu 插件,dikio 插件等,对流式插件和独立插件无效)。 +- trace_period_ms:ftrace 插件读取内核缓冲区数据的间隔时间(ms)。 +- hitrace_time:hitrace 命令行抓取时间,与 hiprofiler_cmd 下发的-t 配置联动。 + +输入 hdc_std shell,进入设备,执行命令。 ![GitHub Logo](../../figures/hiprofilercmd/excutecommand.jpg) 执行完成后,命令行会给出提示。 ![GitHub Logo](../../figures/hiprofilercmd/commandend.jpg) -进入指定目录,cd /data/local/tmp 进入到目录,会看到生成的trace文件。 -![GitHub Logo](../../figures/hiprofilercmd/htrace.jpg) \ No newline at end of file +进入指定目录,cd /data/local/tmp 进入到目录,会看到生成的 trace 文件。 +![GitHub Logo](../../figures/hiprofilercmd/htrace.jpg) diff --git a/ide/src/doc/md/quickstart_filesystem.md b/ide/src/doc/md/quickstart_filesystem.md index 838175af..13128159 100644 --- a/ide/src/doc/md/quickstart_filesystem.md +++ b/ide/src/doc/md/quickstart_filesystem.md @@ -1,110 +1,136 @@ -# FileSystem的抓取和展示说明 -FileSystem分析文件系统的信息和活动,比如读和写操作等。 -## FileSystem的抓取 -### FileSystem抓取配置参数 +# FileSystem 的抓取和展示说明 + +FileSystem 分析文件系统的信息和活动,比如读和写操作等。 + +## FileSystem 的抓取 + +### FileSystem 抓取配置参数 + ![GitHub Logo](../../figures/FileSystem/filesystemsetting.jpg) 配置项说明: -+ Start FileSystem Record:配置项的总开关。 -+ Process:默认配置的是整个系统的,也可选择单进程抓取。 -+ Max Unwind Level:配置抓取调用栈的最大深度。 -再点击Record setting,在output file path输入文件名hiprofiler_data_filesystem.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 +- Start FileSystem Record:配置项的总开关。 +- Process:默认配置的是整个系统的,也可选择单进程抓取。 +- Max Unwind Level:配置抓取调用栈的最大深度。 + +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_filesystem.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/FileSystem/filesystemrecord.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 ![GitHub Logo](../../figures/FileSystem/FileSystemcommand.jpg) -输入hdc_std shell,进入设备,执行命令。 +输入 hdc_std shell,进入设备,执行命令。 ![GitHub Logo](../../figures/FileSystem/FileSystemexcutecommand.jpg) -执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 +执行完成后,进入指定目录查看,在/data/local/tmp 下就会生成 trace 文件。 ![GitHub Logo](../../figures/FileSystem/FileSystemfile.jpg) -### FileSystem展示说明 -将抓取的trace文件导入smartperf界面查看。 + +### FileSystem 展示说明 + +将抓取的 trace 文件导入 smartperf 界面查看。 ![GitHub Logo](../../figures/FileSystem/FileSystemsummary.jpg) -界面布局介绍:FileSystem整体界面布局分为3个部分: -+ 红色区域:泳道图。 -+ 绿色区域:详细信息。 -+ 黄色区域:辅助信息(Callstack)。 +界面布局介绍:FileSystem 整体界面布局分为 3 个部分: + +- 红色区域:泳道图。 +- 绿色区域:详细信息。 +- 黄色区域:辅助信息(Callstack)。 -### FileSystem泳道图展示 -FileSystem泳道图按照读操作和写操作展示,鼠标移动都泳道图上,悬浮框会以10ms为周期展示读,写类型系统调用的次数。 +### FileSystem 泳道图展示 + +FileSystem 泳道图按照读操作和写操作展示,鼠标移动都泳道图上,悬浮框会以 10ms 为周期展示读,写类型系统调用的次数。 ![GitHub Logo](../../figures/FileSystem/FileSystemchart.jpg) -按住w键放大界面,悬浮框会显示当前时刻的文件读写次数。 +按住 w 键放大界面,悬浮框会显示当前时刻的文件读写次数。 ![GitHub Logo](../../figures/FileSystem/FileSystemcount.jpg) -### FileSystem泳道图的框选功能 -可以对读写操作泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有五个tab页。 -FileSystem statistics的Tab页如图: + +### FileSystem 泳道图的框选功能 + +可以对读写操作泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有五个 tab 页。 +FileSystem statistics 的 Tab 页如图: ![GitHub Logo](../../figures/FileSystem/FileSystemstatistics.jpg) -+ Syscall/Process: 按照数据类型,进程分类显示。 -+ Count: 系统调用的数量。 -+ Logical Writes:写数据统计。 -+ Logical Reads:读数据统计。 -+ Other Filesystem Bytes:其他数据量。 -+ Duration:总时长。 -+ Min Duration:最小时长。 -+ Avg Duration: 平均时长。 -+ Max Duration:最大时长。 -FileSystem Calltree的Tab页如图: -![GitHub Logo](../../figures/FileSystem/FileSystemCalltree.jpg) -+ Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 -+ Local:为该调用方法自身占用的CPU时间。 -+ Weight:调用方法的执行占比。 -FileSystem Events的Tab页如图: -![GitHub Logo](../../figures/FileSystem/FileSystemevents.jpg) -+ Start: 起始时间。 -+ Duration:时长。 -+ Process:进程名。 -+ Thread:线程名。 -+ Firsr Argument:系统调用的第一个参数。 -+ Second Argument:系统调用的第二个参数。 -+ Third Argument:系统调用的第三个参数。 -+ Fourth Argument:系统调用的第四个参数。 -+ Retrun:系统调用的返回值。 -+ Error:错误码。 -+ Backtrace:调用栈顶部函数,并显示调用栈深度。 -File Descriptor History的Tab页如图: -![GitHub Logo](../../figures/FileSystem/FileSystemhistory.jpg) -+ Start: 起始时间。 -+ Duration:时长。 -+ Process:进程名。 -+ Type:操作类型。 -+ File Descriptor:fd。 -+ Backtrace:调用栈顶部函数,并显示调用栈深度。 -File Descriptor Time Slice的Tab页如图: -![GitHub Logo](../../figures/FileSystem/FileSystemtimeslice.jpg) -+ Open Time: 打开的起始时间。 -+ Open Duration:打开的时长。 -+ Process:进程名。 -+ File Descriptor:fd。 -+ Backtrace:调用栈顶部函数,并显示调用栈深度。 -### FileSystem支持多种Options展示风格 -点击FileSystem Calltree的Tab页底部的Options,会有两个CheckBox复选框。 + +- Syscall/Process: 按照数据类型,进程分类显示。 +- Count: 系统调用的数量。 +- Logical Writes:写数据统计。 +- Logical Reads:读数据统计。 +- Other Filesystem Bytes:其他数据量。 +- Duration:总时长。 +- Min Duration:最小时长。 +- Avg Duration: 平均时长。 +- Max Duration:最大时长。 + FileSystem Calltree 的 Tab 页如图: + ![GitHub Logo](../../figures/FileSystem/FileSystemCalltree.jpg) +- Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 +- Local:为该调用方法自身占用的CPU时间。 +- Weight:调用方法的执行占比。 + FileSystem Events 的 Tab 页如图: + ![GitHub Logo](../../figures/FileSystem/FileSystemevents.jpg) +- Start: 起始时间。 +- Duration:时长。 +- Process:进程名。 +- Thread:线程名。 +- Firsr Argument:系统调用的第一个参数。 +- Second Argument:系统调用的第二个参数。 +- Third Argument:系统调用的第三个参数。 +- Fourth Argument:系统调用的第四个参数。 +- Retrun:系统调用的返回值。 +- Error:错误码。 +- Backtrace:调用栈顶部函数,并显示调用栈深度。 + File Descriptor History 的 Tab 页如图: + ![GitHub Logo](../../figures/FileSystem/FileSystemhistory.jpg) +- Start: 起始时间。 +- Duration:时长。 +- Process:进程名。 +- Type:操作类型。 +- File Descriptor:fd。 +- Backtrace:调用栈顶部函数,并显示调用栈深度。 + File Descriptor Time Slice 的 Tab 页如图: + ![GitHub Logo](../../figures/FileSystem/FileSystemtimeslice.jpg) +- Open Time: 打开的起始时间。 +- Open Duration:打开的时长。 +- Process:进程名。 +- File Descriptor:fd。 +- Backtrace:调用栈顶部函数,并显示调用栈深度。 + +### FileSystem 支持多种 Options 展示风格 + +点击 FileSystem Calltree 的 Tab 页底部的 Options,会有两个 CheckBox 复选框。 ![GitHub Logo](../../figures/FileSystem/FileSystemOptions.jpg) -+ Invert:反向输出调用树。 -+ Hide System so:隐藏系统库文件。 -### FileSystem支持过滤调用栈调用次数的展示风格 -点击FileSystem Calltree的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 + +- Invert:反向输出调用树。 +- Hide System so:隐藏系统库文件。 + +### FileSystem 支持过滤调用栈调用次数的展示风格 + +点击 FileSystem Calltree 的 Tab 页底部的 Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 ![GitHub Logo](../../figures/FileSystem/FileSystemsamplecounter.jpg) -### FileSystem功能的调用栈Group展示-数据分析支持剪裁功能 +### FileSystem 功能的调用栈 Group 展示-数据分析支持剪裁功能 + ![GitHub Logo](../../figures/FileSystem/FileSystemdatamining.jpg) -+ 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 - -+ 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。 -+ 点击Reset按钮,将恢复选中的裁剪内容。 -### FileSystem功能的调用栈Group展示支持按条件过滤 -在Input Filter输入关键字,会显示出带有该关键字的展示信息。 - ![GitHub Logo](../../figures/FileSystem/FileSysteminputfilter.jpg) -### FileSystem辅助信息区展示调用栈 -当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的Heaviest Stack Trace: - ![GitHub Logo](../../figures/FileSystem/FileSystemheaviesttrace.jpg) -### FileSystem的事件类型的过滤 - 通过选择可以过滤是Open类型,还是Close类型事件。 - ![GitHub Logo](../../figures/FileSystem/filesystemfilter.jpg) -### FileSystem的火焰图功能 -点击FileSystem Calltre左下角的柱状图的图标,会切换到火焰图页面。 + +- 裁剪 Callstack,点击 Callstack 上一个节点符号,再点击底部 Symbol Filter 按钮,则该符号自动被裁剪掉,同时将该节点往下所有的 Callstack 内容裁剪掉。 + +- 裁剪 Library,点击 Library Filter 按钮,则该库文件符号下所有的子节点也被裁剪。 +- 点击 Reset 按钮,将恢复选中的裁剪内容。 + +### FileSystem 功能的调用栈 Group 展示支持按条件过滤 + +在 Input Filter 输入关键字,会显示出带有该关键字的展示信息。 +![GitHub Logo](../../figures/FileSystem/FileSysteminputfilter.jpg) + +### FileSystem 辅助信息区展示调用栈 + +当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的 Heaviest Stack Trace: +![GitHub Logo](../../figures/FileSystem/FileSystemheaviesttrace.jpg) + +### FileSystem 的事件类型的过滤 + +通过选择可以过滤是 Open 类型,还是 Close 类型事件。 +![GitHub Logo](../../figures/FileSystem/filesystemfilter.jpg) + +### FileSystem 的火焰图功能 + +点击 FileSystem Calltre 左下角的柱状图的图标,会切换到火焰图页面。 ![GitHub Logo](../../figures/FileSystem/FileSystemflame.jpg) -进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和Duration时长。 +进入到火焰图页面,火焰图的展示跟 Callinfo 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和 Duration 时长。 ![GitHub Logo](../../figures/FileSystem/FileSystemflameshow.jpg) 鼠标左键火焰图,会进入下一级界面,右键回到上一级。 ![GitHub Logo](../../figures/FileSystem/FileSystemflamelevel.jpg) - diff --git a/ide/src/doc/md/quickstart_hilog.md b/ide/src/doc/md/quickstart_hilog.md deleted file mode 100644 index 622beb5d..00000000 --- a/ide/src/doc/md/quickstart_hilog.md +++ /dev/null @@ -1,22 +0,0 @@ -# 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 diff --git a/ide/src/doc/md/quickstart_hiperf.md b/ide/src/doc/md/quickstart_hiperf.md index 2f3c80bf..467a02e5 100644 --- a/ide/src/doc/md/quickstart_hiperf.md +++ b/ide/src/doc/md/quickstart_hiperf.md @@ -1,79 +1,102 @@ -# HiPerf的抓取和展示说明 -HiPerf工具是对系统性能数据进行采样记录,并将采样数据保存为文件,进行读取,展示分析。 -## HiPerf的抓取 -### HiPerf抓取配置参数 +# 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) -### HiPerf展示说明 -将抓取的trace文件导入smartperf界面查看。 + +- 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 整体界面布局分为 3 个部分: -### HiPerf泳道图展示 -Perf泳道图展示按照CPU使用量和线程和进程展示,鼠标移动到泳道图上,悬浮框会显示CPU的使用量。 +- 红色区域:泳道图。 +- 绿色区域:详细信息(Perf Profile和Sample List)。 +- 黄色区域:辅助信息(Callstack)。 + +### HiPerf 泳道图展示 + +Perf 泳道图展示按照 CPU 使用量和线程和进程展示,鼠标移动到泳道图上,悬浮框会显示 CPU 的使用量。 ![GitHub Logo](../../figures/perf/chart.jpg) -按住w键放大界面,泳道图会出现P的标志,鼠标移动到P图标上,悬浮框会显示每个callstack和调用的深度如下图。 +按住 w 键放大界面,泳道图会出现 P 的标志,鼠标移动到 P 图标上,悬浮框会显示每个 callstack 和调用的深度如下图。 ![GitHub Logo](../../figures/perf/callstack.jpg) -### HiPerf泳道图的框选功能 -可以对CPU使用量区,线程和进程区数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个tab页。 -Perf Profile的Tab页如图: + +### 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:栈顶的调用栈名称。 - -### HiPerf支持多种Options展示风格 -点击Perf Profile的Tab页底部的Options,会有两个CheckBox复选框。 + +- 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:隐藏系统库文件。 -### HiPerf支持过滤调用栈调用次数的展示风格 -点击Perf Profile的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 + +- Invert:反向输出调用树。 +- Hide System so:隐藏系统库文件。 + +### HiPerf 支持过滤调用栈调用次数的展示风格 + +点击 Perf Profile 的 Tab 页底部的 Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 ![GitHub Logo](../../figures/perf/samplecounter.jpg) -### HiPerf功能的调用栈Group展示-数据分析支持剪裁功能 +### HiPerf 功能的调用栈 Group 展示-数据分析支持剪裁功能 + ![GitHub Logo](../../figures/perf/datamining.jpg) -+ 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 - -+ 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。 -+ 点击Reset按钮,将恢复选中的裁剪内容。 -### HiPerf功能的调用栈Group展示支持按条件过滤 -在Input Filter输入关键字,会显示出带有该关键字的展示信息。 - ![GitHub Logo](../../figures/perf/inputfilter.jpg) -### HiPerf辅助信息区展示调用栈 -当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。对上展示到根节点,对下则展示CPU占用率最大的调用栈。调用栈右侧有Sliding bar可以滚动。 -如下图的Heaviest Stack Trace: - ![GitHub Logo](../../figures/perf/heaviesttrace1.jpg) -### HiPerf的火焰图功能 -点击Perf Profile左下角的柱状图的图标,会切换到火焰图页面。 + +- 裁剪 Callstack,点击 Callstack 上一个节点符号,再点击底部 Symbol Filter 按钮,则该符号自动被裁剪掉,同时将该节点往下所有的 Callstack 内容裁剪掉。 + +- 裁剪 Library,点击 Library Filter 按钮,则该库文件符号下所有的子节点也被裁剪。 +- 点击 Reset 按钮,将恢复选中的裁剪内容。 + +### HiPerf 功能的调用栈 Group 展示支持按条件过滤 + +在 Input Filter 输入关键字,会显示出带有该关键字的展示信息。 +![GitHub Logo](../../figures/perf/inputfilter.jpg) + +### HiPerf 辅助信息区展示调用栈 + +当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。对上展示到根节点,对下则展示 CPU 占用率最大的调用栈。调用栈右侧有 Sliding bar 可以滚动。 +如下图的 Heaviest Stack Trace: +![GitHub Logo](../../figures/perf/heaviesttrace1.jpg) + +### HiPerf 的火焰图功能 + +点击 Perf Profile 左下角的柱状图的图标,会切换到火焰图页面。 ![GitHub Logo](../../figures/perf/flame.jpg) -进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和count大小。 +进入到火焰图页面,火焰图的展示跟 Callinfo 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和 count 大小。 ![GitHub Logo](../../figures/perf/flameshow.jpg) 鼠标左键火焰图,会进入下一级界面,右键回到上一级。 ![GitHub Logo](../../figures/perf/flamelevel2.jpg) - diff --git a/ide/src/doc/md/quickstart_hisystemevent.md b/ide/src/doc/md/quickstart_hisystemevent.md index 618941ff..d182575f 100644 --- a/ide/src/doc/md/quickstart_hisystemevent.md +++ b/ide/src/doc/md/quickstart_hisystemevent.md @@ -1,81 +1,92 @@ -# HiSystemEvent的抓取和展示说明 - HiSystemEvent应用功耗模块主要是展示应用的各个子类别功耗占比信息、应用的资源申请使用记录信息、应用功耗异常事件信息、功耗关联系统状态信息。 -## HiSystemEvent的抓取 -### HiSystemEvent抓取配置参数 -打开Start Hisystem Event Tracker Record开关抓取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。 +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_hisystemevent.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventrecord.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 ![GitHub Logo](../../figures/HiSystemEvent/hisystemcommand.jpg) -输入hdc_std shell,进入设备,执行上述生成的命令。 +输入 hdc_std shell,进入设备,执行上述生成的命令。 ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventemexcute.jpg) -执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 +执行完成后,进入指定目录查看,在/data/local/tmp 下就会生成 trace 文件。 ![GitHub Logo](../../figures/HiSystemEvent/hisystemeventfile.jpg) -### HiSystemEvent展示说明 -### HiSystemEvent泳道图展示 -将抓取的trace文件导入smartperf界面查看。 + +### HiSystemEvent 展示说明 + +### HiSystemEvent 泳道图展示 + +将抓取的 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:关)。 -### HiSystemEvent泳道图的框选功能 -可以对Energy各泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格。 -System Details的Tab页如图: + +- 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 各泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格。 +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(%):功耗占比。 \ No newline at end of file + +- 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(%):功耗占比。 diff --git a/ide/src/doc/md/quickstart_memory_template.md b/ide/src/doc/md/quickstart_memory_template.md index d994f5a0..ed0c12ba 100644 --- a/ide/src/doc/md/quickstart_memory_template.md +++ b/ide/src/doc/md/quickstart_memory_template.md @@ -1,148 +1,167 @@ # 系统内存抓取和展示说明 + 系统内存分析模板帮助系统内存调优人员进行进程内存拆解。 + ## 系统内存的抓取 + #### 系统内存的抓取配置参数 -打开VM Tracker开关抓取内存数据。 + +打开 VM Tracker 开关抓取内存数据。 ![GitHub Logo](../../figures/Allmemory/allmemorycofig.jpg) + ### 系统内存展示说明 -将抓取的内存文件导入到smartperf中,查看进程内存的情况。 + +将抓取的内存文件导入到 smartperf 中,查看进程内存的情况。 ![GitHub Logo](../../figures/Allmemory/allmemoryrow.jpg) -### 系统内存中Ability Monitor泳道图显示 -Ability Monitor泳道图分为MemoryTotal,Cached,SwapTotal,System Purgeable Total,System Purgeable Pin,DMA,Skia Gpu Memory泳道。 + +### 系统内存中 Ability Monitor 泳道图显示 + +Ability Monitor 泳道图分为 MemoryTotal,Cached,SwapTotal,System Purgeable Total,System Purgeable Pin,DMA,Skia Gpu Memory 泳道。 ![GitHub Logo](../../figures/Allmemory/abrow.jpg) -### 系统内存中Ability Monitor泳道图点选功能 -System Purgeable Total泳道图点选功能。 + +### 系统内存中 Ability Monitor 泳道图点选功能 + +System Purgeable Total 泳道图点选功能。 ![GitHub Logo](../../figures/Allmemory/purtotalselect.jpg) -+ TimeStamp:时间戳。 -+ ActivePurg:当前时间点的ActivePurg内存。 -+ InActivePurg:当前时间点的InActivePurg内存。 -+ ShmPurg:当前时间点的ShmPurg内存。 -System Purgeable Total泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/purtotaldrag.jpg) -+ Type:内存的类别。 -+ AvgSize:当前内存的平均值。 -+ MaxSize:当前内存的最大值。 -+ MinSize:当前内存的最小值。 -System Purgeable Pin泳道图点选功能。 -![GitHub Logo](../../figures/Allmemory/purpinselect.jpg) -+ TimeStamp:时间戳。 -+ PinedPurg:当前时间点的PinedPurg内存。 -+ ShmPurg:当前时间点的ShmPurg内存。 -System Purgeable Pin泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/purpindrag.jpg) -+ Type:内存的类别。 -+ AvgSize:当前内存的平均值。 -+ MaxSize:当前内存的最大值。 -+ MinSize:当前内存的最小值。 -DMA泳道图点选功能。 -![GitHub Logo](../../figures/Allmemory/dmaselect.jpg) -+ TimeStamp:时间戳。 -+ Process(pid):进程名(进程ID)。 -+ Fd:DMA内存文件描述符。 -+ Size:DMA内存大小。 -+ Ino:Ino值。 -+ ExpPid:申请者的进程号。 -+ ExpTaskComm:ExpTaskComm的值。 -+ BufName:DMA内存名。 -+ ExpName:申请者的进程名。 -+ Flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据。 -DMA泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/dmadrag.jpg) -+ Process(pid):进程名(进程ID)。 -+ SumSize:DMA内存总量。 -+ AvgSize:DMA内存的平均值。 -+ MaxSize:DMA内存的最大值。 -+ MinSize:DMA内存的最小值。 -Skia Gpu Memory泳道图点选功能。 -![GitHub Logo](../../figures/Allmemory/sgpumemselect.jpg) -+ TimeStamp:时间戳。 -+ GpuName:Gpu名称。 -+ Process(pid):进程名(进程ID)。。 -+ Size:对应进程的Gpu的使用size。 -Skia Gpu Memory泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/sgpumemdrag.jpg) -+ GpuName:Gpu名称。 -+ Process(pid):进程名(进程ID)。 -+ SumSize:Gpu内存总量。 -+ AvgSize:Gpu内存的平均值。 -+ MaxSize:Gpu内存的最大值。 -+ MinSize:Gpu内存的最小值。 -### VM Tracker下的smaps泳道图展示 -smaps泳道图分为Dirty,Swapped,RSS,PSS,USS泳道图。 + +- TimeStamp:时间戳。 +- ActivePurg:当前时间点的ActivePurg内存。 +- InActivePurg:当前时间点的InActivePurg内存。 +- ShmPurg:当前时间点的ShmPurg内存。 + System Purgeable Total 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/purtotaldrag.jpg) +- Type:内存的类别。 +- AvgSize:当前内存的平均值。 +- MaxSize:当前内存的最大值。 +- MinSize:当前内存的最小值。 + System Purgeable Pin 泳道图点选功能。 + ![GitHub Logo](../../figures/Allmemory/purpinselect.jpg) +- TimeStamp:时间戳。 +- PinedPurg:当前时间点的PinedPurg内存。 +- ShmPurg:当前时间点的ShmPurg内存。 + System Purgeable Pin 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/purpindrag.jpg) +- Type:内存的类别。 +- AvgSize:当前内存的平均值。 +- MaxSize:当前内存的最大值。 +- MinSize:当前内存的最小值。 + DMA 泳道图点选功能。 + ![GitHub Logo](../../figures/Allmemory/dmaselect.jpg) +- TimeStamp:时间戳。 +- Process(pid):进程名(进程ID)。 +- Fd:DMA内存文件描述符。 +- Size:DMA内存大小。 +- Ino:Ino值。 +- ExpPid:申请者的进程号。 +- ExpTaskComm:ExpTaskComm的值。 +- BufName:DMA内存名。 +- ExpName:申请者的进程名。 +- Flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据。 + DMA 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/dmadrag.jpg) +- Process(pid):进程名(进程ID)。 +- SumSize:DMA内存总量。 +- AvgSize:DMA内存的平均值。 +- MaxSize:DMA内存的最大值。 +- MinSize:DMA内存的最小值。 + Skia Gpu Memory 泳道图点选功能。 + ![GitHub Logo](../../figures/Allmemory/sgpumemselect.jpg) +- TimeStamp:时间戳。 +- GpuName:Gpu名称。 +- Process(pid):进程名(进程ID)。。 +- Size:对应进程的Gpu的使用size。 + Skia Gpu Memory 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/sgpumemdrag.jpg) +- GpuName:Gpu名称。 +- Process(pid):进程名(进程ID)。 +- SumSize:Gpu内存总量。 +- AvgSize:Gpu内存的平均值。 +- MaxSize:Gpu内存的最大值。 +- MinSize:Gpu内存的最小值。 + +### VM Tracker 下的 smaps 泳道图展示 + +smaps 泳道图分为 Dirty,Swapped,RSS,PSS,USS 泳道图。 ![GitHub Logo](../../figures/Allmemory/smapsallrow.jpg) -### VM Tracker下的smaps泳道图的点选和框选功能 -点选和框选Dirty,Swapped,RSS,PSS,USS的5个泳道图中任一个显示的都是一样的内容,会显示Smaps Statistic和Smaps sample的tab页。 -Smaps Statistic的tab页展示。 + +### VM Tracker 下的 smaps 泳道图的点选和框选功能 + +点选和框选 Dirty,Swapped,RSS,PSS,USS 的 5 个泳道图中任一个显示的都是一样的内容,会显示 Smaps Statistic 和 Smaps sample 的 tab 页。 +Smaps Statistic 的 tab 页展示。 ![GitHub Logo](../../figures/Allmemory/sstaaticstab.jpg) -+ Type: 将抓取到的信息根据Type归类。 -+ Path:虚拟内存块路径,类型中有多个则显示multiple。 -+ Size:在该虚拟内存块路径下内存的size总和。 -+ % of Res: 每行的Resident Size 占总Ressident Size的比例。 -+ Count:统计的类型个数。 -+ Rss: smaps节点中Rss。 -+ Pss: smaps节点中Pss。 -+ SharedClean: smaps节点中SharedClean。 -+ SharedDirty:smaps节点中Shared_Dirty。 -+ PrivateClean: smaps节点中PrivateClean。 -+ PrivateDirty:smaps节点中PrivateDirty。 -+ Swap:smaps节点中Swap。 -+ SwapPss:smaps节点中SwapPss。 -Smaps sample的tab页展示。 -![GitHub Logo](../../figures/Allmemory/ssampletab.jpg) -+ TimeStamp: 时间戳信息。 -+ Type: 将抓取到的信息根据Type归类。 -+ Path:虚拟内存块路径,类型中有多个则显示multiple。 -+ Address Range:每段虚拟内存段的开始和结束位置。 -+ Rss: smaps节点中Rss。 -+ Pss: smaps节点中Pss。 -+ SharedClean: smaps节点中SharedClean。 -+ SharedDirty:smaps节点中Shared_Dirty。 -+ PrivateClean: smaps节点中PrivateClean。 -+ PrivateDirty:smaps节点中PrivateDirty。 -+ Swap:smaps节点中Swap。 -+ SwapPss:smaps节点中SwapPss。 -+ Reside: Rss / Size 比值。 -+ Protection: 内存块的权限(读写执行执行)。 -### VM Tracker下的GPU泳道图展示 -smaps泳道图分为GL,Skia Gpu Dump Toal,Skia Gpu Dump Window,Skia Gpu Memory泳道图。 + +- Type: 将抓取到的信息根据Type归类。 +- Path:虚拟内存块路径,类型中有多个则显示multiple。 +- Size:在该虚拟内存块路径下内存的size总和。 +- % of Res: 每行的Resident Size 占总Ressident Size的比例。 +- Count:统计的类型个数。 +- Rss: smaps节点中Rss。 +- Pss: smaps节点中Pss。 +- SharedClean: smaps节点中SharedClean。 +- SharedDirty:smaps节点中Shared_Dirty。 +- PrivateClean: smaps节点中PrivateClean。 +- PrivateDirty:smaps节点中PrivateDirty。 +- Swap:smaps节点中Swap。 +- SwapPss:smaps节点中SwapPss。 + Smaps sample 的 tab 页展示。 + ![GitHub Logo](../../figures/Allmemory/ssampletab.jpg) +- TimeStamp: 时间戳信息。 +- Type: 将抓取到的信息根据Type归类。 +- Path:虚拟内存块路径,类型中有多个则显示multiple。 +- Address Range:每段虚拟内存段的开始和结束位置。 +- Rss: smaps节点中Rss。 +- Pss: smaps节点中Pss。 +- SharedClean: smaps节点中SharedClean。 +- SharedDirty:smaps节点中Shared_Dirty。 +- PrivateClean: smaps节点中PrivateClean。 +- PrivateDirty:smaps节点中PrivateDirty。 +- Swap:smaps节点中Swap。 +- SwapPss:smaps节点中SwapPss。 +- Reside: Rss / Size 比值。 +- Protection: 内存块的权限(读写执行执行)。 + +### VM Tracker 下的 GPU 泳道图展示 + +smaps 泳道图分为 GL,Skia Gpu Dump Toal,Skia Gpu Dump Window,Skia Gpu Memory 泳道图。 ![GitHub Logo](../../figures/Allmemory/gpurow.jpg) -Skia Gpu Memory泳道图点选功能。 +Skia Gpu Memory 泳道图点选功能。 ![GitHub Logo](../../figures/Allmemory/vgpumemselect.jpg) -+ TimeStamp:时间戳。 -+ GpuName:Gpu名称。 -+ Thread(tid):线程名(线程ID)。 -+ Size:对应线程的Gpu的使用size。 -Skia Gpu Memory泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/vgpumemdrag.jpg) -+ GpuName:Gpu名称。 -+ Thread(tid):线程名(线程ID)。 -+ SumSize:Gpu内存总量。 -+ AvgSize:Gpu内存的平均值。 -+ MaxSize:Gpu内存的最大值。 -+ MinSize:Gpu内存的最小值。 -Gl泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/vglrag.jpg) -+ TimeStamp:时间戳。 -+ GL_PSS:GL_PSS的大小。 -Skia Gpu Dump Toal泳道图点选功能。 -![GitHub Logo](../../figures/Allmemory/vgputotalselect.jpg) -+ Module / Category:模块/目录。 -+ Size:按照模块/目录显示size大小。 -Skia Gpu Dump Toal泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/vgputotaldrag.jpg) -+ TimeStamp:时间戳。 -+ Module / Category:模块/目录。 -+ AvgSize:对应模块/目录下size的平均值。 -+ MaxSize:对应模块/目录下size的最大值。 -+ MinSize:对应模块/目录下size的最小值。 -Skia Gpu Dump Window泳道图点选功能。 -![GitHub Logo](../../figures/Allmemory/vgpuwindowselect.jpg) -+ Window / Module / Category:窗口/模块/目录。 -+ Size:按照窗口/模块/目录显示size大小。 -Skia Gpu Dump Window泳道图框选功能。 -![GitHub Logo](../../figures/Allmemory/vgpuwindowdrag.jpg) -+ TimeStamp:时间戳。 -+ Window / Module / Category:窗口/模块/目录。 -+ AvgSize:对应窗口/模块/目录下size的平均值。 -+ MaxSize:对应窗口/模块/目录下size的最大值。 -+ MinSize:对应窗口/模块/目录下size的最小值。 \ No newline at end of file + +- TimeStamp:时间戳。 +- GpuName:Gpu名称。 +- Thread(tid):线程名(线程ID)。 +- Size:对应线程的Gpu的使用size。 + Skia Gpu Memory 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/vgpumemdrag.jpg) +- GpuName:Gpu名称。 +- Thread(tid):线程名(线程ID)。 +- SumSize:Gpu内存总量。 +- AvgSize:Gpu内存的平均值。 +- MaxSize:Gpu内存的最大值。 +- MinSize:Gpu内存的最小值。 + Gl 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/vglrag.jpg) +- TimeStamp:时间戳。 +- GL_PSS:GL_PSS的大小。 + Skia Gpu Dump Toal 泳道图点选功能。 + ![GitHub Logo](../../figures/Allmemory/vgputotalselect.jpg) +- Module / Category:模块/目录。 +- Size:按照模块/目录显示size大小。 + Skia Gpu Dump Toal 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/vgputotaldrag.jpg) +- TimeStamp:时间戳。 +- Module / Category:模块/目录。 +- AvgSize:对应模块/目录下size的平均值。 +- MaxSize:对应模块/目录下size的最大值。 +- MinSize:对应模块/目录下size的最小值。 + Skia Gpu Dump Window 泳道图点选功能。 + ![GitHub Logo](../../figures/Allmemory/vgpuwindowselect.jpg) +- Window / Module / Category:窗口/模块/目录。 +- Size:按照窗口/模块/目录显示size大小。 + Skia Gpu Dump Window 泳道图框选功能。 + ![GitHub Logo](../../figures/Allmemory/vgpuwindowdrag.jpg) +- TimeStamp:时间戳。 +- Window / Module / Category:窗口/模块/目录。 +- AvgSize:对应窗口/模块/目录下size的平均值。 +- MaxSize:对应窗口/模块/目录下size的最大值。 +- MinSize:对应窗口/模块/目录下size的最小值。 diff --git a/ide/src/doc/md/quickstart_native_memory.md b/ide/src/doc/md/quickstart_native_memory.md index 497f5a36..b95b8d77 100644 --- a/ide/src/doc/md/quickstart_native_memory.md +++ b/ide/src/doc/md/quickstart_native_memory.md @@ -1,108 +1,131 @@ -# Native Memory抓取和展示说明 -Native Memory是查看内存的分配和释放等情况。 -## Native Memory的抓取 -### Native Memory抓取配置参数 +# 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:统计数据上报。 -* statistics interval:统计数据上报周期。 - -再点击Record setting,在output file path输入文件名hiprofiler_data_nativememory.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 + +- 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:统计数据上报。 +- statistics interval:统计数据上报周期。 + +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_nativememory.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/NativeMemory/nativememoryset.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 ![GitHub Logo](../../figures/NativeMemory/nativememorycommand.jpg) 命令行参数说明: -* save_file:是否将hook数据保存成文件,不上报protobuf形式数据给hiprofilerd。 -* filter_size:过滤malloc的大小,最小值是0,默认值是4096Byte。 -* smb_pages:nativedeamon与libnativehook间的共享内存大小。 -* max_stack_depth:最多回栈的层数,也就是抓取的栈的最大深度。 -* fp_unwind:是否进行fp回栈。 -* malloc_free_matching_interval:native_daemon从nativehook so的共享内存里取数据的间隔时间。 -* string_compressed:是否进行字符串压缩。 -* fp_unwind:fp回栈。 - -输入hdc_std shell,进入设备,执行命令。 + +- save_file:是否将 hook 数据保存成文件,不上报 protobuf 形式数据给 hiprofilerd。 +- filter_size:过滤 malloc 的大小,最小值是 0,默认值是 4096Byte。 +- smb_pages:nativedeamon 与 libnativehook 间的共享内存大小。 +- max_stack_depth:最多回栈的层数,也就是抓取的栈的最大深度。 +- fp_unwind:是否进行 fp 回栈。 +- malloc_free_matching_interval:native_daemon 从 nativehook so 的共享内存里取数据的间隔时间。 +- string_compressed:是否进行字符串压缩。 +- fp_unwind:fp 回栈。 + +输入 hdc_std shell,进入设备,执行命令。 ![GitHub Logo](../../figures/NativeMemory/nativeexcutecommand.jpg) -执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 +执行完成后,进入指定目录查看,在/data/local/tmp 下就会生成 trace 文件。 ![GitHub Logo](../../figures/NativeMemory/naitvememoryfile.jpg) -## Native Memory展示说明 -将抓取的nativememory文件导入到smartperf工具中查看,查看内存的分配和释放等情况。 -### Native Memory泳道图展示类型 + +## 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分配的内存。 -### Native Memory泳道图的框选功能 -可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有四个tab页。 -Statistics的Tab页,主要显示了统计明细类型。 + +- 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:内存的类型。 -+ Exsiting:框选区域内申请没有释放的大小。 -+ #Exsiting:框选区域内申请没有释放的次数。 -+ Transient:框选区域内释放的大小。 -+ #Transient:框选区域内释放的次数。 -+ Total Bytes:框选区间内申请的大小。 -+ #Total: 框选区间内申请的次数。 -+ Peak Value: 框选区间内内存申请的峰值。 -+ Exsiting/Total:框选区间内剩余的内存比上申请的内存,其中浅紫色是框选区间内申请的大小/整个时间轴(申请+释放的总大小),深紫色是框选区间内(申请+释放)的大小/整个时间轴(申请+释放的总大小)。 - -Call Info的Tab页,主要显示了调用树详细类型。 + +- Memory Type:内存的类型。 +- Exsiting:框选区域内申请没有释放的大小。 +- #Exsiting:框选区域内申请没有释放的次数。 +- Transient:框选区域内释放的大小。 +- #Transient:框选区域内释放的次数。 +- Total Bytes:框选区间内申请的大小。 +- #Total: 框选区间内申请的次数。 +- Peak Value: 框选区间内内存申请的峰值。 +- Exsiting/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的增长量,是计算的每一次分配的。 -+ #Exsiting :仍然存在的内存数。 -### Native Memory的辅助信息功能 -在Call Info和Native Memory的Tab页,点击选中某一行,右边画红线处会显示出该行调用栈的树结构信息。 + +- 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的增长量,是计算的每一次分配的。 +- #Exsiting :仍然存在的内存数。 + +### Native Memory 的辅助信息功能 + +在 Call Info 和 Native Memory 的 Tab 页,点击选中某一行,右边画红线处会显示出该行调用栈的树结构信息。 ![GitHub Logo](../../figures/NativeMemory/nativecallstack.jpg) -### Native Memory详细显示的过滤功能 -点击下方的All Allocations可以对Allocation的lifeSpan进行过滤,有三个选择:All Allocatios,Create & Exsiting,Create & Destroyed。 + +### Native Memory 详细显示的过滤功能 + +点击下方的 All Allocations 可以对 Allocation 的 lifeSpan 进行过滤,有三个选择:All Allocatios,Create & Exsiting,Create & Destroyed。 ![GitHub Logo](../../figures/NativeMemory/lifespan.jpg) -+ All Allocations:所有的内存。 -+ Created & Exsiting:创建且被存活的内存。 -+ 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左下角的柱状图的图标,会切换到火焰图页面。 + +- All Allocations:所有的内存。 +- Created & Exsiting:创建且被存活的内存。 +- 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 左下角的柱状图的图标,会切换到火焰图页面。 ![GitHub Logo](../../figures/NativeMemory/nativeflame.jpg) -进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和size大小。 +进入到火焰图页面,火焰图的展示跟 Callinfo 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和 size 大小。 ![GitHub Logo](../../figures/NativeMemory/nativeflameshow.jpg) 鼠标左键火焰图,会进入下一级界面,右键回到上一级。 ![GitHub Logo](../../figures/NativeMemory/nativeflamelevel2.jpg) -### Native Memory数据统计功能 -选择Use Record Statistics和statistics interval配置项抓取的数据,只会显示Call Info的Tab页,Call Info相关功能同上。 -![GitHub Logo](../../figures/NativeMemory/statiscsCallInfo.jpg) +### Native Memory 数据统计功能 + +选择 Use Record Statistics 和 statistics interval 配置项抓取的数据,只会显示 Call Info 的 Tab 页,Call Info 相关功能同上。 +![GitHub Logo](../../figures/NativeMemory/statiscsCallInfo.jpg) diff --git a/ide/src/doc/md/quickstart_page_fault.md b/ide/src/doc/md/quickstart_page_fault.md index c4461c35..b3968ce9 100644 --- a/ide/src/doc/md/quickstart_page_fault.md +++ b/ide/src/doc/md/quickstart_page_fault.md @@ -1,84 +1,110 @@ # 页内存的抓取和展示说明 -页内存从page层面更深层次剖析应用程序的虚拟内存操作。 + +页内存从 page 层面更深层次剖析应用程序的虚拟内存操作。 + ## 页内存的抓取 + ### 页内存抓取配置参数 + ![GitHub Logo](../../figures/EBPF/ebpfsetting.jpg) 配置项说明: -+ Start Page Fault Record:配置项的总开关。 -+ Process:默认配置的是整个系统的,也可选择单进程抓取。 -+ Max Unwind Level:配置抓取调用栈的最大深度。 -再点击Record setting,在output file path输入文件名hiprofiler_data_ebpf.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 +- Start Page Fault Record:配置项的总开关。 +- Process:默认配置的是整个系统的,也可选择单进程抓取。 +- Max Unwind Level:配置抓取调用栈的最大深度。 + +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_ebpf.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/EBPF/ebpfrecord.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 ![GitHub Logo](../../figures/EBPF/ebpfexcuting.jpg) + ### 页内存展示说明 -抓取结束后页内存的trace会自动加载展示。 + +抓取结束后页内存的 trace 会自动加载展示。 ![GitHub Logo](../../figures/EBPF/ebpfsummary.jpg) -界面布局介绍:页内存整体界面布局分为3个部分: -+ 红色区域:泳道图。 -+ 绿色区域:详细信息。 -+ 黄色区域:辅助信息(Callstack)。 +界面布局介绍:页内存整体界面布局分为 3 个部分: + +- 红色区域:泳道图。 +- 绿色区域:详细信息。 +- 黄色区域:辅助信息(Callstack)。 ### 页内存泳道图展示 -页内存泳道图展示事件(Operation)发生的次数,每个事件都有持续时间,鼠标悬浮以10ms为区间进行次数统计。 + +页内存泳道图展示事件(Operation)发生的次数,每个事件都有持续时间,鼠标悬浮以 10ms 为区间进行次数统计。 ![GitHub Logo](../../figures/EBPF/EBPFchart.jpg) -按住w键放大界面,悬浮框会显示当前时刻的事件发生次数。 +按住 w 键放大界面,悬浮框会显示当前时刻的事件发生次数。 ![GitHub Logo](../../figures/EBPF/EBPFcount.jpg) + ### 页内存泳道图的框选功能 -可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有三个tab页。 -Page Fault Statistics的Tab页如图: + +可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有三个 tab 页。 +Page Fault Statistics 的 Tab 页如图: ![GitHub Logo](../../figures/EBPF/vmstatistics.jpg) -+ Operation/Process/Thread: 按照Operation为基点显示。 -+ Count: 事件数量。 -+ Duration:总时长。 -+ Min Duration:最小时长。 -+ Avg Duration: 平均时长。 -+ Max Duration:最大时长。 -点击下方的Statistics by Thread,可以切换到按照Thread为基点显示数据。 -![GitHub Logo](../../figures/EBPF/ebpf_bythread.jpg) -Page Fault Calltree的Tab页如图: -![GitHub Logo](../../figures/EBPF/VMCalltree.jpg) -+ Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 -+ Local:为该调用方法自身占用的CPU时间。 -+ Weight:调用方法的执行占比。 -Page Fault Events的Tab页如图: -![GitHub Logo](../../figures/EBPF/VMEvents.jpg) -+ Start Time:起始时间。 -+ Duration:时长。 -+ Thread:线程名。 -+ Operation:事件类型。 -+ Address:内存地址。 -+ Size:内存大小。 -### 页内存支持多种Options展示风格 -点击Page Fault Calltree的Tab页底部的Options,会有两个CheckBox复选框。 + +- Operation/Process/Thread: 按照Operation为基点显示。 +- Count: 事件数量。 +- Duration:总时长。 +- Min Duration:最小时长。 +- Avg Duration: 平均时长。 +- Max Duration:最大时长。 + 点击下方的 Statistics by Thread,可以切换到按照 Thread 为基点显示数据。 + ![GitHub Logo](../../figures/EBPF/ebpf_bythread.jpg) + Page Fault Calltree 的 Tab 页如图: + ![GitHub Logo](../../figures/EBPF/VMCalltree.jpg) +- Call Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 +- Local:为该调用方法自身占用的CPU时间。 +- Weight:调用方法的执行占比。 + Page Fault Events 的 Tab 页如图: + ![GitHub Logo](../../figures/EBPF/VMEvents.jpg) +- Start Time:起始时间。 +- Duration:时长。 +- Thread:线程名。 +- Operation:事件类型。 +- Address:内存地址。 +- Size:内存大小。 + +### 页内存支持多种 Options 展示风格 + +点击 Page Fault Calltree 的 Tab 页底部的 Options,会有两个 CheckBox 复选框。 ![GitHub Logo](../../figures/EBPF/vmOptions.jpg) -+ Invert:反向输出调用树。 -+ Hide System so:隐藏系统库文件。 + +- Invert:反向输出调用树。 +- Hide System so:隐藏系统库文件。 + ### 页内存支持过滤调用栈调用次数的展示风格 -点击Page Fault Calltree的Tab页底部的Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 + +点击 Page Fault Calltree 的 Tab 页底部的 Sample Counter Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 ![GitHub Logo](../../figures/EBPF/vmcounter.jpg) -### 页内存功能的调用栈Group展示-数据分析支持剪裁功能 +### 页内存功能的调用栈 Group 展示-数据分析支持剪裁功能 + ![GitHub Logo](../../figures/EBPF/vmdatamining.jpg) -+ 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 -+ 裁剪Library,点击Library Filter按钮,则该库文件符号下所有的子节点也被裁剪。 -+ 点击Reset按钮,将恢复选中的裁剪内容。 -### 页内存功能的调用栈Group展示支持按条件过滤 -在Input Filter输入关键字,会显示出带有该关键字的展示信息。 - ![GitHub Logo](../../figures/EBPF/vminputfilter.jpg) + +- 裁剪 Callstack,点击 Callstack 上一个节点符号,再点击底部 Symbol Filter 按钮,则该符号自动被裁剪掉,同时将该节点往下所有的 Callstack 内容裁剪掉。 +- 裁剪 Library,点击 Library Filter 按钮,则该库文件符号下所有的子节点也被裁剪。 +- 点击 Reset 按钮,将恢复选中的裁剪内容。 + +### 页内存功能的调用栈 Group 展示支持按条件过滤 + +在 Input Filter 输入关键字,会显示出带有该关键字的展示信息。 +![GitHub Logo](../../figures/EBPF/vminputfilter.jpg) + ### 页内存辅助信息区展示调用栈 -当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的Heaviest Stack Trace: - ![GitHub Logo](../../figures/EBPF/vmheaviesttrace.jpg) + +当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的 Heaviest Stack Trace: +![GitHub Logo](../../figures/EBPF/vmheaviesttrace.jpg) + ### 页内存的事件类型的过滤 - 通过选择可以过滤是File Backed In类型,还是Copy On Write类型事件。 - ![GitHub Logo](../../figures/EBPF/VMfilter.jpg) + +通过选择可以过滤是 File Backed In 类型,还是 Copy On Write 类型事件。 +![GitHub Logo](../../figures/EBPF/VMfilter.jpg) + ### 页内存的火焰图功能 -点击Page Fault Calltree左下角的柱状图的图标,会切换到火焰图页面。 + +点击 Page Fault Calltree 左下角的柱状图的图标,会切换到火焰图页面。 ![GitHub Logo](../../figures/EBPF/vmflame.jpg) -进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和Duration时长。 +进入到火焰图页面,火焰图的展示跟 Callinfo 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和 Duration 时长。 ![GitHub Logo](../../figures/EBPF/vmflameshow.jpg) 鼠标左键火焰图,会进入下一级界面,右键回到上一级。 ![GitHub Logo](../../figures/EBPF/vmflamelevel.jpg) - diff --git a/ide/src/doc/md/quickstart_schedulinganalysis.md b/ide/src/doc/md/quickstart_schedulinganalysis.md index 45750d5f..bb66e4a2 100644 --- a/ide/src/doc/md/quickstart_schedulinganalysis.md +++ b/ide/src/doc/md/quickstart_schedulinganalysis.md @@ -1,123 +1,143 @@ -# Scheduling analysis抓取和展示说明 -抓取和展示CPU调度分析,线程调度分析相关数据。 -## Scheduling analysis的抓取 -### Scheduling analysis抓取界面配置说明 -打开Scheduling analysis开关抓取调度分析数据。 -![GitHub Logo]( ../../figures/Schedulinganalysis/scheduset.jpg) -### Scheduling analysis文件的抓取 -点击Record setting,在output file path输入文件名hiprofiler_dataScheduling.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 -![GitHub Logo]( ../../figures/Schedulinganalysis/schedusetting.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。 -![GitHub Logo]( ../../figures/Schedulinganalysis/scheduexcuting.jpg) -## Scheduling analysis功能介绍 -将抓取的文件导入到smartperf工具查看。 -### CPU频点分析 -点击下拉列表框选择CPU Frequency,可以看到各核CPU的各频点持续时长的占比图,以颜色区分各频点。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUFrequencychart.jpg) -点击CPU Frequency饼图,可以跳转到详细信息界面,用饼图和表格来展示某个CPU下各频点持续时长的的相关数据。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUFrequencydetailinfo.jpg) -+ No:编号。 -+ frequency:频率。 -+ min:最小时长。 -+ max:最大时长。 -+ average:平均时长。 -+ duration:运行总时长。 -点击详细页的CPU Frequency饼图,可以跳转某个CPU下某个频点的运行的线程信息。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUFrequencythreaddetail.jpg) -+ No:编号。 -+ t_name:线程名。 -+ tid:线程id。 -+ p_name:进程名。 -+ p_pid:进程id。 -+ duration:运行总时长。 -### CPU Idle分析 -点击下拉列表框选择CPU Idle,可以看到各CPU的Idle的时长占比饼图,以颜色区分各Idle。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUidlechart.jpg) -点击CPU Idle饼图,可以跳转到某CPU的idle分析的详细数据,以饼图和表格的形式展示。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUidledetailinfo.jpg) -+ No:编号。 -+ idle:idle值。 -+ min:最小时长。 -+ max:最大时长。 -+ average:平均时长。 -+ duration:运行总时长。 -### CPU Irq分析 -点击下拉列表框选择CPU Irq,可以看到各CPU的Irq的时长占比饼图,以颜色区分。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUirqchart.jpg) -点击CPU Irq饼图,可以跳转到某CPU的Irq分析的详细数据,以饼图和表格的形式展示。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUirqdetailinfo.jpg) -+ No:编号。 -+ block:irq的类型。 -+ name:irp名称。 -+ min:最小时长。 -+ max:最大时长。 -+ average:平均时长。 -+ duration:运行总时长。 -### CPU占用率显示 -以表格显示各CPU的占用率。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUusagechart.jpg) -### Top20线程大中小核占用率 -选择Thread Analysis标签页,各个CPU通过勾选big或者middle或者small来设置CPU的分类。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUsetting.jpg) -各CPU勾选好大中小核,点击Upload可以跳转到各个线程CPU占用率情况的展示页面。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUdetailsetting.jpg) -如上图所示: -+ 三色柱状图:各个线程CPU的占用率情况,其中以颜色区分占用的大中小核的占用率情况,并以表格的形式展示各个线程的基本信息和大中小核占用率。 -+ 单色柱状图:分别统计线程在某一个类别(大、中、小)的CPU的占用率,并显示出线程的基本信息和占用率。 -表格的字段说明: -+ tid:线程号。 -+ t_name:线程名。 -+ pid:进程号。 -+ p_name:进程名。 -+ big core:大核占用时长。 -+ middle core:中核占用时长。 -+ small core:小核占用时长。 -+ cpu..(us):运行总时长(..代表cpu号)。 -### 单个线程频点分布 -点击单个线程频点分布的标签,通过在Thread Search选择线程,来展示单个线程的频点分布情况。 -![GitHub Logo]( ../../figures/Schedulinganalysis/CPUfrequencybythread.jpg) -+ NO:编号。 -+ cpu:cpu编号。 -+ frequency:频点。 -+ duration:运行时长。 -+ %:频点占用率。 -### Top20单次运行超长线程 -通过点击Top20单次运行超长线程标签,显示线程的单次运行时长来统计出单次运行时长最大的20个线程。 -![GitHub Logo]( ../../figures/Schedulinganalysis/Top20Threadduration.jpg) -+ NO:编号。 -+ tid:线程号。 -+ t_name:线程名。 -+ pid:进程号。 -+ p_name:进程名。 -+ max duration:最大运行时长。 -+ timestamp:时间戳信息。 -### Top20进程线程数 -通过点击Top20进程线程数标签,显示线程数量最多的20个进程,以饼图和表格方式显示。 -![GitHub Logo]( ../../figures/Schedulinganalysis/Top20Threadnum.jpg) -+ NO:编号。 -+ pid:进程号。 -+ p_name:进程名。 -+ thread count:线程数量。 -### Top20切换次数线程 -通过点击Top20切换次数线程标签,显示切换次数最多的20个进程,以饼图和表格方式显示。 -![GitHub Logo]( ../../figures/Schedulinganalysis/Top20swtichcount.jpg) -+ NO:编号。 -+ tid:线程号。 -+ t_name:线程名。 -+ pid:进程号。 -+ p_name:进程名。 -+ sched_switch count:切换次数。 +# Scheduling analysis 抓取和展示说明 + +抓取和展示 CPU 调度分析,线程调度分析相关数据。 + +## Scheduling analysis 的抓取 + +### Scheduling analysis 抓取界面配置说明 + +打开 Scheduling analysis 开关抓取调度分析数据。 +![GitHub Logo](../../figures/Schedulinganalysis/scheduset.jpg) + +### Scheduling analysis 文件的抓取 + +点击 Record setting,在 output file path 输入文件名 hiprofiler_dataScheduling.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 +![GitHub Logo](../../figures/Schedulinganalysis/schedusetting.jpg) +点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 +![GitHub Logo](../../figures/Schedulinganalysis/scheduexcuting.jpg) + +## Scheduling analysis 功能介绍 + +将抓取的文件导入到 smartperf 工具查看。 + +### CPU 频点分析 + +点击下拉列表框选择 CPU Frequency,可以看到各核 CPU 的各频点持续时长的占比图,以颜色区分各频点。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencychart.jpg) +点击 CPU Frequency 饼图,可以跳转到详细信息界面,用饼图和表格来展示某个 CPU 下各频点持续时长的的相关数据。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencydetailinfo.jpg) +- No:编号。 +- frequency:频率。 +- min:最小时长。 +- max:最大时长。 +- average:平均时长。 +- duration:运行总时长。 + 点击详细页的 CPU Frequency 饼图,可以跳转某个 CPU 下某个频点的运行的线程信息。 + ![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencythreaddetail.jpg) +- No:编号。 +- t_name:线程名。 +- tid:线程id。 +- p_name:进程名。 +- p_pid:进程id。 +- duration:运行总时长。 +### CPU Idle 分析 +点击下拉列表框选择 CPU Idle,可以看到各 CPU 的 Idle 的时长占比饼图,以颜色区分各 Idle。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUidlechart.jpg) +点击 CPU Idle 饼图,可以跳转到某 CPU 的 idle 分析的详细数据,以饼图和表格的形式展示。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUidledetailinfo.jpg) + +- No:编号。 +- idle:idle值。 +- min:最小时长。 +- max:最大时长。 +- average:平均时长。 +- duration:运行总时长。 + +### CPU Irq 分析 + +点击下拉列表框选择 CPU Irq,可以看到各 CPU 的 Irq 的时长占比饼图,以颜色区分。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUirqchart.jpg) +点击 CPU Irq 饼图,可以跳转到某 CPU 的 Irq 分析的详细数据,以饼图和表格的形式展示。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUirqdetailinfo.jpg) + +- No:编号。 +- block:irq的类型。 +- name:irp名称。 +- min:最小时长。 +- max:最大时长。 +- average:平均时长。 +- duration:运行总时长。 + +### CPU 占用率显示 + +以表格显示各 CPU 的占用率。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUusagechart.jpg) + +### Top20 线程大中小核占用率 + +选择 Thread Analysis 标签页,各个 CPU 通过勾选 big 或者 middle 或者 small 来设置 CPU 的分类。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUsetting.jpg) +各 CPU 勾选好大中小核,点击 Upload 可以跳转到各个线程 CPU 占用率情况的展示页面。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUdetailsetting.jpg) +如上图所示: + +- 三色柱状图:各个线程CPU的占用率情况,其中以颜色区分占用的大中小核的占用率情况,并以表格的形式展示各个线程的基本信息和大中小核占用率。 +- 单色柱状图:分别统计线程在某一个类别(大、中、小)的CPU的占用率,并显示出线程的基本信息和占用率。 + 表格的字段说明: +- tid:线程号。 +- t_name:线程名。 +- pid:进程号。 +- p_name:进程名。 +- big core:大核占用时长。 +- middle core:中核占用时长。 +- small core:小核占用时长。 +- cpu..(us):运行总时长(..代表cpu号)。 + +### 单个线程频点分布 +点击单个线程频点分布的标签,通过在 Thread Search 选择线程,来展示单个线程的频点分布情况。 +![GitHub Logo](../../figures/Schedulinganalysis/CPUfrequencybythread.jpg) +- NO:编号。 +- cpu:cpu编号。 +- frequency:频点。 +- duration:运行时长。 +- %:频点占用率。 +### Top20 单次运行超长线程 +通过点击 Top20 单次运行超长线程标签,显示线程的单次运行时长来统计出单次运行时长最大的 20 个线程。 +![GitHub Logo](../../figures/Schedulinganalysis/Top20Threadduration.jpg) +- NO:编号。 +- tid:线程号。 +- t_name:线程名。 +- pid:进程号。 +- p_name:进程名。 +- max duration:最大运行时长。 +- timestamp:时间戳信息。 +### Top20 进程线程数 +通过点击 Top20 进程线程数标签,显示线程数量最多的 20 个进程,以饼图和表格方式显示。 +![GitHub Logo](../../figures/Schedulinganalysis/Top20Threadnum.jpg) +- NO:编号。 +- pid:进程号。 +- p_name:进程名。 +- thread count:线程数量。 +### Top20 切换次数线程 +通过点击 Top20 切换次数线程标签,显示切换次数最多的 20 个进程,以饼图和表格方式显示。 +![GitHub Logo](../../figures/Schedulinganalysis/Top20swtichcount.jpg) +- NO:编号。 +- tid:线程号。 +- t_name:线程名。 +- pid:进程号。 +- p_name:进程名。 +- sched_switch count:切换次数。 diff --git a/ide/src/doc/md/quickstart_sdk.md b/ide/src/doc/md/quickstart_sdk.md index 4be2355c..a34aafe8 100644 --- a/ide/src/doc/md/quickstart_sdk.md +++ b/ide/src/doc/md/quickstart_sdk.md @@ -1,6 +1,10 @@ -# Sdk抓取 -抓取Sdk数据。 -## Sdk的抓取 -### Sdk抓取配置参数 -打开Start Custom Config开关抓取Sdk数据。 +# Sdk 抓取 + +抓取 Sdk 数据。 + +## Sdk 的抓取 + +### Sdk 抓取配置参数 + +打开 Start Custom Config 开关抓取 Sdk 数据。 ![GitHub Logo](../../figures/sdk/sdk.jpg) diff --git a/ide/src/doc/md/quickstart_smaps.md b/ide/src/doc/md/quickstart_smaps.md index c94216dc..b0117a5d 100644 --- a/ide/src/doc/md/quickstart_smaps.md +++ b/ide/src/doc/md/quickstart_smaps.md @@ -1,50 +1,62 @@ -# 进程smaps的抓取和展示说明 -smaps展示了一个进程的内存消耗。 -## smaps的抓取 -### smaps抓取配置参数 +# 进程 smaps 的抓取和展示说明 + +smaps 展示了一个进程的内存消耗。 + +## smaps 的抓取 + +### smaps 抓取配置参数 + ![GitHub Logo](../../figures/smaps/smapssetting.jpg) 配置项说明: -+ Start VM Tracker Record:配置项的总开关。 -+ Process:smaps的抓取只能选择单进程抓取。 -再点击Record setting,在output file path输入文件名hiprofiler_data_smaps.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 +- Start VM Tracker Record:配置项的总开关。 +- Process:smaps的抓取只能选择单进程抓取。 + +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_smaps.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/smaps/smapsrecord.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。 ![GitHub Logo](../../figures/smaps/smapsexcuting.jpg) -### smaps展示说明 -抓取结束后smaps的trace会自动加载展示。 + +### smaps 展示说明 + +抓取结束后 smaps 的 trace 会自动加载展示。 ![GitHub Logo](../../figures/smaps/smapssummary.jpg) -界面布局介绍:smaps整体界面布局分为3个部分: -+ 红色区域:泳道图。 -+ 绿色区域:详细信息。 +界面布局介绍:smaps 整体界面布局分为 3 个部分: + +- 红色区域:泳道图。 +- 绿色区域:详细信息。 + +### smaps 泳道图展示 -### smaps泳道图展示 -smaps泳道图展示当前时刻该进程的内存消耗。 +smaps 泳道图展示当前时刻该进程的内存消耗。 ![GitHub Logo](../../figures/smaps/smapschart.jpg) -### smaps泳道图的框选功能 -可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个个tab页。 -VM Tracker Statistics的Tab页如图: + +### smaps 泳道图的框选功能 + +可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个个 tab 页。 +VM Tracker Statistics 的 Tab 页如图: ![GitHub Logo](../../figures/smaps/smapsstatistics.jpg) -+ Type: 将抓取到的信息根据Type归类,分四类,Data,Text,Const,Other。 -+ % of Res: 每行的Resident Size 占总Ressident Size的比例。 -+ #Reg:统计的类型个数。 -+ Path:虚拟内存块路径,类型中有多个则显示multiple。 -+ Resident Size: smaps节点中Rss(Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty)。 -+ Dirty Size:smaps节点中Shared_Dirty + Private_Dirty。 -+ Swapped: smaps节点中Swap + SwapPss。 -+ Virtual Size:smaps节点中Size。 -+ Pss: smaps节点中Pss。 -+ Res. %:Resident Size / Virtual Size 比值。 -VM Tracker Record List的Tab页如图: -![GitHub Logo](../../figures/smaps/smapslist.jpg) -+ Type: 将抓取到的信息根据Type归类,Data,Text,Const,Other。 -+ Address Range: 每段虚拟内存段的开始和结束位置。 -+ Dirty Size:smaps节点中Shared_Dirty + Private_Dirty。 -+ Swapper: smaps节点中Swap + SwapPss。 -+ Resident Size:smaps节点中Rss(Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty)。 -+ Virtual Size:smaps节点中Size。 -+ Pss:smaps节点中Pss。 -+ Reside: Rss / Size 比值。 -+ Protection: 内存块的权限(读写执行执行)。 -+ Path: 内存段路径。 \ No newline at end of file + +- Type: 将抓取到的信息根据Type归类,分四类,Data,Text,Const,Other。 +- % of Res: 每行的Resident Size 占总Ressident Size的比例。 +- #Reg:统计的类型个数。 +- Path:虚拟内存块路径,类型中有多个则显示multiple。 +- Resident Size: smaps节点中Rss(Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty)。 +- Dirty Size:smaps节点中Shared_Dirty + Private_Dirty。 +- Swapped: smaps节点中Swap + SwapPss。 +- Virtual Size:smaps节点中Size。 +- Pss: smaps节点中Pss。 +- Res. %:Resident Size / Virtual Size 比值。 + VM Tracker Record List 的 Tab 页如图: + ![GitHub Logo](../../figures/smaps/smapslist.jpg) +- Type: 将抓取到的信息根据Type归类,Data,Text,Const,Other。 +- Address Range: 每段虚拟内存段的开始和结束位置。 +- Dirty Size:smaps节点中Shared_Dirty + Private_Dirty。 +- Swapper: smaps节点中Swap + SwapPss。 +- Resident Size:smaps节点中Rss(Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty)。 +- Virtual Size:smaps节点中Size。 +- Pss:smaps节点中Pss。 +- Reside: Rss / Size 比值。 +- Protection: 内存块的权限(读写执行执行)。 +- Path: 内存段路径。 diff --git a/ide/src/doc/md/quickstart_sql_metrics.md b/ide/src/doc/md/quickstart_sql_metrics.md index 8e771ad8..f06ba59c 100644 --- a/ide/src/doc/md/quickstart_sql_metrics.md +++ b/ide/src/doc/md/quickstart_sql_metrics.md @@ -1,16 +1,27 @@ -# Sql分析和Metrics说明 -Sql功能是方便使用者查询sql语句查看相关业务,Metrics是更高级别的查询接口,无需手动键入任何SQL语句,只需要选择定制好的查询接口,就能获得想要跟踪的结果。 -## Sql分析功能介绍 -点击Query(SQL),输入需要查询的sql语句,如select * from process,可以看到进程表数据。 +# Sql 分析和 Metrics 说明 + +Sql 功能是方便使用者查询 sql 语句查看相关业务,Metrics 是更高级别的查询接口,无需手动键入任何 SQL 语句,只需要选择定制好的查询接口,就能获得想要跟踪的结果。 + +## Sql 分析功能介绍 + +点击 Query(SQL),输入需要查询的 sql 语句,如 select \* from process,可以看到进程表数据。 ![GitHub Logo](../../figures/Metrics/Sql.jpg) -## Metrics功能介绍 -Metrics是更高级别的查询接口,无需手动键入任何SQL语句,只需要选择定制好的查询接口,就能获得想要跟踪的结果。 -### Metrics查询接口展示 -如下图,查询接口在下拉框中,如选择trace_task_names,点击run,就能展示线程和进程相关数据。 + +## Metrics 功能介绍 + +Metrics 是更高级别的查询接口,无需手动键入任何 SQL 语句,只需要选择定制好的查询接口,就能获得想要跟踪的结果。 + +### Metrics 查询接口展示 + +如下图,查询接口在下拉框中,如选择 trace_task_names,点击 run,就能展示线程和进程相关数据。 ![GitHub Logo](../../figures/Metrics/metrics.jpg) -## Info和stats功能 -点击Info and stats,能查看到meta表和stats表信息。 + +## Info 和 stats 功能 + +点击 Info and stats,能查看到 meta 表和 stats 表信息。 ![GitHub Logo](../../figures/Metrics/infoandstats.jpg) -## Download功能 -点击DownLoad按钮,会将在线抓取的文件下载到本地。 -![GitHub Logo](../../figures/Metrics/download.jpg) \ No newline at end of file + +## Download 功能 + +点击 DownLoad 按钮,会将在线抓取的文件下载到本地。 +![GitHub Logo](../../figures/Metrics/download.jpg) diff --git a/ide/src/doc/md/quickstart_systemtrace.md b/ide/src/doc/md/quickstart_systemtrace.md index caaee7c1..b79afd6e 100644 --- a/ide/src/doc/md/quickstart_systemtrace.md +++ b/ide/src/doc/md/quickstart_systemtrace.md @@ -1,89 +1,124 @@ -# web端加载trace说明 -从web端查看trace文件,进行性能检测的分析。 +# web 端加载 trace 说明 + +从 web 端查看 trace 文件,进行性能检测的分析。 + ## 文件加载入口 -将抓取的trace导入查看。 + +将抓取的 trace 导入查看。 ![GitHub Logo](../../figures/Web/opentrace.jpg) 说明: -+ Open trace file:导入离线trace文件入口。 -+ Record new trace:抓取新的trace文件入口。 -## 导入trace文件后显示页面 +- Open trace file:导入离线 trace 文件入口。 +- Record new trace:抓取新的 trace 文件入口。 + +## 导入 trace 文件后显示页面 + ![GitHub Logo](../../figures/Web/trace.jpg) 说明: -+ 操作说明:在当前页面可以通过键盘上的wasd四个键位操纵当前的时间轴进行缩放,w为放大,s为缩小,a为左移,d为右移。 -## trace功能介绍 -trace模块从上往下主要展示时间轴、cpu使用率、cpu使用情况、进程间通讯数据的方法调用情况、进程、线程和方法调用情况。 -### 时间轴和cpu使用率 + +- 操作说明:在当前页面可以通过键盘上的 wasd 四个键位操纵当前的时间轴进行缩放,w 为放大,s 为缩小,a 为左移,d 为右移。 + +## trace 功能介绍 + +trace 模块从上往下主要展示时间轴、cpu 使用率、cpu 使用情况、进程间通讯数据的方法调用情况、进程、线程和方法调用情况。 + +### 时间轴和 cpu 使用率 + ![GitHub Logo](../../figures/Web/time.jpg) 最上方带刻度的为时间轴,主要展示当前抓取数据的总时长和时间刻度的分布情况,如上图所示,左下角展示总时长。 -中间区域展示的是抓取数据时间段内的cpu使用率,颜色越深代表cpu使用率越高,颜色越浅代表cpu使用率越低。 +中间区域展示的是抓取数据时间段内的 cpu 使用率,颜色越深代表 cpu 使用率越高,颜色越浅代表 cpu 使用率越低。 ![GitHub Logo](../../figures/Web/highlit.jpg) 在白色背景时间轴区域内可以点击后拖拽鼠标,可以对从鼠标按下到拖拽完成鼠标松开的区域内的数据进行筛选,高亮显示的部分为当前所选区域,如上图所示。 -### cpu使用情况 + +### cpu 使用情况 + ![GitHub Logo](../../figures/Web/cpu.jpg) - -如上图所示,当前抓取数据有4个cpu工作,前四组数据对应的是当前调用cpu的线程和对应的进程情况,以颜色作为区分。后四组数据则为cpu的使用频率信息。鼠标移动到相应的线程上还会将当前选中的进程信息全部置为高亮,其他的进程会置灰,如下图所示。 + +如上图所示,当前抓取数据有 4 个 cpu 工作,前四组数据对应的是当前调用 cpu 的线程和对应的进程情况,以颜色作为区分。后四组数据则为 cpu 的使用频率信息。鼠标移动到相应的线程上还会将当前选中的进程信息全部置为高亮,其他的进程会置灰,如下图所示。 ![GitHub Logo](../../figures/Web/gray.jpg) -#### cpu使用情况的框选功能 -可以对cpu的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有七个tab页。 -CPU by thread的Tab页,主要显示了在框选时间区间内的进程名、进程号、线程名、线程号、总运行时长、平均运行时长和调度次数信息。 + +#### cpu 使用情况的框选功能 + +可以对 cpu 的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有七个 tab 页。 +CPU by thread 的 Tab 页,主要显示了在框选时间区间内的进程名、进程号、线程名、线程号、总运行时长、平均运行时长和调度次数信息。 ![GitHub Logo](../../figures/Web/cpubythread.jpg) -CPU by process的Tab页,主要显示了在框选时间区间内的进程名、进程号、总运行时长、平均运行时长和调度次数信息。 +CPU by process 的 Tab 页,主要显示了在框选时间区间内的进程名、进程号、总运行时长、平均运行时长和调度次数信息。 ![GitHub Logo](../../figures/Web/cpubyprocess.jpg) -CPU Usage的Tab页,主要显示了在框选时间区间内,该频率时间占比前三的信息。 +CPU Usage 的 Tab 页,主要显示了在框选时间区间内,该频率时间占比前三的信息。 ![GitHub Logo](../../figures/Web/cpusage.jpg) -States List的Tab页,按状态>进程>线程的维度去统计,需要呈现该状态的线程名、该状态次数、该状态下时长、最大最小时长、平均时长、最大时长。 +States List 的 Tab 页,按状态>进程>线程的维度去统计,需要呈现该状态的线程名、该状态次数、该状态下时长、最大最小时长、平均时长、最大时长。 ![GitHub Logo](../../figures/Web/StatesList.jpg) -Switches List的Tab页,按照进程>线程>状态,统计对应状态下的次数。 +Switches List 的 Tab 页,按照进程>线程>状态,统计对应状态下的次数。 ![GitHub Logo](../../figures/Web/Switchlist.jpg) -Thread States的Tab页,按进程>线程>状态的维度去统计,需要呈现该状态的线程名、进入该状态次数、该状态下时长、最小时长、平均时长、最大时长。 +Thread States 的 Tab 页,按进程>线程>状态的维度去统计,需要呈现该状态的线程名、进入该状态次数、该状态下时长、最小时长、平均时长、最大时长。 ![GitHub Logo](../../figures/Web/threadstates.jpg) -Thread Switches的Tab页,按照状态>进程>线程,统计对应状态下的次数。 +Thread Switches 的 Tab 页,按照状态>进程>线程,统计对应状态下的次数。 ![GitHub Logo](../../figures/Web/threadswitches.jpg) -States List、Switches List、Thread States、Thread Switches的4个Tab页,点击移动到某一行,鼠标会变成一个小手的标志,点击一下,就会进入辅助信息界面,会将选中行的辅助信息展示出来,包括开始时间、进程、线程、线程状态、对应的CPU、优先级等信息如下图。 +States List、Switches List、Thread States、Thread Switches 的 4 个 Tab 页,点击移动到某一行,鼠标会变成一个小手的标志,点击一下,就会进入辅助信息界面,会将选中行的辅助信息展示出来,包括开始时间、进程、线程、线程状态、对应的 CPU、优先级等信息如下图。 ![GitHub Logo](../../figures/Web/details.jpg) -#### cpu使用情况的单选功能 -单选CPU使用情况数据会在选中的色块外层加上深色边框,能够突出当前选中色块,弹出层中会展示当前CPU上的进程名,线程名,开始时间和运行时长,线程运行状态等信息。 + +#### cpu 使用情况的单选功能 + +单选 CPU 使用情况数据会在选中的色块外层加上深色边框,能够突出当前选中色块,弹出层中会展示当前 CPU 上的进程名,线程名,开始时间和运行时长,线程运行状态等信息。 ![GitHub Logo](../../figures/Web/cpuclick.jpg) + ### 进程、线程和方法数据 -下图是进程数据,左边部分展示进程名称和id,右边显示线程切换关系,线程的调用方法,进程间内存信息等。 + +下图是进程数据,左边部分展示进程名称和 id,右边显示线程切换关系,线程的调用方法,进程间内存信息等。 ![GitHub Logo](../../figures/Web/process.jpg) -点击进程名前面向下箭头可以展开对应的线程进行查看,展开后的线程如下图,如果存在堆内存占用情况,就会显示在第一行,如果出现两个名字和id一样的线程,则第一个为线程的使用情况,第二为线程内的方法栈调用情况。 +点击进程名前面向下箭头可以展开对应的线程进行查看,展开后的线程如下图,如果存在堆内存占用情况,就会显示在第一行,如果出现两个名字和 id 一样的线程,则第一个为线程的使用情况,第二为线程内的方法栈调用情况。 ![GitHub Logo](../../figures/Web/threadinfo.jpg) + #### 进程、线程和方法数据的框选功能 -可以对线程的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,包含线程运行状态,线程调用栈的统计情况。当框选的数据中同时存在线程运行状态和线程调用栈数据,下方的弹出层中就会出现多个tab选项,可以进行切换。 + +可以对线程的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,包含线程运行状态,线程调用栈的统计情况。当框选的数据中同时存在线程运行状态和线程调用栈数据,下方的弹出层中就会出现多个 tab 选项,可以进行切换。 下图是线程运行状态框选统计信息,包括进程名、进程号、线程名、线程号、线程状态、状态持续时间、平均持续时间、该线程状态发生的次数。 ![GitHub Logo](../../figures/Web/threadselect.jpg) 下图是线程调用栈框选统计信息,包括方法名、持续时间、平均持续时间、调用的次数。 ![GitHub Logo](../../figures/Web/callstackselect.jpg) + #### 进程、线程和方法数据的单选功能 -单选线程的state数据时,会展示当前选中线程的状态数据,开始时间和持续时长,线程状态,所在进程名称。 + +单选线程的 state 数据时,会展示当前选中线程的状态数据,开始时间和持续时长,线程状态,所在进程名称。 ![GitHub Logo](../../figures/Web/threadclick.jpg) 单选调用栈数据,单击方法会在选中的方法外层加上黑色边框,能够突出当前选中的方法,弹出层中会展示当前方法的名称、开始时间和运行时长信息。 ![GitHub Logo](../../figures/Web/callstackclick.jpg) + #### 线程的跳转功能 -点击画红框处的带箭头的标志,会从CPU的线程概览视图跳转到线程的详情视图,同时从线程的详情视图也能跳转到CPU的线程概览视图。 + +点击画红框处的带箭头的标志,会从 CPU 的线程概览视图跳转到线程的详情视图,同时从线程的详情视图也能跳转到 CPU 的线程概览视图。 ![GitHub Logo](../../figures/Web/jumpthread.jpg) -### trace的其他功能 + +### trace 的其他功能 + #### 小旗标志的功能 + 将选中数据的时间点通过小旗的方式在时间轴上展示,直观的展示选中数据的时间。 ![GitHub Logo](../../figures/Web/flag.jpg) -在下方输入空输入文字:我是trace,可以给小旗打备注。 +在下方输入空输入文字:我是 trace,可以给小旗打备注。 ![GitHub Logo](../../figures/Web/flaginput.jpg) + #### 收藏置顶功能 + 鼠标移动到某个页签,会出现星形的标志,点击该星形,可以将该行收藏置顶。 ![GitHub Logo](../../figures/Web/stars.jpg) + #### 勾选功能 -框选某一区域,该区域左边会出现CheckBox的复选框,选中的区域的复选框会出现打勾的状态,可以取消勾选,也可以重新勾选。 + +框选某一区域,该区域左边会出现 CheckBox 的复选框,选中的区域的复选框会出现打勾的状态,可以取消勾选,也可以重新勾选。 ![GitHub Logo](../../figures/Web/checkbox.jpg) + #### 搜索功能 + 在搜索框中,可以输入线程,线程号等搜索自己想要的信息,搜索完成会高亮显示。 ![GitHub Logo](../../figures/Web/search.jpg) 在搜索框中输入调用栈的方法名,会跳转到对应的调用栈。 ![GitHub Logo](../../figures/Web/searchcallstack.jpg) -#### M键测量功能 -放大trace中的色块,选中色块,键盘按下M,会出现像尺子一样的形状。 -![GitHub Logo](../../figures/Web/M.jpg) \ No newline at end of file + +#### M 键测量功能 + +放大 trace 中的色块,选中色块,键盘按下 M,会出现像尺子一样的形状。 +![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 c3a98c17..9b48d7b2 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数据。 +# TaskPool 抓取和展示说明 + +TaskPool 分析模块主要展示应用程序使用 taskpool 时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。 + +## TaskPool 的抓取 + +#### TaskPool 的抓取配置参数 + +打开 Task pool 开关抓取 taskpool 数据。 ![GitHub Logo](../../figures/Taskpool/taskpoolconfig.jpg) -### TaskPool展示说明 -将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。 + +### TaskPool 展示说明 + +将抓取的 taskpool 文件导入到 smartperf 中,查看任务的关联关系等信息。 ![GitHub Logo](../../figures/Taskpool/taskpoolrow.jpg) -### TaskPool的任务关联关系跟踪 -任务关联关系就是根据任务的executeId,把一个taskpool任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。 + +### 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:任务返回。 -### TaskPool的并发度 -点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是3。 +如上图所示,点击 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:任务返回。 + +### TaskPool 的并发度 + +点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是 3。 ![GitHub Logo](../../figures/Taskpool/taskpoolconcurrency.jpg) -### TaskPool泳道图的点选功能 -点选taskpool的Slice,展示该taskpool信息的tab页。 + +### TaskPool 泳道图的点选功能 + +点选 taskpool 的 Slice,展示该 taskpool 信息的 tab 页。 ![GitHub Logo](../../figures/Taskpool/taskpoolselect.jpg) -+ Name: 任务调用栈名称。 -+ StartTime: 任务调用栈开始时间。 -+ Duration:任务调用栈持续时间。 -+ depth:调用栈层级。 -### TaskPool泳道图的框选功能 -框选taskpool的泳道图,展示Frames的tab页。 + +- 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):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。 -### TaskPool的队列任务数和线程池里线程状态统计 + +- 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 +如上图,H:threadNum,H:runningThreadNum,H:idleThreadNum,H:timeoutThreadNum 是线程池里线程状态统计,H:taskNum 是队列任务数。 + +### TaskPool 的任务超时退出 + +在带有 H:Thread Timeout Exit 的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。 +![GitHub Logo](../../figures/Taskpool/taskpoolexit.jpg) diff --git a/ide/src/doc/md/quickstart_web_record.md b/ide/src/doc/md/quickstart_web_record.md index f2b3493b..efcf14b6 100644 --- a/ide/src/doc/md/quickstart_web_record.md +++ b/ide/src/doc/md/quickstart_web_record.md @@ -1,30 +1,37 @@ -# web端抓取trace说明 -从web端抓取trace文件的配置和方法。 +# web 端抓取 trace 说明 + +从 web 端抓取 trace 文件的配置和方法。 + ## 界面配置说明 + ![GitHub Logo](../../figures/hdc/hdc.jpg) 说明: -* Record:trace抓取按钮。 -* Add HDC Device:连接设备。 -## trace文件的在线抓取 -点击Add HDC Device在弹出的框里选择HDC-配对,点击连接,连接设备。 + +- Record:trace 抓取按钮。 +- Add HDC Device:连接设备。 + +## trace 文件的在线抓取 + +点击 Add HDC Device 在弹出的框里选择 HDC-配对,点击连接,连接设备。 ![GitHub Logo](../../figures/hdc/Device.jpg) -点击Probes config,如选择抓取Scheduling details。 +点击 Probes config,如选择抓取 Scheduling details。 ![GitHub Logo](../../figures/hdc/Schedulingdetails.jpg) 抓取项说明: - * Scheduling details:线程切换事件,暂停恢复方法,线程唤醒事件,进程退出和销毁处理,新建线程处理方法,线程重命名处理方法。 - * CPU Frequency and idle states:CPU频率信息和CPU空闲状态。 - * Advanced ftrace config:线程切换事件,暂停恢复方法,线程唤醒事件,进程退出和销毁处理,新建线程处理方法,线程重命名处理方法,IRQ事件,时钟频率处理方法,Binder事件,线程调用堆栈开始和结束的处理。 - * AbilityMonitor:进程的CPU,内存,磁盘,网络使用情况。 - * Kernel meminfo:内核内存。 - * Virtual memory stats:系统虚拟内存。 - * Hitrace categories:Bytrace的抓取项,各解释项说明如下图: -![GitHub Logo](../../figures/hdc/bytacedescription.jpg) - -再点击Record setting,在output file path输入文件名hiprofiler_data_example.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s。 + +- Scheduling details:线程切换事件,暂停恢复方法,线程唤醒事件,进程退出和销毁处理,新建线程处理方法,线程重命名处理方法。 +- CPU Frequency and idle states:CPU 频率信息和 CPU 空闲状态。 +- Advanced ftrace config:线程切换事件,暂停恢复方法,线程唤醒事件,进程退出和销毁处理,新建线程处理方法,线程重命名处理方法,IRQ 事件,时钟频率处理方法,Binder 事件,线程调用堆栈开始和结束的处理。 +- AbilityMonitor:进程的 CPU,内存,磁盘,网络使用情况。 +- Kernel meminfo:内核内存。 +- Virtual memory stats:系统虚拟内存。 +- Hitrace categories:Bytrace 的抓取项,各解释项说明如下图: + ![GitHub Logo](../../figures/hdc/bytacedescription.jpg) + +再点击 Record setting,在 output file path 输入文件名 hiprofiler_data_example.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。 ![GitHub Logo](../../figures/hdc/examplerecord.jpg) -点击Trace command,就会根据上面的配置生成抓取命令,点击Record。 +点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record。 ![GitHub Logo](../../figures/hdc/record.jpg) 抓取过程中,上方会给出提示正在抓取,并显示出抓取时长。 ![GitHub Logo](../../figures/hdc/hdctracing.jpg) -抓取完成后,界面会自动加载展示trace文件。 -![GitHub Logo](../../figures/hdc/hdcfile.jpg) \ No newline at end of file +抓取完成后,界面会自动加载展示 trace 文件。 +![GitHub Logo](../../figures/hdc/hdcfile.jpg) diff --git a/ide/src/doc/quickstart_animation.html b/ide/src/doc/quickstart_animation.html index 14b377cd..c1263cdf 100644 --- a/ide/src/doc/quickstart_animation.html +++ b/ide/src/doc/quickstart_animation.html @@ -1,538 +1,252 @@ - - - quickstart_animation - - - - -
-

Animation的抓取和展示说明

- -

通过动效模板的指标项对图形子系统和应用做动效卡顿类问题分析。

-

Animation抓取参数的配置

- -

- GitHub Logo
- 配置项说明: -

-
    -
  • + + + +
    +

    Animation的抓取和展示说明

    + +

    通过动效模板的指标项对图形子系统和应用做动效卡顿类问题分析。

    +

    Animation抓取参数的配置

    + +

    + GitHub Logo
    + 配置项说明: +

    +
      +
    •  Animation effect:动效配置项的总开关。
       
      -
    • -
    -

    Animation展示说明

    - -

    将抓取的Animation文件导入到smartperf工具中,查看图形子系统和应用动效卡顿类问题。

    -

    Animation泳道图展示

    - -

    - Animation的响应时延泳道图显示,泳道图的Slice会显示响应时延,如下图中的Completion delay(683.035938ms)。
    - GitHub Logo
    - Animation的动效曲线和帧间距的总泳道图,如图点击leashWindow40旁边的小齿轮可以切换leashWindow。
    - GitHub Logo
    - Animation的动效曲线泳道图展示,如下:
    - GitHub Logo
    - 泳道图说明: -

    -
      -
    • + > +
    • +
    +

    Animation展示说明

    + +

    将抓取的Animation文件导入到smartperf工具中,查看图形子系统和应用动效卡顿类问题。

    +

    Animation泳道图展示

    + +

    + Animation的响应时延泳道图显示,泳道图的Slice会显示响应时延,如下图中的Completion delay(683.035938ms)。
    + GitHub Logo
    + Animation的动效曲线和帧间距的总泳道图,如图点击leashWindow40旁边的小齿轮可以切换leashWindow。
    + GitHub Logo
    + Animation的动效曲线泳道图展示,如下:
    + GitHub Logo
    + 泳道图说明: +

    +
      +
    •  Animation Effect Curve旁边的齿轮显示的x,y,width,height,alpha是动效帧的属性值,可以切换。
       
      -
    • -
    • + > +
    • +
    •  Animation Effect Curve泳道图红色的曲线代表的是异常判断点,也就是相邻两帧属性值相同的异常时间区间。
       
      -
    • -
    -

    - Animation的帧间距泳道图展示,如下:
    - GitHub Logo
    - 泳道图说明: -

    -
      -
    • + > +
    • +
    +

    + Animation的帧间距泳道图展示,如下:
    + GitHub Logo
    + 泳道图说明: +

    +
      +
    •  Frame spacing泳道图显示相邻两帧在时间尺度上相对于设备物理屏幕的变化间距值。
       
      -
    • -
    -

    动效曲线泳道图点选功能

    - -

    - 点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    动效曲线泳道图点选功能

    + +

    + 点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。
    + GitHub Logo +

    +
      +
    •  Timestamp: 时间戳信息。
       
      -
    • -
    • + > +
    • +
    •  Index: 属性索引。
       
      -
    • -
    • + > +
    • +
    •  Value:属性值。
       
      -
    • -
    -

    动效曲线泳道图框选功能

    - -

    - 框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    动效曲线泳道图框选功能

    + +

    + 框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。
    + GitHub Logo +

    +
      +
    •  Timestamp: 时间戳信息。
       
      -
    • -
    • + > +
    • +
    •  Index: 属性索引。
       
      -
    • -
    • + > +
    • +
    •  Value:属性值。
       
      -
    • -
    -

    帧间距泳道图点选功能

    - -

    - 点选帧间距泳道图,Frame - spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    帧间距泳道图点选功能

    + +

    + 点选帧间距泳道图,Frame + spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。
    + GitHub Logo +

    +
      +
    •  Timestamp: 时间戳信息。
       
      -
    • -
    • + > +
    • +
    •  Index: 属性索引。
       
      -
    • -
    • + > +
    • +
    •  property:动效宽度或高度属性。
       
      -
    • -
    • + > +
    • +
    •  Value2: 当前帧的属性值。
       
      -
    • -
    • + > +
    • +
    •  Value1: 前一帧的属性值。
       
      -
    • -
    • + > +
    • +
    •  Screen:存储设备的物理宽度/高度。
       
      -
    • -
    • + > +
    • +
    •  T2(s): 当前帧的结束时间。
       
      -
    • -
    • + > +
    • +
    •  T1(s): 前一帧的结束时间。
       
      -
    • -
    • + > +
    • +
    •  result:帧间距。
       
      -
    • -
    -

    帧间距泳道图框选功能

    - -

    - 框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    帧间距泳道图框选功能

    + +

    + 框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。
    + GitHub Logo +

    +
      +
    •  Timestamp: 时间戳信息。
       
      -
    • -
    • + > +
    • +
    •  Index: 属性索引。
       
      -
    • -
    • + > +
    • +
    •  property:动效宽度或高度属性。
       
      -
    • -
    • + > +
    • +
    •  Value2: 当前帧的属性值。
       
      -
    • -
    • + > +
    • +
    •  Value1: 前一帧的属性值。
       
      -
    • -
    • + > +
    • +
    •  Screen:存储设备的物理宽度/高度。
       
      -
    • -
    • + > +
    • +
    •  T2(s): 当前帧的结束时间。
       
      -
    • -
    • + > +
    • +
    •  T1(s): 前一帧的结束时间。
       
      -
    • -
    • + > +
    • +
    •  result:帧间距。
       
      -
    • -
    -
    - - - + > +
  • +
+
+ + + diff --git a/ide/src/doc/quickstart_app_startup.html b/ide/src/doc/quickstart_app_startup.html index ad983ba7..6f253b4f 100644 --- a/ide/src/doc/quickstart_app_startup.html +++ b/ide/src/doc/quickstart_app_startup.html @@ -1,539 +1,253 @@ - - - quickstart_app_startup - - - - - -
-

App startup的抓取和展示说明

- -

- 应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。 -

-

App startup抓取参数的配置

- -

- GitHub Logo
- 配置项说明: -

-
    -
  • + + + +
    +

    App startup的抓取和展示说明

    + +

    + 应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。 +

    +

    App startup抓取参数的配置

    + +

    + GitHub Logo
    + 配置项说明: +

    +
      +
    •  App startup:配置项的总开关。
       
      -
    • -
    -

    App startup展示说明

    - -

    将抓取的App startup文件导入到smartperf工具中,查看应用启动各阶段耗时的情况。

    -

    App startup泳道图展示

    - -

    - App startup的泳道图展示:
    - GitHub Logo
    - 应用启动包括六个阶段,分别是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 -

    -
      -
    • + > +
    • +
    +

    App startup展示说明

    + +

    将抓取的App startup文件导入到smartperf工具中,查看应用启动各阶段耗时的情况。

    +

    App startup泳道图展示

    + +

    + App startup的泳道图展示:
    + GitHub Logo
    + 应用启动包括六个阶段,分别是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 +

    +
      +
    •  StartTime(Relative): 应用启动开始时间(相对时间)。
       
      -
    • -
    • + > +
    • +
    •  StartTime(Absolute): 应用启动开始时间(绝对时间)。
       
      -
    • -
    • + > +
    • +
    •  EndTime(Relative):应用启动的结束时间(相对时间)。
       
      -
    • -
    • + > +
    • +
    •  EndTime(Absolute):应用启动的结束时间(绝对时间)。
       
      -
    • -
    • + > +
    • +
    •  Duration:应用启动的持续时间。
       
      -
    • -
    -

    App startup泳道图Tab页跳转功能

    - -

    - 点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。
    - 以Process Creating的跳转为例:
    - GitHub Logo
    - 跳转说明: -

    -
      -
    • + > +
    • +
    +

    App startup泳道图Tab页跳转功能

    + +

    + 点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。
    + 以Process Creating的跳转为例:
    + GitHub Logo
    + 跳转说明: +

    +
      +
    •  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 -

    -
      -
    • + > +
    • +
    +

    App startup泳道图的框选功能

    + +

    + 应用启动阶段泳道图框选功能主要是框选启动分析泳道图之后,统计应用各个启动阶段的耗费时长信息。
    + GitHub Logo +

    +
      +
    •  Process / Startup: 应用名称和启动阶段名称。
       
      -
    • -
    • + > +
    • +
    •  Duration:应用各阶段启动时长。
       
      -
    • -
    • + > +
    • +
    •  %:应用各阶段启动时长的占比。
       
      -
    • -
    -

    So初始化泳道图展示

    - -

    - So初始化的泳道图展示:
    - GitHub Logo -

    -

    So初始化泳道图的点选功能

    - -

    - 点选So初始化的Slice,展示该so初始化信息的tab页。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    So初始化泳道图展示

    + +

    + So初始化的泳道图展示:
    + GitHub Logo +

    +

    So初始化泳道图的点选功能

    + +

    + 点选So初始化的Slice,展示该so初始化信息的tab页。
    + GitHub Logo +

    +
      +
    •  Name:So的名称。
       
      -
    • -
    • + > +
    • +
    •  StartTime(Relative):So初始化开始时间(相对时间)。
       
      -
    • -
    • + > +
    • +
    •  StartTime(Absolute):So初始化开始时间(绝对时间)。
       
      -
    • -
    • + > +
    • +
    •  Duration:So初始化耗时。
       
      -
    • -
    -

    So初始化泳道图Tab页跳转功能

    - -

    - 点击So初始化开始时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。
    - GitHub Logo
    - 跳转说明: -

    -
      -
    • + > +
    • +
    +

    So初始化泳道图Tab页跳转功能

    + +

    + 点击So初始化开始时间后面的跳转图标,跳转至关联Slice,并显示该Slice的详细信息。
    + GitHub Logo
    + 跳转说明: +

    +
      +
    •  StartTime(Relative)的跳转: 跳转到dlopen:  system/lib64/extensionability/libinputmethod_extension_module.z.so。
       
      -
    • -
    -

    So初始化泳道图的框选功能

    - -

    - So初始化泳道图框选功能主要是框选So初始化泳道图之后,统计各个进程下各个So的初始化耗费时长信息。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    So初始化泳道图的框选功能

    + +

    + So初始化泳道图框选功能主要是框选So初始化泳道图之后,统计各个进程下各个So的初始化耗费时长信息。
    + GitHub Logo +

    +
      +
    •  Process / Lib: 应用名称和So名称。
       
      -
    • -
    • + > +
    • +
    •  Duration:So的耗费时长。
       
      -
    • -
    -
    - - - + > +
  • +
+
+ + + diff --git a/ide/src/doc/quickstart_arkts.html b/ide/src/doc/quickstart_arkts.html index 0fa3d112..5f012ce2 100644 --- a/ide/src/doc/quickstart_arkts.html +++ b/ide/src/doc/quickstart_arkts.html @@ -1,538 +1,252 @@ - - - quickstart_arkts - - - - -
-

Cpuprofiler抓取和展示说明

- -

Cpuprofiler模板帮助ArkTs开发和测试分析虚拟机层执行开销大问题,提供Ts层耗时长函数和阶段。

-

Cpuprofiler的抓取

- -

Cpuprofiler的抓取配置参数

- -

- 打开Start Ark Ts Record总开关下面的Start cpu profiler开关抓取cpuprofiler数据。
- GitHub Logo -

-

Cpuprofiler展示说明

- -

- 将抓取的cpuprofiler文件导入到smartperf中,查看Ts层耗时长的函数和阶段。
- GitHub Logo -

-

Cpuprofiler的泳道图悬浮显示

- -

- 鼠标放到泳道图的Slice上会有悬浮框显示。
- GitHub Logo -

-
    -
  • + + + +
    +

    Cpuprofiler抓取和展示说明

    + +

    Cpuprofiler模板帮助ArkTs开发和测试分析虚拟机层执行开销大问题,提供Ts层耗时长函数和阶段。

    +

    Cpuprofiler的抓取

    + +

    Cpuprofiler的抓取配置参数

    + +

    + 打开Start Ark Ts Record总开关下面的Start cpu profiler开关抓取cpuprofiler数据。
    + GitHub Logo +

    +

    Cpuprofiler展示说明

    + +

    + 将抓取的cpuprofiler文件导入到smartperf中,查看Ts层耗时长的函数和阶段。
    + GitHub Logo +

    +

    Cpuprofiler的泳道图悬浮显示

    + +

    + 鼠标放到泳道图的Slice上会有悬浮框显示。
    + GitHub Logo +

    +
      +
    •  Name : 函数名。
       
      -
    • -
    • + > +
    • +
    •  Self Time: 函数自身执行时间(不包含其调用者)。
       
      -
    • -
    • + > +
    • +
    •  Total Time : 函数自身及调用者的调用时间总和。
       
      -
    • -
    • + > +
    • +
    •  Url : 函数所在的文件名称。
       
      -
    • -
    -

    Cpuprofiler泳道图的点选和框选功能

    - -

    - 点选或者框选泳道图上函数名的Slice,会显示Js Profiler Statistics,Js Profiler CallTree,Js Profiler - BottomUp的Tab页信息。
    - Js Profiler Statistics的Tab页显示数据的维度信息,以饼图和Table表的方式展示,如下图:
    - GitHub Logo
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    Cpuprofiler泳道图的点选和框选功能

    + +

    + 点选或者框选泳道图上函数名的Slice,会显示Js Profiler Statistics,Js Profiler CallTree,Js Profiler + BottomUp的Tab页信息。
    + Js Profiler Statistics的Tab页显示数据的维度信息,以饼图和Table表的方式展示,如下图:
    + GitHub Logo
    + GitHub Logo +

    +
      +
    •  Type : 维度名称,有九大维度(NAPI、ARKUI_ENGINE、BUTLTIN、GC、AINT、CINT、AOT、RUNTIME、OTHER)。
       
      -
    • -
    • + > +
    • +
    •  Total : 时间。
       
      -
    • -
    • + > +
    • +
    •  % : 时间占比。
       
      -
    • -
    -

    - Js Profiler CallTree的Tab页把name,url,depth,parent相同的函数合并,构建成一个top - down的树结构,以树形表格的形式显示,表格中显示函数调用关系,如下图:
    - GitHub Logo
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Js Profiler CallTree的Tab页把name,url,depth,parent相同的函数合并,构建成一个top + down的树结构,以树形表格的形式显示,表格中显示函数调用关系,如下图:
    + GitHub Logo
    + GitHub Logo +

    +
      +
    •  Symbol : 函数名。
       
      -
    • -
    • + > +
    • +
    •  Self Time: 函数自身执行时间(不包含其调用者)。
       
      -
    • -
    • + > +
    • +
    •  Total Time : 函数自身及调用者的调用时间总和。
       
      -
    • -
    -

    - Js Profiler BottomUp的Tab页把name,url,depth,parent相同的函数合并,构建成一个bottom - up的树结构,以树形表格的形式显示,只不过作为根节点的是被调用者,表格中显示函数被调用关系,如下图:
    - GitHub Logo
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Js Profiler BottomUp的Tab页把name,url,depth,parent相同的函数合并,构建成一个bottom + up的树结构,以树形表格的形式显示,只不过作为根节点的是被调用者,表格中显示函数被调用关系,如下图:
    + GitHub Logo
    + GitHub Logo +

    +
      +
    •  Symbol : 函数名。
       
      -
    • -
    • + > +
    • +
    •  Self Time: 函数自身执行时间(不包含其调用者)。
       
      -
    • -
    • + > +
    • +
    •  Total Time : 函数自身及调用者的调用时间总和。
       
      -
    • -
    -

    Cpuprofiler的Heaviest Stack功能

    - -

    - Js Profiler CallTree的Tab页的Heaviest Stack表格显示的是选中的函数的完整的调用栈。
    - GitHub Logo
    - Js Profiler BottomUp的Tab页的Heaviest Stack表格显示的是选中的函数的完整的逆序调用栈。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    Cpuprofiler的Heaviest Stack功能

    + +

    + Js Profiler CallTree的Tab页的Heaviest Stack表格显示的是选中的函数的完整的调用栈。
    + GitHub Logo
    + Js Profiler BottomUp的Tab页的Heaviest Stack表格显示的是选中的函数的完整的逆序调用栈。
    + GitHub Logo +

    +
      +
    •  Symbol : 函数名。
       
      -
    • -
    • + > +
    • +
    •  Total Time : 函数自身及调用者的调用时间总和。
       
      -
    • -
    • + > +
    • +
    •  % : 总时间占比。
       
      -
    • -
    -
    - - - + > +
  • +
+
+ + + diff --git a/ide/src/doc/quickstart_hilog.html b/ide/src/doc/quickstart_hilog.html deleted file mode 100644 index 7c9528d1..00000000 --- a/ide/src/doc/quickstart_hilog.html +++ /dev/null @@ -1,887 +0,0 @@ - - - - - quickstart_hilog - - - - - - -
-

Hilog抓取和展示说明

- -

Hilog分析模块主要展示系统日志信息。

-

Hilog的抓取

- -

Hilog的抓取配置参数

- -

- 打开Hilog开关抓取taskpool数据。
- GitHub Logo -

-

Hilog展示说明

- -

- 将抓取的hilog文件导入到smartperf中,查看日志信息。
- GitHub Logo -

-

Hilog泳道图的框选功能

- -

- 框选Hilog的泳道图,展示Hilog的tab页,Log Level可以选择日志级别,也能根据Tag,Process name,Message去搜索。
- GitHub Logo -

-
    -
  • -
    -Timestamp: 时间戳信息。
    -
    -
  • -
  • -
    -Time: 日志的显示时间。
    -
    -
  • -
  • -
    -Level:日志级别。
    -
    -
  • -
  • -
    -Tag:日志的tag。
    -
    -
  • -
  • -
    -Process name:进程名。
    -
    -
  • -
  • -
    -Message:日志具体信息。
    -
    -
  • -
-

- 框选Hilog的泳道图,展示Summary的tab页。
- GitHub Logo -

-
    -
  • -
    -Level/Process/Tag/Message: 根据类别显示日志。
    -
    -
  • -
  • -
    -Count: 各级别日志的条数。
    -
    -
  • -
-
- - - - diff --git a/ide/src/doc/quickstart_memory_template.html b/ide/src/doc/quickstart_memory_template.html index 1a30ce5e..8a22871f 100644 --- a/ide/src/doc/quickstart_memory_template.html +++ b/ide/src/doc/quickstart_memory_template.html @@ -1,540 +1,254 @@ - - - quickstart_memory_template - - - - - - -
-

系统内存抓取和展示说明

- -

系统内存分析模板帮助系统内存调优人员进行进程内存拆解。

-

系统内存的抓取

- -

系统内存的抓取配置参数

- -

- 打开VM Tracker开关抓取内存数据。
- GitHub Logo -

-

系统内存展示说明

- -

- 将抓取的内存文件导入到smartperf中,查看进程内存的情况。
- GitHub Logo -

-

系统内存中Ability Monitor泳道图显示

- -

- Ability Monitor泳道图分为MemoryTotal,Cached,SwapTotal,System Purgeable Total,System Purgeable Pin,DMA,Skia - Gpu Memory泳道。
- GitHub Logo -

-

系统内存中Ability Monitor泳道图点选功能

- -

- System Purgeable Total泳道图点选功能。
- GitHub Logo -

-
    -
  • + + + +
    +

    系统内存抓取和展示说明

    + +

    系统内存分析模板帮助系统内存调优人员进行进程内存拆解。

    +

    系统内存的抓取

    + +

    系统内存的抓取配置参数

    + +

    + 打开VM Tracker开关抓取内存数据。
    + GitHub Logo +

    +

    系统内存展示说明

    + +

    + 将抓取的内存文件导入到smartperf中,查看进程内存的情况。
    + GitHub Logo +

    +

    系统内存中Ability Monitor泳道图显示

    + +

    + Ability Monitor泳道图分为MemoryTotal,Cached,SwapTotal,System Purgeable Total,System Purgeable Pin,DMA,Skia + Gpu Memory泳道。
    + GitHub Logo +

    +

    系统内存中Ability Monitor泳道图点选功能

    + +

    + System Purgeable Total泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  ActivePurg:当前时间点的ActivePurg内存。
       
      -
    • -
    • + > +
    • +
    •  InActivePurg:当前时间点的InActivePurg内存。
       
      -
    • -
    • + > +
    • +
    •  ShmPurg:当前时间点的ShmPurg内存。
       
      -
    • -
    -

    - System Purgeable Total泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + System Purgeable Total泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  Type:内存的类别。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:当前内存的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:当前内存的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:当前内存的最小值。
       
      -
    • -
    -

    - System Purgeable Pin泳道图点选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + System Purgeable Pin泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  PinedPurg:当前时间点的PinedPurg内存。
       
      -
    • -
    • + > +
    • +
    •  ShmPurg:当前时间点的ShmPurg内存。
       
      -
    • -
    -

    - System Purgeable Pin泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + System Purgeable Pin泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  Type:内存的类别。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:当前内存的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:当前内存的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:当前内存的最小值。
       
      -
    • -
    -

    - DMA泳道图点选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + DMA泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  Process(pid):进程名(进程ID)。
       
      -
    • -
    • + > +
    • +
    •  Fd:DMA内存文件描述符。
       
      -
    • -
    • + > +
    • +
    •  Size:DMA内存大小。
       
      -
    • -
    • + > +
    • +
    •  Ino:Ino值。
       
      -
    • -
    • + > +
    • +
    •  ExpPid:申请者的进程号。
       
      -
    • -
    • + > +
    • +
    •  ExpTaskComm:ExpTaskComm的值。
       
      -
    • -
    • + > +
    • +
    •  BufName:DMA内存名。
       
      -
    • -
    • + > +
    • +
    •  ExpName:申请者的进程名。
       
      -
    • -
    • + > +
    • +
    •  Flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据。
       
      -
    • -
    -

    - DMA泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + DMA泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  Process(pid):进程名(进程ID)。
       
      -
    • -
    • + > +
    • +
    •  SumSize:DMA内存总量。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:DMA内存的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:DMA内存的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:DMA内存的最小值。
       
      -
    • -
    -

    - Skia Gpu Memory泳道图点选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Memory泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  GpuName:Gpu名称。
       
      -
    • -
    • + > +
    • +
    •  Process(pid):进程名(进程ID)。。
       
      -
    • -
    • + > +
    • +
    •  Size:对应进程的Gpu的使用size。
       
      -
    • -
    -

    - Skia Gpu Memory泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Memory泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  GpuName:Gpu名称。
       
      -
    • -
    • + > +
    • +
    •  Process(pid):进程名(进程ID)。
       
      -
    • -
    • + > +
    • +
    •  SumSize:Gpu内存总量。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:Gpu内存的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:Gpu内存的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:Gpu内存的最小值。
       
      -
    • -
    -

    VM Tracker下的smaps泳道图展示

    - -

    - smaps泳道图分为Dirty,Swapped,RSS,PSS,USS泳道图。
    - GitHub Logo -

    -

    VM Tracker下的smaps泳道图的点选和框选功能

    - -

    - 点选和框选Dirty,Swapped,RSS,PSS,USS的5个泳道图中任一个显示的都是一样的内容,会显示Smaps Statistic和Smaps - sample的tab页。
    - Smaps Statistic的tab页展示。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    VM Tracker下的smaps泳道图展示

    + +

    + smaps泳道图分为Dirty,Swapped,RSS,PSS,USS泳道图。
    + GitHub Logo +

    +

    VM Tracker下的smaps泳道图的点选和框选功能

    + +

    + 点选和框选Dirty,Swapped,RSS,PSS,USS的5个泳道图中任一个显示的都是一样的内容,会显示Smaps Statistic和Smaps + sample的tab页。
    + Smaps Statistic的tab页展示。
    + GitHub Logo +

    +
      +
    •  Type: 将抓取到的信息根据Type归类。
       
      -
    • -
    • + > +
    • +
    •  Path:虚拟内存块路径,类型中有多个则显示multiple。
       
      -
    • -
    • + > +
    • +
    •  Size:在该虚拟内存块路径下内存的size总和。
       
      -
    • -
    • + > +
    • +
    •  % of Res: 每行的Resident Size 占总Ressident Size的比例。
       
      -
    • -
    • + > +
    • +
    •  Count:统计的类型个数。
       
      -
    • -
    • + > +
    • +
    •  Rss: smaps节点中Rss。
       
      -
    • -
    • + > +
    • +
    •  Pss: smaps节点中Pss。
       
      -
    • -
    • + > +
    • +
    •  SharedClean: smaps节点中SharedClean。
       
      -
    • -
    • + > +
    • +
    •  SharedDirty:smaps节点中Shared_Dirty。
       
      -
    • -
    • + > +
    • +
    •  PrivateClean: smaps节点中PrivateClean。
       
      -
    • -
    • + > +
    • +
    •  PrivateDirty:smaps节点中PrivateDirty。
       
      -
    • -
    • + > +
    • +
    •  Swap:smaps节点中Swap。
       
      -
    • -
    • + > +
    • +
    •  SwapPss:smaps节点中SwapPss。
       
      -
    • -
    -

    - Smaps sample的tab页展示。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Smaps sample的tab页展示。
    + GitHub Logo +

    +
      +
    •  TimeStamp: 时间戳信息。
       
      -
    • -
    • + > +
    • +
    •  Type: 将抓取到的信息根据Type归类。
       
      -
    • -
    • + > +
    • +
    •  Path:虚拟内存块路径,类型中有多个则显示multiple。
       
      -
    • -
    • + > +
    • +
    •  Address Range:每段虚拟内存段的开始和结束位置。
       
      -
    • -
    • + > +
    • +
    •  Rss: smaps节点中Rss。
       
      -
    • -
    • + > +
    • +
    •  Pss: smaps节点中Pss。
       
      -
    • -
    • + > +
    • +
    •  SharedClean: smaps节点中SharedClean。
       
      -
    • -
    • + > +
    • +
    •  SharedDirty:smaps节点中Shared_Dirty。
       
      -
    • -
    • + > +
    • +
    •  PrivateClean: smaps节点中PrivateClean。
       
      -
    • -
    • + > +
    • +
    •  PrivateDirty:smaps节点中PrivateDirty。
       
      -
    • -
    • + > +
    • +
    •  Swap:smaps节点中Swap。
       
      -
    • -
    • + > +
    • +
    •  SwapPss:smaps节点中SwapPss。
       
      -
    • -
    • + > +
    • +
    •  Reside: Rss / Size 比值。
       
      -
    • -
    • + > +
    • +
    •  Protection: 内存块的权限(读写执行执行)。
       
      -
    • -
    -

    VM Tracker下的GPU泳道图展示

    + > +
  • +
+

VM Tracker下的GPU泳道图展示

-

- smaps泳道图分为GL,Skia Gpu Dump Toal,Skia Gpu Dump Window,Skia Gpu Memory泳道图。
- GitHub Logo
- Skia Gpu Memory泳道图点选功能。
- GitHub Logo -

-
    -
  • +

    + smaps泳道图分为GL,Skia Gpu Dump Toal,Skia Gpu Dump Window,Skia Gpu Memory泳道图。
    + GitHub Logo
    + Skia Gpu Memory泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  GpuName:Gpu名称。
       
      -
    • -
    • + > +
    • +
    •  Thread(tid):线程名(线程ID)。
       
      -
    • -
    • + > +
    • +
    •  Size:对应线程的Gpu的使用size。
       
      -
    • -
    -

    - Skia Gpu Memory泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Memory泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  GpuName:Gpu名称。
       
      -
    • -
    • + > +
    • +
    •  Thread(tid):线程名(线程ID)。
       
      -
    • -
    • + > +
    • +
    •  SumSize:Gpu内存总量。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:Gpu内存的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:Gpu内存的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:Gpu内存的最小值。
       
      -
    • -
    -

    - Gl泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Gl泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  GL_PSS:GL_PSS的大小。
       
      -
    • -
    -

    - Skia Gpu Dump Toal泳道图点选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Dump Toal泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  Module / Category:模块/目录。
       
      -
    • -
    • + > +
    • +
    •  Size:按照模块/目录显示size大小。
       
      -
    • -
    -

    - Skia Gpu Dump Toal泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Dump Toal泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  Module / Category:模块/目录。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:对应模块/目录下size的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:对应模块/目录下size的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:对应模块/目录下size的最小值。
       
      -
    • -
    -

    - Skia Gpu Dump Window泳道图点选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Dump Window泳道图点选功能。
    + GitHub Logo +

    +
      +
    •  Window / Module / Category:窗口/模块/目录。
       
      -
    • -
    • + > +
    • +
    •  Size:按照窗口/模块/目录显示size大小。
       
      -
    • -
    -

    - Skia Gpu Dump Window泳道图框选功能。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    + Skia Gpu Dump Window泳道图框选功能。
    + GitHub Logo +

    +
      +
    •  TimeStamp:时间戳。
       
      -
    • -
    • + > +
    • +
    •  Window / Module / Category:窗口/模块/目录。
       
      -
    • -
    • + > +
    • +
    •  AvgSize:对应窗口/模块/目录下size的平均值。
       
      -
    • -
    • + > +
    • +
    •  MaxSize:对应窗口/模块/目录下size的最大值。
       
      -
    • -
    • + > +
    • +
    •  MinSize:对应窗口/模块/目录下size的最小值。
       
      -
    • -
    -
- - - + > + + +
+ + + diff --git a/ide/src/doc/quickstart_taskpool.html b/ide/src/doc/quickstart_taskpool.html index 3f8a298c..cf9d7dd3 100644 --- a/ide/src/doc/quickstart_taskpool.html +++ b/ide/src/doc/quickstart_taskpool.html @@ -1,539 +1,253 @@ - - - quickstart_taskpool - - - - - -
-

TaskPool抓取和展示说明

- -

- TaskPool分析模块主要展示应用程序使用taskpool时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。 -

-

TaskPool的抓取

- -

TaskPool的抓取配置参数

- -

- 打开Task pool开关抓取taskpool数据。
- GitHub Logo -

-

TaskPool展示说明

- -

- 将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。
- GitHub Logo -

-

TaskPool的任务关联关系跟踪

- -

- 任务关联关系就是根据任务的executeId,把一个taskpool任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。
- GitHub Logo
- 如上图所示,点击H:Task Perform: taskId : 2, executeId : - 2的调用栈会出现红色连线,红色连线展示了executeId是2的任务的关联关系,连接的调用栈分别是: -

-
    -
  • + + + +
    +

    TaskPool抓取和展示说明

    + +

    + TaskPool分析模块主要展示应用程序使用taskpool时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。 +

    +

    TaskPool的抓取

    + +

    TaskPool的抓取配置参数

    + +

    + 打开Task pool开关抓取taskpool数据。
    + GitHub Logo +

    +

    TaskPool展示说明

    + +

    + 将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。
    + GitHub Logo +

    +

    TaskPool的任务关联关系跟踪

    + +

    + 任务关联关系就是根据任务的executeId,把一个taskpool任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。
    + GitHub Logo
    + 如上图所示,点击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:任务返回。
       
      -
    • -
    -

    TaskPool的并发度

    - -

    - 点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是3。
    - GitHub Logo -

    -

    TaskPool泳道图的点选功能

    - -

    - 点选taskpool的Slice,展示该taskpool信息的tab页。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    TaskPool的并发度

    + +

    + 点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是3。
    + GitHub Logo +

    +

    TaskPool泳道图的点选功能

    + +

    + 点选taskpool的Slice,展示该taskpool信息的tab页。
    + GitHub Logo +

    +
      +
    •  Name: 任务调用栈名称。
       
      -
    • -
    • + > +
    • +
    •  StartTime: 任务调用栈开始时间。
       
      -
    • -
    • + > +
    • +
    •  Duration:任务调用栈持续时间。
       
      -
    • -
    • + > +
    • +
    •  depth:调用栈层级。
       
      -
    • -
    -

    TaskPool泳道图的框选功能

    - -

    - 框选taskpool的泳道图,展示Frames的tab页。
    - GitHub Logo -

    -
      -
    • + > +
    • +
    +

    TaskPool泳道图的框选功能

    + +

    + 框选taskpool的泳道图,展示Frames的tab页。
    + GitHub Logo +

    +
      +
    •  Execute Id: 任务id。
       
      -
    • -
    • + > +
    • +
    •  Task Priority: 任务优先级(HIGH,MEDIUM,LOW)。
       
      -
    • -
    • + > +
    • +
    •  Scheduling Time(ms):调度耗时(任务执行起始时间 - 任务分发起始时间)。
       
      -
    • -
    • + > +
    • +
    •  Execution Time(ms):执行耗时(任务执行的duration)。
       
      -
    • -
    • + > +
    • +
    •  Return Time(ms):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。
       
      -
    • -
    -

    TaskPool的队列任务数和线程池里线程状态统计

    - -

    - GitHub Logo
    - 如上图,H:threadNum,H:runningThreadNum,H:idleThreadNum,H:timeoutThreadNum是线程池里线程状态统计,H:taskNum是队列任务数。 -

    -

    TaskPool的任务超时退出

    - -

    - 在带有H:Thread Timeout Exit的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。
    - GitHub Logo -

    -
    - - - + > +
  • +
+

TaskPool的队列任务数和线程池里线程状态统计

+ +

+ GitHub Logo
+ 如上图,H:threadNum,H:runningThreadNum,H:idleThreadNum,H:timeoutThreadNum是线程池里线程状态统计,H:taskNum是队列任务数。 +

+

TaskPool的任务超时退出

+ +

+ 在带有H:Thread Timeout Exit的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。
+ GitHub Logo +

+
+ + + diff --git a/ide/src/figures/Hilog/hilogconfig.jpg b/ide/src/figures/Hilog/hilogconfig.jpg deleted file mode 100644 index 96a0a58606118aa2badd0169ead963b3ddb0c02d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41510 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 QmK*=?gc!))wafAU1D|M0LjV8( diff --git a/ide/src/figures/Hilog/hilogsummarytab.jpg b/ide/src/figures/Hilog/hilogsummarytab.jpg deleted file mode 100644 index 33c47043b3efd4138c59671d5664ab779ed27030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34026 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 E4_a2J5&!@I diff --git a/ide/src/figures/OperationSkills/Tabcallstackskip.jpg b/ide/src/figures/OperationSkills/Tabcallstackskip.jpg deleted file mode 100644 index d72f2452eba4dc5f583e48ad9fda1f44fb326f39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55053 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 diff --git a/ide/src/figures/OperationSkills/Tabdrag.jpg b/ide/src/figures/OperationSkills/Tabdrag.jpg deleted file mode 100644 index 1b3ce614241db915e32826a81f312440b1bbd558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84327 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 #up8PU_?SrUJ!u{%^H$Vqj?1wrNgn8gL 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 G8Tt>2z7+%j diff --git a/ide/src/figures/OperationSkills/Taboneclick.jpg b/ide/src/figures/OperationSkills/Taboneclick.jpg deleted file mode 100644 index b664908616f080dd48688b6cf9de30e31ca88ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76021 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 diff --git a/ide/src/figures/OperationSkills/Tabskillcalltack.jpg b/ide/src/figures/OperationSkills/Tabskillcalltack.jpg deleted file mode 100644 index 19941721f7a1c5c573708bfe5da2ed7cf9454da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88830 zcmeFZ2V9g%);HQD$s$QIt%8CCktB#fD@e{+vPuTYSwf?TNEQ$f1RBXfl7K{MK_%xb zQF6|iZkq4G5yX9++1Z`h_ulW`b*6tlcGpu?=bZlub?Q_d^c{Q!oskxo5(lB7p@Ce0 z|3C)=AW;y`sZ-deuyC-kv2k&6@Ce8V3Gnd=s7OeO$mpoS^mNp;wC5PFFrB-=#z0HU z%y*gXDkl#Q518q?5I>jT6>c7`!%om}ad8Ro2`C8(DY?$mp6B|P{~UY(5#ykrJ;jcJ zb^(M=jD|sscJK)V27%D9fY}~S`1>C;bPPWi0{m@l*N z@LuENzb+tpTTEO+Qc7AyRZU&vj;5A@p^>qPshPRGgQJtPi|a%0Cq7SopZWQRg};c1 zjCvUzlbDp8lA4yDk@>cuu;^WJNoiU2$4{SYYU}D7Iy$?$dwTo6^pB2>PfSit&&2+fm?Zn{Jvc~-dRST(Tl5xq9}dmr2ECR8-@2fRZnN zvLjM88OHmzJD_Gj(|xBP)&%SftA=e2la?c*_0?dT_CAT_F9jLWbbPM%&jsHxM6*8) zWiw8{7BxC~KZRG;+Z!=+C=z;CZ(aRCCf~53*lhBy1Ca5KGombQe?Q~^Z|0mxbP00hrJ0Il*se}2yy3)#9v^nYK|*C{&= zN!Nx{9%Ju)1FXV7l4?(;njcrvmEbT`ZsNe`CD@v zKP&%aszh6DESylIf`XBY{{#u&6-=*cTY_E85%Q&y4z-kV0D>BPiy3}4e@pngutEC& zw)}UwWY#{bM;9h0SC%kni+TqELbTtkn7GTxOmR-V^{LEBafRhX5K)F!!2t*- zIBtrvIW_&w4c;b(-C(mf>wwQKeUaDcM$1b+7=m+$YM3bBeE7bBUG&&;=Z;z4j)q*x z>H7uUEj9i2Jfbjpjc|#rDWY=3OH>y3v&6EbR2SDfS(h?#_!*iH-DmPohCl}K%_%bU z3C~QX=cJu9n5%lp3#zegT_KYOkh=AO>Xvg{VN-m~~Ep8RG|Awa``J`!kU)zzZiKD3a$mK7IMvod*e(($iMUYepMUa3I0^gD+ilKbgCj&Z4(uwNmnQGJ^N%S@1zI~NQ zHm)QIVUInu-z1#P{WP&`K8RGbFfJjUPU|{FW?}y70Vudj|0iuRgMJIis<#Lo|D@aG z_`feK{j<^bu$Z6J zD}(=2UWMEN$UP5xBVz`X=+6v%g3U&YZ>~#+X54)p=Y<*Wb$v;J4DBMB(oHOKEf0~N z{OKiHL`P&4VsZlQ<^epJ0 zMwf&evL}nVtOklHTlKg*ym-mtq z%W*Qad@*CF(J-{lO$k`BI30kH=7}%$X5|PL)8$+-nrXQhXDJ!nFtMarHrNEF1KUo0 z21uq?TctpWV;z8UL`w1IQ5OzCbsylHbsFdOEUm}5t3MrpsBejpsf(kDktzO4V6CA zl9*zX=Ug{1H-Side}tJvsXiWEOpa=bcvdL%VN42{<8W^!E>0ZLV~GOM(7KZ0;6&Z5UUj;(AX5%vy?%LT?${imI#13S&N zOJh^q?f|?D6Y*zGK>vpiF2%m+0jL6!EuqY@=X(HhfocVN;V~!vxzFszylY_qK6e>0-RjKTExZ zlrx=GUnAriyWajr{{E27v`y3$B`wNbgR$cVh^p^V8)-*uXTuEfq|>c-84@hzxM=B2 z`K=p556aEmeH!w=GpZRt1E*I)()e~k1(nK&S|AM}w5T zs8h07X;g7$=>%7Q``X@kSy6Y>yPw2yD!1Qhccg)AKVMY4@_b@}XH~ zQu-|!?PA75Ujm$+|CF2~6*iST2*s4^QJEaC6Nt$V?ZfYUC>*k=is(dcn9>+jdRpHa zerI*hqA}=(#N%OyqF`BEBN6=YuJwWb(n9B;Vg|0f8P%_y{d1$w*aee=pOlVeNL@6L zY`$oa7VO3vtDQUldLzVS-;pL;cP>&uMCwYw}{Ddkx^d7O6iTD4SZb9O&yoNjQ{>EZlitG4Cin$2T#C| zJk1@B z?23Uwm0FCd@Xq8}UgDJ_-ayoEGC0z1U$(ZjYQK=U>x-6j&Wcj#-@SeRzD#R2SD>6jJ+$H-ZTyD}j9fk515jSh(h}P%m9EIC{^n2lw`c_A$Ute4Ar6ay7r{6@NK%Fm5M3-fYZ9GmDGJ}_pdRnzZtf+g< zBg0r~Jcj@3vxW~jXY%>SV~g$UX7J}=uzA!i6XOcF!a6rEot_JCx`W#LN-_VD*7!LZ zh_Ffhc~z{y%wSx`+yruM6bYS{5Z}V*ixev6_(m4aj^^#w;#BK+XDS|rwxLUmYIDyN zTSKigs-R>7VYlx_pjx!3p2vPoMF!H}8k+CrLF}KkRFOHOt9JlONzM}FBfd>0c45CG zQ);}6M5=x|70U|V1D~MYKouTqBS;c(GDf!J*yPgLmv=$sEnl|2zwze0`E@Vzs<^0P?!!c&Wf*EP(wouT$9Y z9u=c2<6{UHNt}BHGwl+_6k(vM@=ox!WL~fOl)^i?dxEyw4YQ9?ca_Vl(PGb{&TwI8 zTMy1cOjogjv!)jjY|0Xo4_X#?rmv4vZe)h<+#g;>7+o=T3Q%#dJ7a0;pAPbFk-sU# ztZlJxfx6YZw}>*r7gA6P(8%*)>e|F%YS4KV$D43Ro{LVqQHLP#Zg`iy=0nfdj%hCH zRP07;{c^U6_Jy=b^0#P1q~{kb9q+_Iip>=VFI<5*T1*zi8nDUaZGYtu9#p@x63_GO zjqm^}R}o=#0AkHu#$T*~5};mez&D5RT1I+}`C7XDjT(0I^+NLw7xEFQV--T~^cp_BSw>>hM z$JgE&ST(K3uE*}FTO%(>?Za%b2Xsv=w&0H)0x<}lOxQ>bVvBa3+e)rD0A)k#to9+< zkR~}MrAmSAzU?`_NUoduixiRUX#O`nm)r|6&vp}R#Fv$sW6QvK%a)WyBn z0us+Brz@ySMKJ+ac;4q9t+uf#WbJem3J%b_ktp5yhLujbQA#^NNPLb)O021aBYqSk ztF8qvylOPRR)i2_)nokr0Ca8!KEKs@0Fq`%LXimJqrA18QCLhn-P()Njq2KNLIQI% zrE*PNe9uR#StN60h(C@JE>($Wt zY?|vg*s8b-b|m=>$_U?V)e1+Ew}c;ngwl}nS!D;H5KYKXM*7y(1+aPwGK~({$D5Wq z0L6Er9H7;u9nfh&_u`y*losyw31`df%HKGC8_1UX*e4%=T7msPfd$i~zK?kxT2X7U z&PdicCX}1PZu^hE9Q)cO@_p~_6>&`RFCR@Xy>oQxMMqt#=1Q^w%zV+D5DfVKu3F-4rp~0}y@30jSLMh$oD~w6nJ{rWJO9Z-1}^e_Ns>@@T5I zBS(Y$?NjyF_l;4C?retP2ihzDpvn>8I+$x8OYWGjz~+U9mfldJ*^0aZ&oS$Mk7&pd zUdpMNj|lyz!sk-()l#l$x&%8%+Vf<`F@@_gw?f@!PPO$W3A79vK@82*PdSp$1oUWx zlZgCxPWfcnnLwO@XHEF$f77+10_6h0CIq89Szm+gK7U13jbuNf2I<%G^0H) z(ra5_kK&8Ir~td(>La4Z@|i)=%_>mm$GC^a7ar?C&O7iX?ncI+7r|fGzuX;-7>#(9 zW*Ciq51_t3ba<{7=?UJ(UjJXU2AwO@(jb_CXMAB_CBPq&{7CoEdEHkYog3+k2cYpG z;TK0b3)rk5bN#D=(ik0%45TuKotv=N^*J^RA&}FBsrO|&Ct~BxIli%p^c$PXwVoV+ zYQG+U?DyJ_457;3X9$yyyPD5W{IyA8Jv6Aj2DfI9;Z)*DZ>D_vjS-A#7+UNGIR4IHT+jB@?V_j9RDG2BuW|~ z$^yL>iUZILq}-8Nnmq3NKW&z10H6D$F8;yJgXx$>a|*!IzN~zDB;Efl-*!yx2{TVl z@v-@GS2!Dzlg?b>$QkG4j4bgXYEu8F8}ESmKGXzJrG1!fb|U*5;Iqo?$&;9+)x!^&E)^(r6F!w5H7Oci=+L{0chogDSU(E?E&aR34ABB!0gQz z{Q~ybRh_qip#-a?;BZB(z26grB(!G`+ItHq49u2OyC3?b05#cSNY@(@;W4NGLv$b+ zF|i|oBpnIvCaxn8T)%~utEg#5Qw~THT;ZRS2IMSr)bei=UHW~%-uj`EcJWTkNsKmV zy2(B2IzwPCt%oUkH#x;IkV5|1%t_jnejw=xa&4GJuuUxUi&+RHO z=I*p%`5=;JWfb4!7J81!$7i8%#wA|on{ULMS2`D?< zmPvF7FezZ7y(fFB5qea#BCwL@tG%o!o&(U2roRUEzcvGqHwr?8@ZRm}R+StvXR3#m z@Hg!3o1cK{-!Tdr!-*(5h;$m$Mc5LFZnR7k3a9)KV~!oeeVr%U3~ob20p%HvLg=riNsQ@U(LBq)L>?CmBB($Wx|!=YRjvy1 z8s>aOO z3;<@6e*hW*yp?@ziJPRe_#}49Jz(9hp9r|31?YA^&>hQ8fw&V+acHE07hf*ZdQ!a5 z$9~Z=-fZ~zkhxZtC95m`Go27c4dh9IDjEJR8vhj~#Ti-MfGx$uWEKW(y%3h!@2vTG zn7;)#?4p*awAGWg%70j#*cLxtK?FX2^KAOx<6YDBQNs84s84|Y_8MP5gRsnopb?;k z>`K2hxPJ>5ajmy$_QzG!?l9gBLPSA0XZ{=$RXK_*EU)o~ZM-B7?!MB%1rj?1v7JOVLUg$FbKx!bLl2N1409DLRtXWrW|A z(km(0ZF(j9yiQKu_QR+^wg(IM9y@lDF4{A8QuewTDH^icU4L*tXz0;Qj^&QCxO{dZ}2F!<=I87b4GZaqQf7SWD%SR1sd|o}RE8f{l&Lx7aFpKyzpDEpZ)S zrO7z|uiJ zELl71-jHYJ$X&FQnMjB?lIxofj5m+W%91fkH*LFl!DTszK)wmLdVxKnYHRyV*8HN# z_MM&wi$D@6C)a>dT&ujz<`iLYEXW)Fx`R7lXk*dV(I z{kVGS0CdTDTgGAKev9e7D9A(8z<`hhBb1|W((rst(9oKUa~hkI#?zr{%}PViWkxXH zB;=X^^~`+y3LNR_;)|*d0RqyC_|T}ir(39s#-4}40~Q&Z_|1Y6bdBO~ML8O>o|Ef@ ze_VeoWNz5QQ%d+jPP#cL?~)CZ$|PE^GlXMY2WyNi9&;7%YQwv?Uqh^~vqH7=i-dVs zGGDoD)iB{)Te+6Nx=a7!q8n8A3hNwD1Cb_Y;cDT54KuMP{KPok^z`ODEIobEQCDEk zDB;q@P*)Vch&j#C^=J3DTiU`MUSngsk#kC6_v|u!!SDdo->7>UhN-YhqZyZ^!sZk? z7c9YYdSQJ2k;oUQE-C&Y8QF9fbZ%YDE0szz#akxHLQi=(EyTI3q&cTf?O%Rpct97E z-vBcc;aMW65!YZC@=--3mrVWg7)3CYmrp#@dgdd;#GtsinB$6>hQX)Ey`bSV<4*SS z&l3X!lz|zc^-V#~)9A_(ZBhF37Tz9^>;-FJljA9{)dKp}hdknSVj+db#al7jjXuso zl2V#v9_Z=hS(-6KNN>Q{<_^I3nZvwz=2>;b?yy^lJmS#+XcF*R%e=ZrexFsnfOmNp zTMS4ayo2p2(SghkH&h5t?w9~(S=;siq>GJuT*Uir3ZjnRmn5ou`m6Iyi0@w?&5oQv ze{~ho1wF5#$_cIg1O&rKACTP10v9D6Xl)^UDJC+p1c+YEphG-p7xvpXQj+z{gkKb% ztgAr7gVr{|Z>gwW{+_%4sYrm})&6bR5^VCe{#?}T?U6Y~Am#;fAV8IkDqI@madKly z1ire>gh<-!>c#`|l7q0NkolXWC%5Ro=bq(L>rvU2PrYb<3u$Q~bELD%Kb7WSG8{#s zIKbpTqQ0UWe`CuL{U>6`h!f8*(Aa?q(Lz2cY&t>Ib557HK7-9IcxLO+xxX_)t#d?8 zcvLE&ropf&^7g)FMlHj)BaD|VCM_Qk7}yuzzk%XyQGe0jRLq&!Y-v78dOu(EIYeMO ziTBiiiTZ`uOvW%&MZnrnGq!J!%;PW_hrXLio~m>^baUNr0}wc?w9Zd-E`5DQ+DIQi zRyzM`H>VW{0@^3v23f0n^V;GS);T@bCw*WXWns?n&9w!K zc?*KF2a9LxWi==p67-p&&ck^dA-nimKwNvd_u>1`gM|2ON=d@o#HoB>6}b+`1iJ-l zCnHX>rBG|_3R#K_A#-B^GSDq|2k{D3#K=)heHar!_)G; z+}bl?^`3dPJg?-EMR*BHP#kGJuQK#x%u+RP+1z)FeikFrp4;%=7i0BJd9#)Flu3L? zTf+yUtK#;xfV*cvX7w#b}{58T6GCUnq zq%1Jl&-*&N-d*IZj0e|zqiUoJZn!B1BdrN~`2h$7t;+@PJ6g}`X?sA0U$ayU+!Vum z=8c!srjg--ff92$0L^DXr8~Ue%fyT_rsx*+%>jjKi$aQr^?~V@ds3*~j7%EOFlePI zy7|eXw5Qga&w=8;eHQbhC+43U0FBRkFE^urt!;8%QS6ad`v;&I7IRQ0lY$gvc>wBj zjnjf`t(C5_KD9Rb!Us{|Q>Wywf5`9=RK#-D)@1S@lkr#=gIy8#ij>`~su4FoZ;%44 zpNfM7h+Sj%lNR6=vmx&TH^y>1+ORkZ`aH@P;RXstiv!d9FLz&V3j`-!?eB z(&ti%1}_+Jw7A}Ioxs>6&kzGC#<$9rl?Bg@EBISH%b#q#m@_R)8%V-+eJb`{|3gNc zNTtkyu(n5*kEn#CSF0vAHnR#9G4&ok1eTJX14tJB%4W3ZAF(5iJl4p(f)?joCRVOz z@hD=ETBPxi+xT3wVKJt!&3g! zsZN(`$8VB*4rN2zxEc>Y=s@0ooUE2&@5%F&jjIC#wJZ(lXT#J(Up!R`3wTt5F_Llz zHCzDXbp=9D_*Re||HzR$1*LI!)nl$}-%xjRJ%Kf} zy%}Ded@`iEN%-%GgzQMaGE9F6T2+Q?KU36qQUY0Ey^^K&BM8GkLcm{Eywr->$zl=* z$QnRK+V?Q-{8Pg-3E!mzIYKJiZ$aH(mXfM0+?BB;@N9C6`wa1AyZ zHo21__IW^`p}~0NQU>E1zu`wthDm_A+^92j8i@MeCjX{gS6}_n`iOF}D)QMS$twGfUQhRDd$Uy|yqSk90^xZ$a=W)(a5%WU&kVTne z&`N&16GBC7>J4Z0+Knr=&&fz0(qr>uZe&%LHesxCGZF+bcn8DYzcydoe?VjbWGbR0 z0vtrGOk`@pcrY6b9*bZ7I==07#bCyBOMtp>J?R?i;k%u!WkSlK5(7bl+)2hA)+Xg~Jl;!x^)(H5v^cJ^$(stm(PrY9<@*%f4|O ze(U>EA9y<6zo(eEvu>g*bx^Hc zJWMim9W`?rBqjZg7Zxtsc(iZ^7fF2Vj|lcn9yIGOT&;rAeQH{jwArSK^MA{sF^Gdf zHSJ%&2G4)vPRYw0!%4PQo^)mW49h2zPE!Wqms`nEGuO6v<32|g7(m(DKC-@POEPFTxC zSgU2LVX-&&X($}p(|e=*y|cpGxUZ2?dUv{b{IDv*DXV6*@5hxc#v12n4~jZlMV(zs z&a2~NNHV;-#oK7w?-TFsoUJ`ip`@j7aU%+6z2p|pgHs*J`wM7+1momb5j z*Yko^J+f7#qUXUIE3ArK))oy{e;mf>2oFgyMk4#3w?H!P44VL5a7vo~ZT86uAL@IB zxslogryn}E+Ab>2Zbz1ZpYeX~&bd%%QQG5jsl+CL%?(tY|20CWZ2gWvpr?lKrHZg& zg||cV_4Z`qT$)L2NjC(LeN2?oJW&c!Q-!EHaW zQtHb2%12}yW3l5c7d&~_HAQ*NRpxwgcmqeLX}DF>bnttZ`8#Dk`|nC~X8e*B$Op7q zdP(c?Pu&SOAmF6KCk=EQ?=SVxR)i_9bhf5j6bS8gIcn0Kgo0Pp9@a# zu45<>^q;<0<}J4RH2+!_k5juIBfF*T4J>grWhxAME+YQ<7W3ApiuJB<<~Xz1QzqNo z>~5ip;UtvM2TEX9a!V1$Q1_(mN2NtGC|sKpC)O4nmLeJg%TKpq=xo8p2-P9J;d8wg zt%`7D6XLwB8_(;E+J2w~)A*()ICF&^eRri+Nu^6;?x?f}4vm?}3W{#Zg#FFUpIhEEhH>-Pc=DP*D~qD-hdbleyo= z5Lm#Mapeu?0%)&WfnbhL>nRK}Kz;pEQCV1DQ$V3i-ni2Z(h*wYw-pj^c4Hc5^!vB= zWa%X%=Vm8WpJy;)hB%AZ*tywi$AGtF9~wIKv-NcJ-&!NOpmYv9qaJg;#dS0JUCHp) z;TcTP<0E2CZ4!F~i%2;)$CAA<6O0XzCwbccNL_R5foHDrt+FrXbk0UU2e*ap^u!rk zjI5mwK*22`8;Js-P9U>`UTEl-a}_%Itf?GRNs|hBF?;lo7a(_ow}zXWY8%vYSZAErKkwY4YBw~Mm%AC+I0&uJmylH z{An$Rvq4^Z-3gzd0z8;b)UGP9Vowj>@6^f;&?aG}ON#F*56R{|Tv>LaIfJ$Mz*^GG zzj%07+ZrBUeMmSNKsZyIY9R=Ck0vDhBH1qxY`~b8R1C%*+ z=XQ93OZM7J_Bxbq;{WQQOS*QEqjkkUEKz@F2f8f=lKWMw;|@A?Lm~&acnW(FK^qC^ zmxQJ5`%7B!EgnW}`#WlDze)?kx$~^;kTlD+4e z5QXh#lI>=4Vj<7blh^SB1A%9kD+&!cr(4_e8oas&9VBN5*$zu=>GWOb@QV0k*fO{6Yw*#Hl)x9lDCM!&KBtT7(BMg9=oZ{V7&KXQF31u_`E3Ig3 zpt?m7^N5#d)6`4(xsX7{PBvckq7cl$^m8EY894)8mw-?2D0(FO$8|()iy}fnn54l^ z3{@*HbcIW;ZWLPuj;aPS(@Ac>p;=UB*H-MDCa$p0P<;+Uw{c;?R!Fg_kwkuHR;%zv|3MMR&Hel^CGMZhVeq z*l+A&2OIt12SW~ir#i4RCBM+EZE{B=^A5RLCnI^QhJ|=*3YQ$J;j>-SY)`zOsKk1b zeH>dRwRWW z#G2M7dbA|W=(dL4EjHEg!R`Pe(pvYoRXky0tW-Eu zG1F`A3L8FeBX@B)y-dP?DMy;(61qPKJB+_hDC@PEuO+-_kIKGCy|*n~WfkmSIN^M{zx^ac{dV@acU zALU%Q!1~B4>zvEl)z2Z=x#rXG?I7#@aUrD1SbB}Va*5(YQtFUdIel7}7kSv~QMub1 zNETg%Pw(~$DX!{xq)RYnuG*abaEddqhb*xU6LDjZd%{rCi>NKem#IB$Vvl>oL384j zSYen1+ae{Khn)VPhXwb|1JHBAsC_%~6urlNOWH?@DSQ72wa1nVgDRw71vbiiX?$L> z80pS|NKHw=8uTz7^e|)o^@BO9ldy)~RB}3CIn{PzK(D^5+o6)>$kS=i#1@XXm-_kwdIAA6sU#LJ9ENin&Bh~h^GQ1&RbpQ|IU4GKZZdVzchf~61z^vF zyGaCYXcJ#39wNYALAYsLq1K31@sP*sFu&5OA}Zfqp_HMupWyODgxY|>bOzUW{)@{S zKS6`Bl4R2XWtd$UQQdnuo-Wg;_F45)?FlB$RnGiihd`T$-s&`;`b{6b`|MK(7`oy|4aBdtQ*!A&7 zk-|uTGi_S>h)HO5Ig#)1h3+B`0t}ty5gQ@LpegOEYMHJbYEzwedJ}4l>?SN0EI<+ z0D`tiOfpy66i8`X`tE;N?|%mT4F4S@@&KrF?@|Qvl87m?8({TK#39F*#CF{dQIK3+^=2N0@#(}(2C1r34{>jdI$;y zUP*fjL%9M4Zcw5f^`}p|icZf0Rn)Q2?G@nE%#{<*hXrC~(A{b9J`yr2{@)(}_WZ3Z z(KL~NUmT;}nS1Z)Wu3Zq1uG-G+AvjLWiHpMR>toAP9ROde*jtrlB#%o3P9ESIIunA zi)2O*3C#iUFCh;s$+3ZLkS=fe_a!lxx~%WTFvm*f-?F+-@bUSbsQWgqA8OC3{eCxE zEbPBG1X?~bx6b#%ZJ9hZm%!l%JGT!&cevMKOSwfd$Dp`L)W_U+`BfUQ(E`MqBOg&@ zR>#m%#JHk}Z$?xklc!2?$+|%5WgCILFJx4C=|qbyylZ&ICxAtBq9@S)gwC*Tk1^s)t`$OPZB&-e0n4Qq#%Q>C9 zmM_O=pn->0g^gM8#h&`L@KJ3KCbhCIh7xDDFqsTmg4k89mFS8WpKQm$Bal&rp(6{P z++j6l#)-h9!QyrR&bPEc5IfN7pp)8c0M1j&Q#mmp^YP0G*b8J2$eK^KKG_cK5q5vw z0q8DN;MLvCugzOYh{Betn)UgO4Cf!XWyXMrwT-n~8W#Jjhw6#!-U~D?-1=Qr4wKTv zWi|CZ9JadCOCbsj-e?2JHUN`pXPvn}LF+M&BCD}_K=y##2Pl%2gCl{BnA(sXrIY_q zJT-o<-!p=)48sa0T`PR~T|d<6ArvTh@ZkcwVPnBG{Q3|;%xP~xx8HE=NLvCvEea(F ztqwWy?8Uta^WD%ckWaix&&gj+%fz5;cetDTDyc zp}>(BBs1hpVSYCwSO=J(YF>-{(z$do2X3G$S9KP;jN+YsU>j6A!zzP1 zdnsbS7Z?SobH~S!UVriuS{`VRBCE{UZ`T0oER^i>(vPC!Se=%b3{YSP{8< zz?Z@t;MszP{F-3RV9+#@c`v)N&W&>Ga=$xQ=fV5z?*WV+lNfURREYhFooypnbffi9 zQuw6OsBsj0RAp0PDWtD9|L~w`nhbCTU;tJJ{EU|-iw&_X8ShgA`nnUNv8}%ed}-%? ztCP{jKcqAmTYn{K4n9O=Kwm4Gs+Ilj6((8$POm9bCChM?&IUcxyF02l^+@2pZ`jI< z0e}%4$V1U%y($NE;2yME1&GQ8;i~|SPClcR14^KJcAHCQAbGXs6|JFB>yGM4Z}mq$ zhV!{c3O3?WY9C8ERb>aPTz2u$I;H$+HTom%1bJ48SIHiCmGnc2y})^@*JcRx{nCE; zNmcbJYu0CNf$=%eYA-fGP5wZ65m*LkzULK)-xW-kK7XyiL2Iv7{=*NRaL>xN3bs5i zf8WP)hV-#e+}e6sn}2d9^2UhU&~n+YUUm_S`dlVLRul8|4~ZW~-#>-fPK&u-zn>y`SAcrfkxt2>+*){6 z$)JUc5;m);zY;TB(&9q53t%<#jugZ*R%(klN|XXcF8@+qZnH)~4-34K=>Xr|FGc!T zLaQxOS6lVspw+SNMrrAd=-3&AC^FP*$i%%(M`S7nlCATsWS8Ec`=>3k6B<=CQ1j40 zG6=o|gRTIgsx;hKy=yPw$Adg@ajQ~~rz;N|8=lg{&*`AWb4Fh3 zH`#{6cGR0AR^f#*FNp~h8p0+_Hqs+WRNv2vS1qVI=3Cr-V*x!aYCVSQ=or@&mecXX zR%_swxKJ%gU8?CY_@ii|268w3?#*Jav6~p$E0X&>i0LfA3ggrKfou9h@c)6+ zA}6R5tb-1tUi=i&`m0>qDWLXP61Jb+_|J^{NBV}rt=2x?%hOnnYh>CXL1jcGc(*%_ zRVGBL^IX2)myRqG%I`S&x78OPN?BpgFvX)UqCvx`4X|4bUvy%DGt6oIX-bF``cT>M!N?~+2zqEy9D z8J;iXP>BlL3TufRn=%^-*gzTfah<3tE3mw_gO)+EFXpue5Yn|lD8 z8<;Ug%LCHK3Mo=bA5pJ`BQE|_H7)`f2bQ-bkT^NTkR2psiD>#aj-W#Zty5gze7l`a z@5KSgwlZQ0s2RHhB8J<%VM)Qa^ys_0HZr4P@Lg7(Rhl7r}_`Xo^UO z)OCEcDJV{}*^W0#DCq$7Fi)^|ts;Bml6}a-4QAF(@zB1W@Op$?G0EBfas}&}XBbms40lyQEEqHgHB-FfPwqMiTO z*nKmGx9?2D#P27H*p_}6K=G<9M$v4$zT~e#5A@V!Mi|xLtP8~Mx7T)dWQBRu8sAoZ zdJf&@;aIjAbdAJ!UY258l=8*u0*l<$@Qi8&X4QHZt$T0uBR8>7z5Y5e}*k|fiyf3WPhVLpjn&H=V zG_G0OUAHOs*q^_?l=}S4k|ZN(ZJM-gWhuic*?m=2#C5${|0bWdtmoH3D-sVQJ5dmz zQr$&4U_JtbtAIg=b+)C|gC@U`0yCz4xMf^m2Hx%O!Nsw8AEtNf8BnT@HZn7^h7D|{ z+NjMXB|+=xd-tm}(ho1)L_aPr?#BOqhr~}83$lDG1OZB3ztw}_0vj;LKeK!<;z&*Z z?Q9t+<{xfy#IZz;Lo3Y9pZ<2)!MB?pPaD+guK}s_cL6${G3SKoyRbe==I@5CQ$H2* zz$NcEUa-Vc^#0Y=XhM=Ba@+r@|_Pi-z zP;vmSh$Xw%@|yA4)K_2eLA-Pon98Hpahd(n^oda0Vtz&zW?I?}^ujc}_U>{Zv-Oqm z@`Xpr0*{3g-y2lJ*4VxPSN25ba+Jf%D!*(+%f8|+K1X0Uv5~8|l7jvbJj-;LCj(^m{jyY`9@+Q+q)7z4(vkY(@#iLo zBBne#kEMFmV;4SxdJI%i9$wWdsECnacG>i}yOUl2i_hqkC(fxWp0J@@a!W}$*CIKCY3__wkAE&0P z{B~aZr;9_W`1brDLy(4N@NSL{zmrB3w0E+c+Xp(nq_8cqnUP5jbocF)^v{g_tx7OX zE_`3xgAjD>+r>gG{Ln6@j^v-NG{uqle$P)PF<^>)_p6X|zfms%Y-;85M(qO|cNG>L zuqD2ZiXQ#VT-0j9sY44+|MV4juV_ytL{u(hUu&Nk?a+y+RTc!VoqKy-P0x;%1Hml^ zEDqX%W43r-N`XmgLI)uYr5?QGOIszFmO|ndnIYWX&P4%13;L+0PU!RobVMX%p_vZ_ zmDt~4DO9|*CG*%QC{Ln^Y!b>T_guovJm~Znfl}0uk+azq9wq^VZIMSAc+9T&p z@d?yWs?g9Lr1in1p3agG12!c5fjhs<)Se`r+VzX;D7DkQq2Q_+vvP`w(TZ&3XpXFc zUXHS7aJcMAe(SFd5*7fK81B;#eQyu_t&)R6g@zD!0NQERru&>A`{cxYwD1 zE6%=7dZUIqn1K&+9r6A8)akwEle_p%=i}_i z_BJlPe?amoaU!)t;dRlCwc)90B!e(5aOk50NI`Zbp@?Cpp>1Z+%%+ay=QgZi)h}aFQfD?EFfZhKkCud z)x1r17B;t)IN5n7MHyj?49}uno9GnF8#DSf{L^t3r}nzvSf{=-CNOwlMK_mGttL#J zyF@LwDKN4l?tUFOdjc%n;TgJC0pvxM(X?m7sqO`^&~7j9Th#h0>E(_>cQK(KfZ68= z*2IotHD7D8;G-b-XwGC#tnj{iXvqE}=Qf_Ge7>sk86*%H7WtEfIj&DQX-@vc^LgKW z%i4Vh@E%@Q_sLUqzhUdha2}h|pNtIp>j0E6(_Y8~aQcK}X9qS1d7kjIul`>@((~+`YHTJ z;infJpuLzHkkxq(gzv7#dCW!YOB)+fvD9U>?%4wryi9$|1VBFQhwAnpk*#-g_tWF-WGL~`t}0~l`w%pE>ZX51@L zlr)%Q8r|&1%9?YA^~xaH2l_6!wMS+)8G9iJ|H?yk-ye+u>y3k$2Ak?5ra~+vO7t%2 z^q#tl9YuY2dP2uIdj`HntiLU%32ZOB0?D{h=yFVfL9$R>N8?l$2#0|(JwyGKcc3Pz zSxw!i=qBfuaVm|v<_kl0#T@+j?+fDjr;1YA^rUo=n>4|;@1lXB)`7fFHK60X=0&XL zjZ@+_l{PNH>?uxfEk`RWH{ez_uQ3&$eL%dj6RwCadVS&r9_TS+=zBtJDrD=eWYab3 z{p^F)Y|IZYxCG0fR!~J2DB@|rC;0$}`^-P5KHn<9URU!v7tg7roXvMCu`azcC^Um& zFJB>54E083-s?F48Vqai4oCF19M>m1D~Nkt9*zWn9Plb|H{HU>#+eY*4rE-nmEws9lw00~wsUSNFpVJ)OlH2@d@!3d$Lg4GtMq|n zOnTR$lDPA;U*TJS!|jq&oH~rWJotw!#J|S^tNala{6pgGH_Zfx#sdNX6(ncp{4S;f zA-stXvuaC#os-2&JFx|EKAL`CYnKI?;Akw5`=kvM~IM#=g!{ zwy8XTr)}b0oZi3ELZrVv3OhK$yhIYZSM{MhfN+v}Z%-=d-vO+c;-=Kg!mvL`(|OVp z{TpvGE2*J=-zbv*x+ms8^38ewJ`y5A$FdaXfJ%S#AR2bN7LaaA?&a@e3;lgtDP9YF zSpP>4f9yk$=AXV0xP%e{&Z+&7@b80E>T@-*T)whNAQO*9n~ZJ#?PAVlIm#G7MPVwO ztv~Siz2y_)`#|c!@0&dJ@8cyzdlgvl`yT(}%YWJ)1o%>a)s%9iUCjYVtI3y*S24T) zZ;+Sads#tkrM85<{n{{kl*oR+a+|veouXATUsLev+;rb8YHD|COKv6e zD*A*1Yx&*k{kO3wYhW#ZLljUZDFc$rw%M0ntaVfWJI9Rids*s60i1{TT$M^>ExAA> zoV0WK!9`msNK#zD05I*GZRrRHz0sd)WQxPmGv9SS|FSkQ4Taj6S z!EYMU=}Gsia%>kH+%%;ArV#=#EpBqdkw^o;@P$bG<^^gdT`Hy>?os-eM}3G2O+b{7}Y^ z-R7dmWw0e9@Pasb4$9RidUkRSUAQG6)s*TS8=SzjmlF z=`P~G-iRSSIrp{!rS`%!#!oduf%}+))>(7@I7RLeqI18MA@~DY64T=rk}J<+D_@?> zZKx77DQaEilq7m8szOVm`zuf#=GMZ}a z@!0l#;C%5Ux-}~Qaqc|-GB^HH?)@89*4*#RS5^I_ESDI!n|ApqO!3;}U*-~j_QKyZ za>(y|{UKv*>BTeSZT9)Ak*ips>i^3E2lO{s2G!)+((4nIZ`|7Qywm@Uo8>B$<_xnB zwNW5ER?5fKZuuIQr?ujl4WS$p5n~vUC?kSsW^PuyHmI|ly_jeo6FqhbVo8jcO5$RS zeAG3>*Jievd^u`2qPPEOehYr>#rVrzPDoGOI)=P`baecS-6!j*(?g8?Q zt@D5H*8AP48~6LT1Hn_ud#_e+`>mb$40^H-{6*pBPmj}|h+V&fQ>5c=XPMgBUGG}< zK)7JV{J{xS?ugQRVk(>F+P*PTe@zwmWtpZK%RDQ>+-cm1`Z>E0BJCFtJCmX!25gc9 zbw6t@QNY~U>YiocGvArQc+jJ7CEtjE zpxZBw3kByl3NFt9^Flx>>UKRYtX~ecI}8-O2idEtxl(Ld%Jd3UOAC(E_qI(+SW5{~ zy95^g>Ov)|U)dQ#RV7`b%lH!J8Tlmdns7c-z}FT+H}a9h?$q(|q&u7mL-hwGJDl*<1;CzX)_?(P>%fx%%KJ zVf2nn<98SYEm?64A9f4~{{mY6AT+s+a^N+|W9o6)WSWwDG^8MXWSYX+fjw;zc)hXl zwRN7g0=6&xIS!=~grWuGqa(ve_&cT28d;JOEyo8R_f{64KX=9_!e5-G1+f9x@>Pr6Atj8Mw;<>F$xwi%D&Q7Uh>}mH|Sj*M>EM6xP zk}83qQcIYD&0=*A-o?XfJpBP~Umwhb#T!rp#(cezICQ0^J?X*wBP3tl314V%le~RZ zx#yQ@&%86PKSiPD$LyRVll=JPOwM7F(I>A&_ldrk4V1nb%QEVHh=;c)KfhsN+JK;P zveS%AQFtR}R_4GHN?5>MM7ck+;6}+i#)SPlZzLYAouf^U=wnGQB;ik4xKn>&T5sFE zi;si9SvS{NE~u8N*_XVjp`r!uu#S$fh+0(M@_h_o5;2K1@IwO-Wl1g;aMZ{}-`tsO z{iOlkH&`N1{y1|@=Iz1RN%}y--eFNsz8+b?%heI&eFNtq{Ju(|&OC7&DDg|BJ6mg6 zE1zZQV5~!`)f7YUK2hyh0nJ)16dIZ9WG*#!FGTlgzcjshsSbxq=u=TL0Iw+)RQ(Hx z%^~S%7(i6Q)qYhh^SP>|o$e&F`~p||sVABBfuvO*2M{BYwz4M}AdwNcqiZ!PVU_=iPO;_lN?u zRu>Pz<`uVl6cXtk@_b#p>dS~3JAFZ%{>iC8Wq6xw1Iomr^vaZAR&!L-NPKEgLhYdh z-%OaRhMG7P%cVukIz<`auTAKs(?M*_Iz{*CS0Ik+;MfzFv5Q~yA1uG!Va`u{eJfE4 z@&UTU?VyV%AKApKUXSo=qJnpY^2+;k1WHo6wV7V0q?Vvb?)|!_t43&Fel*QLy^O?5 z*(7J?9Z+D{H0`^4>D_w{jRhNGdsn{?BN2g$QGx^_b&UvBtmc)g09EkZxtV$X0iNcB$#(@0z+>A&R1;s@spy>Vl>nA0C?t-7^;eRbJz{)i+i3xQo z8^DesHGPWP?CvrW=+KJV0E|@M*c=d|_WfUy^rl>vlvxE7L61JS)Aa{h+!C|IYJw2j zJgbM&Ddq?q67l@$yFY$O=E35J2aBHnZ9$3up;++`sE$9|{JB_mE6^ze%PARCc~H6k z|0tLI9qi`M-~NMg(*J@!n7GGXt_7r<BgDW;fwfTRkeCaUS^fv%e)D>6g`e73fv zk?S0>>${~N4m-9>j{J6&h8cpY8bJyi;nrm1g{n#s0zr`tfI|qs%_e6;*OXV7#Qo_5 z(OX?>Vk=i9h&~i!KIQBkc_l#LlxJGQ1T%6?*XyG?&KWSxehEFM65Y<2j`zpxezGY| z>pih-;m0sqijiX0kHx8{_cM0-|^~0eb88U4u*o3~p#`mF&AF z!9c+>mp;MD=k(^@`+GJ|RD}*5`F} z!}SZ?g+oh&1*kTbcby#NTJ z=g*{GSRyW+WKu$ohWPz!+}ta5DTz#jNA^R8iEM>k=KSK!uF0%>pA9PCvs1|1M6Tm< zTNxc(TAtq?+PS;|5d@o?vn+V8o$v#S|qv5r&k)FIYXQWT-HQT*YJ#zuL{NR$z2qd|>D%vEYWMuZbOuIDG zL+7p_LvJ-O-SD1vxamn9)gIvq5Ban5Q4)u+rm|W416mU=MZDOqN||zo1scY{L-7!nTIXG~)dV7bTTAx9&E84e2)S7ShlXb&-L zHXlBy(IS}JMI*^~1ud_lMOkBD$T^-1Cqd2OPTq?qWi5_&lwmycj#<8hiFlOWeCY*j ziS?OC{3FagHLv2K%;J#6b2)L|$*HNV1F9!ow`+2;$kuGA6P&WX*1XJ|?#UIm!5#70 z;7BX?-XL^-=|i2~nL$z3m{P56r%{obA1XPcXer>&gz$WAy3ri}sj# zHKIokOixDj&6P(ZbW*OxqeWnhGRV(5RHy{)HMaVFgk5H4iUT&ETm?>%%IeUraBHa* zSNp!fN;r)K!JL+Y^QX;=(`9mHanhOF^wzQ9t!f>t6ed0l<_oQcx9$`jUi4G`nl+gOs37Y#&R zk)GFeQzJV_do0h+z4hcQVx7#L;87`+rVR&%%Y;nc8p#5+mpL9i_3*$+4OBUwUxmNu za1GC>OUuaO=HQt!yk$wAm9SM)=2HN+-_!|6hlgW`$j}^6`Y`5B3%Rk|ORpoh;xtDW z-aMeRm@+W&8gIzimttggo;Q$h6AfI`Dyi{rDl~C89wb}V4P!2Uv~8qwChpfy6(VcQ znCX&HB~cDpsP4m(eAS1u%dEI5Z0jtI9wa?|W3E;V-!qK>llHdXt|jj})|kdr!J@R~ z<2~x?9EQuwmG|lnhz4YIa!R+I{nmotW0%$g^XAbOUI%#^2Umjm2| zV=MMIi!k~$My~@Bfnn<#_w%fUoU$zz zYY?;VUK-s@vdbyTb>0WpNKJK2g9#o55wpw%QdPn9$BtGW9*>>(w+@$@3y5G+1Y;{# z5)aOaL+l)dx+A1b;CIvBoHZ8_QH8L}+o*4^$&s`kyReiVH6!#Ux;Pu{><>zw`#Mw@ zGkCtxG{FbkLfzR`p2G%}S1 zn!0+MT(kpWG$N0hj zZ204E@1?!QdejV9DxP5f3z6fmiD`FeuShpg$$`AlFli6DKqcSh;}HHE&&tC9p1h*u zanuJv=L!1T9XNq_id5GvC~<=3=UuRLd1ZIn7iGj@8$oQ zI66U^Lrj%}S0a+qf3-z*l$&dyM0Q(QYVui$*P5Y!`0BPtPrnMXL3strsMen&0611$5I*WG~Q+ z|4r5Q_DYG}beC;UEvfPA>3Ou0oBRjyBRwW&dTgf&i(u^9D+l1v=QpSl^0ZSX-YH6+ z_haLB%inZ9*_K=1-Z}*%n-fMZMQ+cT7B2#gll`BEc3TC)<=`xA<;Guw^EMk>b-WjSGV_`LWhv%(90-lH(s0N zl(RMK3BeUE2sV~?EF&3oS*A+x$0u|0c zNB|6>;1|$k)(B_SI}e3jIoJn@p7hnaHQ2t;)RW;UZNyGo4%gFrHKif*tv8?UDvtNL zy)Jl;QYDbWaLBfBzxLAUHcI-$U*szpkP4kLT2uUVh(*w5k&WD(`tGpRQq7=Mns>LP z{eXKQ_l!S?#tKPEU6~8t>6NyxpMU6*HV3ATLR_>AI?a8tF;~`tr%E%mtuV(mOxncH zYpCe6w=p$d2%1FD2a}SYbT<}y9jpnDZ0J3x>T6TD+Cq7TG3j8hv58f7gT|Mqb~#2@ zWFH)$EAg$k8*!*=N{v{92aUh(Ugo>qBdVu|V(DA2O)Qr_zyC)~)J-we-7gbhm(J8a^Y7DI(s%Y!O>of}0N74tkb}A2Vep=LJ zdp>$NL%!(%zLff0_Ew_JVIZ1*=_>VVYWWD%)C~;Hko_c097Bjrul@0(Oy?SzZh|D> zN^`pi+=o$}8q16bvz!X$N9dSyRO@ah#4s38ILsq!s|>i)4Qzxz?!~lv_X{Q&^e>s* zp^uLW5yTseaL|Z3sYj>SUO6ps#U(mOkM=jnaigx;JK8C5n`PAJQLDQ!#|RjGO3aSd zfR5J6*+-Qte+-_xeOkYeJiNpDB2saPDnE#T^dsu20$s+!MxWrToW8i20wl&Spr=-O zb8;|j*vDNWpJb;LJp4Jc!ttrflA#^pZmS8uiL|S$*M%^jkHtHYVaWqyebWq0%CFs}Ea#f4qOi_6d5VCx7gMAl;sV%pNR&wZt4O`WNJ&RuRy#{#2gV>ARDzW8L%;T zw}V;{@I{Cn?BiwIa&A3?Mps)Nz*aJ62?m8-FXz?@rrnvuomz7NL&2At)9^*6raP#< zQTyn+(k>&pW`mv3Y#@NUAvdXd2vSmjdYBg_1VSyAuehuXdW}IwZV=J@Dk%=_Oq&Cqh)FZm;Kk?^Vi^aVUxRO@@%Dq8!vyBf$C8nf1F&)w^_DtTTpCXgz1U^R+1Qbe za%72f%n=Z?46+{8DLAjH-&EV1Yqk_xzlBtderzcG%2b&2f)yOED}}X#jN#^Os#QP{ z>=K=-?Vxd-8cT%rYFaVD#Xrf zOV`NRxPk5LmR0>%2Ht(`^hK~H^5tF?4fdAf?O^gT`HSZ~0UQCwF+%d!=|f!Xr;c)5 z(*QSBRHqA{Gw<2>wjkdU8TTBiQ{+=u248z;I`I$Ek*r^jNS88ep-~5AAJNtE-So8_WWykm(asX3vsp^Fbp zR#sq*Iwze>Ek_CXZgPA3C(>1QHQp^HQ0LUL_n*Qr^xr2oJ!Yi-kX54(NjvockCt4> z5v(a!^uzIuYpOQF?xJa_W4vE%(&Fxk|&ggChI;%J9n5|Ar(jjDD&JXgzHTP{7s?_|``stf8+oP({%;jOwq15~0y;Nd5a z)!lGX&>dchbr)q55C6CViDlV`u0{G%CYo37-HfqZn0pJuwTE+O$Z|!jVGR~XCcrxw z86#Xq&Uj%qqC%5@8V<+O|B)By&2B+Yf~m3u}rLvk52Y+Tj|@#W zzb2@Jj^d1LQZL&T96erit!x5?T|H4fFWd^1IdJVE7rEhPf`~MYaZE2Y$p9Y+HA$~U zDcjn*%UeGtCB0JSK@}aRdg^N@!Yh~Cb^G?%E7n`?9I+aMmj$P$=KjbS@Ye!f?TRYv&!|1sZAF{N2)nV&$BR|9V$X$X_L7?5W}~RHBPydW zo44hx`_`84@S)G+#RuV_wGo-|IvmLEYCNrr*@x^*pO`h4?+HF~YTatmARYt*S>)wB zJKb11t@1bYt(|DcBAn`FW1j9sr!KOQneuA)da-b8a|Xnj;!> z8Wg7?6sDR1)6B{-bP`i(bCMq&FAukYo!5Eb&h{1T?)2rJEYe9B{*3xMXY`JoQ(osH_~$xBo~k z+g4?KA!-sp?`_k#5hDI9R_T2;anz)4pHfPlLv`KD3#N(s$}NaNL4@eSP`hQvcJc7CyYYOd_4&xuC=}9LJp4LlT#^=B|1i*-t1!sxu9Qx@ z6=hior6+hKDV)HRV);OjYH#dW`JfdWjyC*#pHt*CSDjr>C5|k0S{CX<=Ggf*5WVe> z)E0^k1mfTP^{9vH?rQ6w#xU+k@!vBkuBOXN9nIpArnHAO$u(0xN$Gd=r8R0v+ORo zPUVuNp#}$gPJ?$};lAn48h@T z?3Sj>JjHStIm5c3Y9UmTdiifE=vVIn0Kp^5@E%lluCTcYE6*81l65w&pGSlrRP~T) zio#t%p`x%Rw7aY#I3P>3XT)cwprUi9sp`y1!faT$P}t}Hqy*52krG{&o? zm%XCQ(n1O!E)x`RRU>NU;5(QiX-;;9-{##q;u^l2dfz=&hprjf^Je zi3&^V>nVOaH^9&S9c#q@R2vQ80*)3r8ZnK{h%ttnI+9y`0wwmY;Mlfm26wtQqI(co z1(MeV;aG}%sk#@lP>wiC@NP@z=jX0;u<-BwTF6k@0Vr9gOifjeei?}E{Ey@toI3|B z6EjU#o3_nmPE@B2Esz1R(UVQgJDEr}gjE#O0BW4d>`45`xorRA%4_wdY?cGG5VUs6 zrR?0yhB^wK^KMM}%h^)Kj~;byNp%*HNwxd?3NtPCs)|SIS89EO>po^qX==5tOo5*j zK8p*O3}nYpVDy@;?2%k3c*AY!wB^p*#& z&M&R@3TSAEQ&~|l8<`4I3~~tsKXvCH>WEbO&}aWV2xSm|;75Nm)5}X|%k2(=4&GVj zMF#ep-DG?ZvP+7=-G?>Uv{5mYr+D)1;yckaB{G$jmXDT9+#e=;u) z$^eg}*{F62w;a*R7H6`&Ucv-bZ*_H zOX#6^fdiVkZnefett1|^PJ>t_>hmd~=#slTy4d8#FF-e5kU+aH10o5VumA}ko0$r7 zq;@T0jwSZ-$4ya4B=vZ_5@{+IfKk3KUH`OIVPUH+(xh;Gojgd}FCpz(l_x%SmtfHu zY{&l<<}jAyn;JI9w9VMr@?2T;sxr7uCDM;M{ArDZXV{H~O>4gV{6N-!X&zMDg)I## zG@S(&ih~TdJjezGC648CwcRtns@&Laj2dPNdE-mVyA&Iv(_b=2V9IIgQkzv-^uc>C z+Nk$BT@-DIq=7b<(lW`WU2MH4lCwZ-V>CA71MAD7_bge?X`MJ|-eN|6gzk$jYBX`)DiJCZ*c)H<2Axk!k_Yj*-cF#*n zct#!Wy<{$mrvFIk?YtZ!@8Y77e~V0tjyC9)sY%9>I)S<)JCbky^6D39+gRenvUj!% ztIZ)7Z+nIJ9&b7knt0so7vyz>LDM$6EP0ZrcEH_^v$hHn^k~t7I9SsuVZC?iZk^(f zu7IBe!J8n^+npf3zAnErk@?3Z$oNe*a^KNF3}e+K^55Ze?+hCr`u^QpRK|^SgL&gwe}F4YjY} z%`rFD4Y1C4#lP6;<=YsVtaiD-WxZkWK#(sjGr(|e&iQ45A_X-f1r=*_z(i6IX^EtAyyRTLweXrVJ^>&1 z?WrnHmyx*o8|yJcrUcUy5O+$SS8ij}(x97ds~4%e#_5(y;!WolCwwnvtp% z1I^{iy;d~c6;Y|CH#!W+ENfj22my#S@%&w3I<^3AGFqN8;(FsDmL>YAZwU%?%OJcL zXo4DA;@Gm_OeDJy#N*SSNCfD102XCU(hkjvG(qlUN|B%X698>H2q=e$c?(D}7rb^a z1rpcv**X0rilCjY@6rypoO-;)zAE1b|zmP`>7zyHVXryba5(X zDl0pFlBQj3C#&A`q346j0k*;i?;>!L>SKZ^k@dWtoD()1gH>cT9I1Wz zn&!$AJHuS3LF&cM`GO_1-aKoV-Y!1chl(XvAJp)rl?SLa%b6x<(Ox{7b`EWJX0)2# z-f?a<3w`T`xlll)+vJ$L@s4|#sq~(-9wYWf<#l>nm-8`6agd!YV4rxjuC7hD;khxY z;+}H-*&uF_VZxM;VSM4Hf_6Q0q4wTEGmrLBOU9*q2f2VVvWmM9I1(9G11m<4rb>8T6Nzy%aT!0Xmi7Ab66*8>O_?cux z+?XDZ6<;z$d+Sz4)q<4l`D()6Hp6T)a*9136FZAAUehk|Fq7p z?|0ZdRPyfeHj85P^^bgv+4ReiJ8~ui;thW#U%+r~GqyrzXZ4#r_(c)Z`hP=!lrd{< zx^VGjC>4^x?2gvt422ynY42C}xf=c@q1-2)ouca!xYj)9JaM1g6b8N?RzHTnAXi<^ zGuWkCf7F&sjmZdrk}lW7<1kBmkzp7LAa##W_{QXAobHC>-NhM0lXt!^c-fTN$<7b+ zAo#PgxpR0}8@(i;n zm)R55VY+hfB@6%{gb>MW zv73rePeC*8!(DN}Xj8_mX|b%ujGg!DvF0A*hiN)P%hsC`E{*~){n7eWz`AkiOcfHI zw=sE~7;~;W?Wo?@VE@(qx}eWj=iHIzQ!EwMPm5#_cwJ+joC8DE=c{iutZw;H3eVqQ z<&Q@&m1Q)02i{Nn6(Hun>21&#)Kt+9sB1mR9-fDO+LTl* z))lxA&;LZMryqChJ%6v;*kR{Gn@d-}pfQj#MJUI`FPs+hsNqwBVEI$DC0cee8U={< z!qJQ^+ilZCEbqSOT9%~`5+#PZd_(PJy(r?{TRapfeK#hna4EFLECp38Q%)1xWVG@v zXTDmM%v`Wn%#q=>KL+i2HEd17bDt|bt1qA{O$mJPU-p@G)Q@mmN6mcG9N#40Ou10w z(Qr5})SS^%5QNZb;ux5HQj})hz_OLnq-k9Fdi>Q9eoe)yDn zQUcA%*g@*A?+$dZ?w+4vmH{|#zkmQ`csZzV+jaMxgj?a_%o4a6vruDoK&=5gRUk1g zdJgGQf?NlXJL(gtf9*d++7UL^E>tSAtbfM)3yA(T?E67V9@m~+V#j7)BFg}C(MaZ+ z=vv^ z{xs0&Xi~3~xY|?^sYbn$7vIwDJ zOM)*_9I2rKWf)RqC)}IA2|>Tz@lW4G_k8Pue|Q%0n=s^jTnSms%}wCc87whRUHjQ-ZnAF>Z6#D8(5WLrabxWG-w?Swq4-=3q(%Hc~OF*o0PTR!A@Y-+yf zVmngwvUVZiu3>fbwerfcVH^xHBI$<>X;VHphwFA{=a}D-YH&F^wpL`J8gFW7?8IDu z54JCfyATJvHNHu5-dmlfH*Hql`F6u>bPMPH$I0xEMJ|z%K+u;E?+>ETkD}h$uOiGH zR}+i@59-q>;s0SrW9$B5sIEg#n$^=O7)AZA02Q%(8f z$wPu>Ez_G@C!!@AXDOX0CeQfV6x>t}P29jDZ|TMal~Scni2F;3%O+h#S7Zj)~KCZKs`Mk-nROyCLP(IR;ZsA#^0=~f6>AS-zeY8p1^+ZrwMbW zx1_9gWTGo#7m%h>J-nCqH=|z%;%i~>BMShGEc60^nmRmSxFIdmBK^fa{=Kp(ykJCl z`MHcLGF^!BvizPBXCeE|*FussvW83Iq^_m&*gTR*Hg4GKdCi{b=Zk>A>mS z(E$0Ph`$2hK(R99DqZy;-COf3VG-VJQXZ~(msVHFocJu*)94kS+THw9G0oCZLEXh| zS!r15mkqO5^KCVG790m4Njl2F^`J!&!S&~0mJYo1n~I?=FOBKU#PeG&+Vq*Qae)0c2+6{EY)Eq8HF zb<={p+bBZ^BO|5j=2ongs%7he=-!1`rVj*84AL*d#pvHQMtQA^Qi%&!%wU31-G~z( zi@Ls5m`Ou8WG<8q->R3RPr+=uaun6K=t@QL^`dSBLO<((v>cZtZR6{MgNq{d94=vZ z)yKGVNO!i=D`O`G-X=P6tTyLkONNJ6K*^{$bz0+q8LQW86d|VfP2hZQ%xFxXOjD)T z6x0UKUh*C1y)BiU5n050cUx}IXn2<%{Pc6)I|5()_-KcDC@GafrZR&xQCEG;Sz>^= zb$NMaoAA|PZ6;~vBUv)=3C@Ix)m;Hk%&UAG@s7D;s0RnalrXC)gTBf#HD3*st4Js4 zoa6Go?LhsOt{00ke zr%vc@6oGMN81KwJd9Iw*5#-74)O*vpMIbiJ|jg%pVb7be`oJbV8a;l zxqUV~&w}d=Dx|zl;y228o#$qLuanw|(B@7643?$E6&oFKZq&)A?vN{W7~tC14* zqCcV86iAHvOWxqW;yM18ZPQ-Ju&Yl>%`c@p7X%72rk%nR-YE?k)(GEo4!5+D8>%^Z z6oH0*+xt4>W6-PgYL0Zf!S#&%Z660-gLwNMr#D3==2UA_yR5JU;R|pZw>*K;Dj0JP2SJgERk@B;F`xJ5dSd4Ei zwgovIZQT@OHj8zn1(VB$F6P+lJ10Ph)W|8a0=-NUsC7i~XMn)X|E17BjjOB)&`jhr z#Kp|!nB%_AyUdplrpRA{6vIPEd^$E=#@wX^a)Wc(Q)-$PEx%5-24{n{+Phw+zvs0@ zYc7saEWCh0H%8)ardx z2Ge7{_;H#te~h#UX=YyvTeFRKSQ^b1(*BBTl4O?-I3nNv%l-3RF`^&aRwxiTNjCM5 z>u<%TjY%ph4vIOA$y4+8Dj9&5d^|C5pQjtyq`TkT3G6|f)j@7uYh`G5^FiXVptlmkr)K{+OWuXl0jKY5Rd=H4`9Ed)$-MTdS z1>{h4Byb@l&_Zr8HfF8eY?1$7a35XSvB4&C&gV>7=QQq#DH{1~tcTth0M8k0Bx9rE z2pb8X()QIF%vc~EsfIa!^te%0QPQ6gvU=l=ox5$L;nTG2sJD-W-md0uuNSY0>2QBIr#=j9FT?-Kytw++wl3Zex%ptK9_R@jE7BK)Oeex{ev-6ThaaY9? zNK0E9#BGioT~3X4oK*TQK2~^}hva24)nGx74YF0Rw1Y$k^OU)@ETbJQmKJcy2{%0* zxh*re4PTBO6=yQH$}$v?$L!?WItP5Uh=_HOLy937;(}3nk$Ei`cNnbipdrxE{(Q+(UjD{L;0AzP$^aA!lz+M}+PV$GJ^ zHQ~&YanfY=52<7ryM-j|dhFE6iPHpMQorL)%l))*GH7Pqt9WLmc_rLu=wbI7^~fZU zWhDzB@%KXjFK`2Z=t?f~L#J5Q>SIQbE~M8&Avw?$<0X`@o;;4EE`Uvt6F#dWNqwO! zCLI(LP)RzSMnt=h*1q;QRq^x4)Iv*XYbGuE?1x+zs%c6=!*~u#0*!|Xwf0HhlkBtL zvq_D&i4@L)21bx{{CByJSKjfG@?GtoiK0%162>n^2g7tFK9B4=VxByr;^|%8ZQx(c zq$i-bG$Y$_OHQj$e|lGRdck4db?Ar!yHXgBC2;cjn8EV^;a<9Xa*Z0nwYD6CRfKya z{!8M|M(tbFNEKOA8)y>Pkn~k}ml%h??$8{&%-4}~hZWH@xALZ`W54#gYU;|0?Qv(m zg&$5ONc7~1Cv+3%R+)UB`UZMK!ies$rAr-<(~&p9J+x6?<+A%Qe72Q90)+P=UmnAj z?+~cIMWBm`@^OKnt}&hh4(J=KK0tk=TEMk`B@$_(b_e<891dHC*>T^`tN(t-N`618 z%Orc0clG*xk;>Tj>iXY*C-sNH{QT%on*Q8UKTp*E z8irzvT9lRJUtJ}oc77F*a91?i7VVB?<%S+K<@AkK$7Oofscege%XB;X7^56LqkH(3 zxraE3AhJzc^U8k^Jb?06KVEc+PI}08m|B6kEAI&hg>uC4>!HQs`tk^KHX$oRfBaSj zG;Cvkvfeqf`T45)B7~ijD3UCz%Y8Y{z2la-G!P2eCC2)MtaoYMsXhPX2QK@MEZ;T* zH9G%!-1nF|@%buri^3d&vwrSSzp%CKe%DuNrBIAMygdi=6$NIZ-MBGaVSbw&j9xpU zB2Dfhi`8O~N!*ksUFo;)B2Y|V7a?!}{wG3@TrX~UcYX^XfXIelb}yA~%UrZ-I}KR6 zvE)q7a%Ih#*L#W+6{?fjyTyn18=!l8M6ClNuASBoxAG5S)YEMA@+XK2|6`iz9vLRK ze>P9k3n@p@BWNelM>^Gh*<;Ko7tl(G0pB3ZoDG7?{xVfHe@xpLz z*Dg$8G4h}7a5Luxa~+s^vmUT@jT26N8ig5#+-^gSEEmbRvDGF$nr=pWtuQn)S~CRn zbt}*>#m*!(deB$a6%A9g>Tg7UE-|GuwfRgD(18U8En$aodX2^YQl|ejV{!JVm*;OD7I|=lAh85(R!diQkKgX)74;o@GE^l1KGic6XxsVHhUl67lEq zx!ENSTepQ1AZynig7}v4r1`Fr6PZi*tdJ9-3DEu(+Ch3}vya!x`S?wj?lrH&HX8e!NIK^>jg9LX8rwA5HDB)^-DF4Ad{_3K};Z zm=b*O+2bphQT#GaV#2|;r0kiF!(12gD^yj3XffDf=R~sq9%2-JEItBB^<_nM)1Q%n z6GDWZ9C8x{&jq-NEM9U-j&gq}&9ziwcyPZ2>`ZGiX0zb*P_#{OZKzrX2y5%sN321` z?PB{v-Pn@N?l!56Ec&f`K7UEoxt6h=?2EK%15 zWBDPdQ)V?NoVrbJe5>R$TCGzbDE;6>+R856ZIWFpBjgt z&MR-woG@wQ4Gj+hCx)TsRQE<$A;$ZQ5zhjyE3eFi5Q35;qz{v^OEiS?PuH6C$g5;^ z!D=D13uD$nbnOi;VV>K^y_~8?eYfN?H|wZ|Een(_u~3krZaOt17TU{Uuc{?F%y_$} z!_@v@aXVq|5y)2y3yYGEH3s?kB{obQM9V51vX$Dz(#9wC6;e zW{Ue!WG5avJCw^Bb6%hJ{V%?^{&$3`XG;xl%f>%o1@0V)NaAx^M_2}EH=wK zRb^2|-iCOTfwp8)?RN{gcPUOGO}t7|X6I=R2kq6-92DP3lf1Oo>YQr)LVMGmP=joK z#>lFEfw8t?*lmjx`T$2onrD6RR-nY7{FQ^m$8g-+ZFQu3M8AN>?cr*SRg;<$ubjHj z#wgw!BT|w1IKTqletw#eW=73jGax)h5?S>)Z{kIaTT#5fvQz`eE6D4JJ2%_yDIz00 zmx}d5Gmxp}MP4HK^HWz&kgDtQ-t3#5$Q?Y1F@ubh%07Zqzn#XzO963jY&cl?HSw3% zcj?8+OesSgyh1P;1=Vx~B=^!2kR&8Pvi>kFtKfy?P&5OU%U7sCk$|z!>>E4-cuM7^ zV;eOEVx$vnHks#eP%(X1)sz%Z`4)jtanQ&|L8TPQg{1qk#o32(=T zU2m0iA+E**lOL+Fh^ZG1rg(!VkZFmA-kgPTc9ma3&|2LUh$L0_9DGu`?1)pd(yON= zB09+^d|y3Xy1Gj5)6lW_&Z}J9PUUp>3H9xyX7$M++X)F7%QtqYMM$=0G9 zs)9m$G!nx|dg!~Y@ui3nx(la}8$3;P2oNcK(D~~SI3|R%B;_;r78`*Xr#SJuJn#lj zXWZ=kWWb6;9~RN)Pc|JwcA+l0^V?w6>KOIG(tuZ$HG}!+_jX8+nKwI032Lv}wNomV zVnDexuDUMvNWk7s%Ex84=cYREPfk~;3A=TXy-E%byS+k&ZY#B|qU#hf_y4f=)9cZ_V*FG+v$T#v5RJ;3qZtR$vZt4}oa zm)C!eU)KZ@P~W)1rE`rwYZ>sv-C#DlLM(5y{0HN@YfC$nr=|t$XxY{7J+^?Ko)Xg^aB}w#y(*m0(fJ=S>P2Iw3f~r+&u>e zSJ+O-xJ$F}#BaMzd5(KtjtLhQ1awy#$45sG&iJbpSZ8YcmgJXplcu)#muqLduqqjE z;_Mf&>l}SfM`tjZ;#6{gezI46c5f?HTwm{?|38zwThAm46N#DuK8ef(x;; ztBnbt0ADFI<|xNB)dWIcVz{9#oT!SSa~k1eI&E#ClfbWQFBmxRH!9{gL#3s%t#5*Wa~J!p4t71c z3wvu=bBDZ(x8_!?Y(8VO0k4m7mkU~FT4k%e!_SX&bJ(WDMM_(%>2h%q3LFicARAYj zP?V1$4LNEsUwRVwU3`X9>HaK^-D6#u<1?iwLQn;|B!`@1M&GM3XOi zHB5aLe+mtHGKx@M3|^EvXyV7^#L218de{XJD>Y7YxoR@6lb#AXUXXqd>n42a~Sk+i~@)+ba8PQO(UdXGeupi&sib;r%Nf)#(AXx&cJzt%UXeg)2 ztYK|v>RQgX7D8{d|5z};+LLz!J>Llp81N_YB{kDti^168)nH4yVGDZbZs z6zOEj{R_~afxNH_i~!3y3$E}^^Q+MJIKxLsXAASuUzwY7IwtiWe+}tM_GWM|O-bEvUpJPn7pIUT4afLKFO})0>$ONPr$oGUJvT%bVt|I8YHY(B5mtW_A zqnt1Je0Vsf@X=ovPwiH6a#nEBop0-p617m!z>z~|-|isO9YBQj&-3Dvn||q;i|^H1 zYSZYw)nzQMNs<=;tJJ>ZZ%3ne?W(a)|ZKa`8B!9N4qG)y8 z1K*!uph|W=@0_Qz9%_z@bYMvu=}sW~O;mwx4sByZ_rm_YyBA?l#rZ4O5*<89q7be} zpLgxMcpGY+#xD)WlUUhEQ@BY~Bz2oGl;Wv$?fJk(Yj|i_kht}R!F)3WZls!BuFBsgZ=cw77=co3(IxlX`iEntys);3Z?beXEl>kN+bT(a zy4`j`zc`1eH?}1JScGZFcw+Hj4+1=&f@#}G`@MrS=J-!YRMtBPO%=*o76WQVZ_NlZ z)ZaDpaRWl-B{~!_S~ffoeF@+)87qsAzK+j9JuCLbU{#zBRi%OF!Za_ej~w%tj{mJj z;=hs}*%+W@gpjL^c8_EZ9UTTXPpkZ_X!tHZL^`?=c<=@Vsie84eGNC;cWeBwwA24P z_n@Q%RoIs6{>ywqGnnJ~zrtV$xK2yES8=>QtF}ygsBj;VtCbnED_uotF)06XuEJCv zKb21_xpC`z;;s7;Y53hqh-C(2Tq0;OTqPxv5u)I!4ycO4mIA|kezGxA)>GiX*sI;wto<#$!a|n+L2_| zJX3(}1?Is;QMgU&lMgtkNh_`W?C(P(nmsaFNLNap_OZfrXmW%&UZv@iGs=B8z#K8+ z1uU`IM~C2m?O#I8t`L!W_8&w^DQ?wRORFW%`o`45KD9wZcLdDVSz?88MQP|ZXEP@r z{sP{AIet2ssqeeUh4o9eSb1&2IWg92OYU{DkG|lVFR4=de<9awyu%m$1Zk}nk`6*? zFZOO&z~xnb*`E9&2|E{$m@nBAkwrX3xk*Wv7L>PlR|S_WEc#=jTnROAgeg(rH=>7Z zrsy7XI-GFkEF55!hRQ%U(ooq6-VtD=2258^u7);T{-LWzj)fk+?ExyNn+yLhAoEy z!BBj8OqVRZ(myuoRN8nL*su+`bsRa0hqPP->As60NJjj;+X>fARaWH{1KvwiKpm~K@J=!gJJ6ssb7hvIxY1!s z+$GG0ppt0%(b`a8uLC`=y3oW4v2;dl*#Sc+L>1)r>$cN2CEsSRxBd)!*o%Bz#Aaf2 zJ=(P1znN3ASl8!zdNERHV5?MC$?Mzo&M*3dW& zE{`Sa=9o;1StEoR-5Oa}Q1Dt?BTR<^;H%lt@~QU3=sXwez^b2)89GPnhLK`c_nHx4 zJS63pP!KFdRa|B3X+qpQbBRaXLuE1Tw*1y)j~ryE#LPve^2L8G%j_AY4{Hhg6ekDA zA(>n~By`>)agZULCuHdo9A9)dP5;MN1}U_G#HWF;9(IpRt<;2s`@A+KgyA{?T2Bp) z>Cyf48`;1o!V{wY4O8YgSfS-?eF?$ch34s&Z|*lKwlM@*r2A@^t{{13`-b155BJ*# z*Fhc|Dcx5MP-8Je1b38!{fYa{5kH>fwqxt2Xp70ugd|UV9T}!X-!(lwHyZ~(!svsQ zH=DRLOl1^~m<(&z7|HWeQeD?i?b7!?fr1TNu99yd4GEg3{&hV`5Gsg^yoU5b7&V&& zCTfE1=;?87;a)ozLfLLkH(eBxQM{RX)Dvh?r*qcTLMPoXWBhOhyXGV|0`q(*{ z6zr#^u*%;$V{6YZwDE1ocq}fNU%B;}zxqn1(gctDwV9W194HmnF+khF-Sro+qh=ui z9Z7vV|5E}IO~sOMoF;*FRfE~>JDN~%Q`#FXV4rn_N{M|hzCmWP|Esm=QBK-gE#<+2 zaq3%xAe*L8%2(`U{a7gMv4`DO6#M-oi!J-LtpV#%-+R-kh92wL(Ze#UJX;bGI~d?m zNjOcG71Xy`-=MGId3qw-Qk_j#A0Ra;6m;JcFH&)}fS+KQR9uq+e%8yKO%Xj$!t}Lo zJ)|2Pd)bTQeh)hR0n~mtxygck53;gCfO`b5_0(kqM%wa1m=oWmhB=bZw+5yS!dIAb zjZSx<4LydIiFJc+#MTG{js|jy&E2K>!A`L>c|Ij^7r55Gp~uXjPy-oRy|K(wh0jY} zr1E+B6Q9)cIEci{6PA_$w%(f3cgepU##^K1u`K%(8Dpuw8ynoli77wjrX`30>(}pt z&~6G4OaZ+7Y4xq&WWX2~?`ovcl9E1O)@(>o+&KE=h2nXs<=91$2^WN}n|p$%wlx*+ za?+}4TL~9AA?khUd!YhR+UPo{6sRS<3+4JZe($HaBqvJu?gEMym2cCp2C2<1DN%(h z9gnU$cFP5Sj&J(&R$4ERN4BcrH+k8CD}jNN-yE0Zc792pUDcZrVtCWC=d_1$OVZsO zoGS+-McqcL*hii4eoP1v5$$elGTi;crumCd@?gb+vMvTbSiSpX z^VkCw6H`joa5jA$h=|c@OlGplpUgj7icKBn5xy94SNHakg~kjuOh9hH=VZo73k7lT zYY@PLHo>+TmOkitZRbSTStaNJYXw(00j$X5meR>Y`n&C)t;QRzko+=}(Tf^MlX1bdLkyf|99TC?>DDZDl zn!iUWVlZ=*I2GP0uZ@7ng>IlvTp;j-kAzgsYDkx|^n`|Ko79h)Mb*xC~dW>l+o z`rWi4dV4LnXkh&IT4>Id;cPsa6s*heHkp7m3{_a=bZ;SGY4P1{%0f|G$hdjzM$yy-a_8rx75Y&B zlMn0z3jr_3e_O!t&D5Rz?IoUh4DS&&sa>a5^vC6R>SgMhT)fw0y_ez5o;Twut$g8| zxrbj^Y=ablad8V2I$6D$%qIdO^Ac2nj>fy&Xu%5hYa4ACAfU}|xKH&)vNbl(z#fjg zVkev0hj`&KF84UT%M!b4(MdN^4%csHy5}S`!Sgi1K7gr~w#OiL>`G+rua|J#D_WtR z6+y%Ym>A2%F$cK5Df8uh(~j6rS$v8xq(nKoc>T7<1DUFOIb`DehO;>X6JudRW~*>CT;u582&|5yW~uJ3GK}b19Oek#r9c?>h%= z8(m6vHR18E%9h`R&+hiae9?zZhpZrNbs@3Q{o4*_L~Y8O@!fEfHm_ovx${nm?Xc>e z*78YqxLp z*U0534*l8Ji%ltIEc`6%fh7mYJyFz!^k02kX-l`w0Hc2Km($*?Cf`k`PKq0Wg6S)W zHM>fVTOl#&?i!!{km-xHjRtN=wU~AY!!!q{5$iSQ@Z|A9LNxl(?rNKfctFiQBKhAQ!c3hMm-Mg zNMA^c^QK$W^K!`tlp8(EtMo}@IS=MmZWk3VZ+ZW?i-dih{HZ4 zobo!*ighnQ>{GcRNUgwM@-)81hq~)dW%k-2@C@|f@T-)ZyHuF(hdcZPkHCg&DwWu| zXckZ=aIiip7otX?{6X_pH~9%&Lswb;UmoQQ8m(1 zm(qFTP8xDS&vRK~b_JRw3~l!DV0jeU@+pIbB{j73MOlttkSzw&iUYHo*9KJ));cH&@Q&S zdy07oIeGNS^6Fl_xkeB?MsRg}t&x>(IMoS{tNL?OWwWUTYid*qI~G6slCFh+@*RyP zE_>8B^Rm(pXeYw}YltS|2v0Fxhutv%epG!)D4QK4GOcC!Z7oZd_Pqc4n`r^!RG~Rowf(~>N7kX zGe<>qsB26GMm9^9X!r~J)oVtqyqr?h=#t~bfcFq3I*EerwHT?0hIGl7WT=Kv;!fv= zmx0qX#1Ms+oj$=$C;DpRw)*&`8;q0QT*Mm3!ouOw?y!L}J41%JS=z3+g-@+&uH0me z2i7I_#juDIxNkU$K{v@|3Rhm9ZRFpZ50fpcwGUFa523@3xu>gJKF43&`ESy^q{8tk z_LFRUIt1A|tj>kDc^l#uz1%M@N6c@M{7D_-Hn?#PoD+ygoPRC`#2*eboi%M!y;3Fp z>B=J^Q8~lme$UCbdUzL*-Bv`&xxLs^SEHsC%$pgyC^KaDl`Q*{PuJ7ja(~CiWV<$KIF!{=oKLu?Sc<)|okLv9teKt>Sda2;3CJyHQ zH7C>@>iu(Af80NgYvbQ2T{wQ|=RMdqt10f3tmg<7n`yZmPP+uR#6RaprrbG`YcUGjn|5 zUXRrUGD(V??|~k`uT@7LVpuAz=Z)_<$#gPY)@TTQE^FHRLKZ-mkDS% zlz|V4BIVo{i+GwS82J_sK3EQ2Vv*@`m~*&TV=UQ!s>jckKVc#S65>7L*srgO9SUJd z2X|w(zAMnM3g6JmfzfSBuVdLsN=iB^D{CfDO+~8q zt3*Ih?ZEkwCpUqeiFijH0y?c>INwP*#n70w*mv;DC)o+j(cu@aRo*^`9-j+r7huw_ zmIKVjA3E(VRegB)I{c~u!B)pW=PhAZInAFfq#MUL4Y>#Q$fkn6>PnYRJ7SW4!g>h} z73SPf{22GH$fZn2T@-)`P>1L~waFa#^!KPiyEh5&muPL=?W9wfye1c!5WT$pXhP4G zcX55q?q_nb7Nv8Tr!V~ysOIgaaF~JVp|iqC#4c>V2YQvLLAAnHyH z%{2!jZm7UeWdp4ula&OX*ELl@+7eNxo0StkFCWBZkkH~?8y1=w(Lz%-cQ+1K?S}j; zWY{i7Yf`i$vYuykxL)8dywpK%>6!$vR(0+ZlkGSE1{RpHONnFcY5wwsT$!PscG=U^tUuu#DWB zOX~pm)^;F-Yw-{6Bx5#CNJ`o~Y`~RDz9u3yOA0$6Qd180x-DFHQmGgLT2W5DPQ%Ei zh8UH5@Q+3gGKLbC&M|2`Ppa^^;)4~_tMuX{yY?mgNV(h9KJQvk;hB(Px&ZI$09EcmVNq$8e4U4}UsW1D+fFEddK zcadDQyE^&tSV9lI4RlJ{A$V))(&A)f6+6dC9OUS)+{ign^VzX1=FidxKG5k0f*Ycm z(nH-2$9u2&{Cm@kZJ#Iob3rRHFONQ-UJk+Z*+~^9GQ|7y_FF^#=jM*z>^&rRGFOoF z{N>%}g?`E^Q;@gcMp$}jxoY~X(4Czj_O_UYh29E^<7bBJ(!C7byOW+cpx#soFb2n1 zQj8lSFUvS&)bzajb4dI*xN*RCTuGt*?A+`RV^AG>K@QJ>vnw9~tu^E)bm~ZRc4&dx z&VBSxe(WnQRaL;6tF@tj?ak`LABjNE2dVX>q1B*4qsgE{VyUNa=$~m$8~eE^&shX@ z>bn?TnKtb+X~#Tz<;-MV-OGn#0>8fi5ITv*hiCsm=*EBMdweldq=8_@I{n?Q4-((z z^ic7!%}APu{$}@hm7xd>J}fN9nGS&inTsI}JWGR4#7pn6qIIPW#V;3pW3PJ|4HnwA zyy6^ijOB}8fGM~te1n&zB~#rMDTj^gW}lcA^@+Z#yjVR-#yy>TVF4aMR)k*k|=_{AwJfa^5G{4EPTT*vU(%lX5g)2B&t$KNaLk2 z9mLphab-~gy4bQKgEAKZjHN1(~a9y$SB3d@sZ+4Rt z=wafwRH7lwk3d^j+7vE_{sr8=2_!?hWNlCmy{>bwnMY~L48P^gL?IM=6~a%|Lc!w{0l&u$qsa` z{RP}V4?1G4>B`TXT-Z@G&slk6g1Jg8iopxxO=HdPcTv!OL@j(j{hx?#{Lgeu@;P0q z=&&sz?TIVY(L>ZoI@L%32ZmjzHT5nvHhjxQMM|%X#{fjnFs2jB4%CEcrjbMnYcs+r z64DZa=9y^-g17=?KaSUv{S%xP8U}p=!=6k}`{j_NP7XVC5>g4OWTMKtp2Vs$gC){K zL@peqO}3k#cOk=X;z~f-%J)j+NUF&AY|*q5fE>{0Ul#%bIkhDRnkuB>g*F~ctS_pFIl|wLtpE_?mlyf_ zd8`3Iq%38f(|6afzAZ*W5jSFHR2OJF2|#) zqlJxwjn@oDj>&q@3t3T_5Yr*j#2VUM0&Of4R(9E%L!=EB$Tl#nb}gQv@WHjDajFKi z(`6Z&tFxl;q%kt_>p;;7dwsxNwENo&3jWanQ?={D?@7frU>V zDSXM9FJ(TesvpDk;%SB5oF|#17Y+<8iJ7~N0Mz6(rY@`5b@}jwwCdY!%-Uy0TTtt{sGb(Sbx_7>(!S8w9#$< zNUC-9-#D+C)kFY--WV{B+QUnBou<0x&;tx6Y_mksWYII>JRA}ou{e+_#3p@L9U7J= z!_=je_Q6^eRZtC(!)FTuE*ig^;i{_n*wo;Elun6SXtuT%Pw*<3wV=MQtuPyS&u=@+ za__lXkCS@tHb?E2^+amJbyU=nJi+zK?rSQ4Vg&j)-Iw@0DnMp*E#75u*XX#h4BM|A zk!VHg;g2&QTC8I{K3Xl+rgVzD4rsd4#(9DEH~m5S>r~XC`}o(-mPz~QDQ%rL@z|9` zY0^D~rqrmGjA6`)@4qD1B{U16gsL$%h*U3o>9kF~{9<$W{x0qJZygO91uB$5K9T!E z%6?4NXu9Z47)+q7N(u{};{CY`=G!*yBFnTspDuo+P8ke8WXB*Nx@j>@x+K82$<&`9 z8tR)n6CLp;$%6QKtGk4>zz=DmKbmQ0NQb>^4d(2jc=Rgcj8kztd1qUzCx0qp8XvoJ zcMYldn=hyWdRATsykUw>*Zsj~PZW|23KD_eXm+RzTGuclQ*=Mp43d=>?;F}1;xwLZ zwkFLUAmPOJ##=qcJSVkx?7*I!SMBv3&klfW;i z#RWegiwVREh0Cy7aOp_-d+ZPn7K`XWJ`B?|kxkb4%P5StjYn3~$s=(kn?faP#o&5NXAg#jU7TD3awtvLqdv8j61*f?#B;3z_^d*=R2JO#c; zg0e7SWc9#W;ZI5SGt({m9Vp~evri(%z3x$t$w{rqMbT8N%!Y$l51FV{^bvn2T>+(o zqx%%gbdtQXQ(K|1-h%h~&%T=vG4(Btl6WwN*>`V~ z#$n&xY5YRznJJTTd#L`px9$$Z6DTW9qR;PqwGBtd*;kB;|9@ib)+7#NMO$+x?cdMg zo)I7*H{AE4qTYvjk^MB1cg&((dZUgl)8n7g$%I&J`iEu*%aL}oMn33l;6&BQ1 z%@Zn5aNNblQyrFfQ^1@n6Qx;2;0FL&{GI6S2iXlg-Icp;`SHW*;#qD+n}mfeNtIT+ z*!rWbGtXGBodi7Z2(9L6rwil2$rU`qK{CzRuvo30`EHhz@1ZKe~vBE|E-I(uXhtqGl+b@8MNmF276l}TTl}OWvI52DDFRdy;B<4eb&MziWE$~ zu3>W`yva41b}TqeOaIDYUu@0XI=!G$KOp>(Le;qqTbyp0ZKq>HLbaDaTTFFoEx=C; z)BNp_f2DI}hLy!u*Z>V!qU|468eCq`q=tXQe|ANWXPqFJXgyrfp zrh4J=!@X(#e=5QEA9r%?O1FP#Woa^WaV>Olb<7NJt|w$4>|Vnxc1KdH1RG|#a>jN->ixj1=><2 zwN)60^jw_2MOlicOs8nnM3ge`6nesLay8_Dr7NqgI+}T4VH)Bo5>7@Z_CVQ_Ah=d4 zLUSJ317bony+Tn9i4n1cxki$SxxM;`kNLa_%_`Qic|=R^$E14{lzs7QA>{pvxh2KN zc)%s=4_fPn3HL=~G6^~{;YC%&hdQU%=j2ZL%UMqXpTVd7otYj7#*2IEw*#*2_Q}e~ zj_~F~y^D>AiXW|`uO!}l?+iq%Z;Mydg&UlIQ0{%+&-%5~l}BDXJ_kBwyyxo}fq2`k zWuvRE|5$-jRtmK4v3pe!PKg@3b$RFe{Ll$f$*Bwyaa=#A8+CC(S?M+pCM3Yj!CphC zHcoLIL#ZX+S$i29L=Z}D2s#0T0Bc()v)Pv&-yf>j1uvhn7lpI!)FV3S1lwjTHpX

=f6d#y*K87gzPNni5oqbdJbvq9?uLEh+sD&> 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 diff --git a/ide/src/figures/OperationSkills/colorchoose.jpg b/ide/src/figures/OperationSkills/colorchoose.jpg deleted file mode 100644 index 9bac0e4b57cb9fd87854e7e3aa225de10eda2140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145589 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 diff --git a/ide/src/figures/OperationSkills/colorcontrast.jpg b/ide/src/figures/OperationSkills/colorcontrast.jpg deleted file mode 100644 index 5ebda1ea80a014b216c002be379c8f43c3c59bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22734 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 JapcUee*%V$94r6; diff --git a/ide/src/figures/OperationSkills/rowskillflag.jpg b/ide/src/figures/OperationSkills/rowskillflag.jpg deleted file mode 100644 index 27ea1a7dea957889592978f2b3cbc43cf4c5c1e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106865 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 Ve9(dW7Y)Uq!1=>1e*pdd{{YX-K4Aa= diff --git a/ide/src/figures/OperationSkills/rowskillm.jpg b/ide/src/figures/OperationSkills/rowskillm.jpg deleted file mode 100644 index b4c1a0566d49d169a2950ff52bd0b2fb962b4a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199133 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 Y+8*O$5n6?~?MHpJ=6rlqLB+FqP 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

g6<^52ix=+Ir6rKW{PN?s7fP9ih*NShNmPB&*If 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

MlQzSg!{(J{Ax$_ccay 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

$qAwe9ppkk#yg3r3=iIA7$*u#!l|-NCex6JO zO5d8x29ot~Im#adE>1x92Pj%UWMb{))IR>yn&Wt9%Z9&JEE;!3e z5#c2MAOoL5_RE8qg635Cp)h?}F-Yb#gfxP#S`w~RN;k>S)Wnn{KzcI)B}=c|WT0Ad2R1yPn9Dm3mPQ18O2`9$ADIZKh6BN2ko( z%*DHf?JZB?dJk}o77b<9^kfbdhJJ4!H>j6_^g4%)5U&aQ215HGh(x& zNnsJ66><>B_7KjxbPVu470{pP&grZf-S*_-!l)*B)N`@*pX+((}XHEcpcS=jzofuL3yDYp>ha}oB#>yo)r2>yySG6x;8xj?Iig4J z^|99=m^#_{2)fQxeYBa_jF1}qkg+DsM-Q=hFL#{ot2CqaJ56eDjeUR`SjMJ`X0lLg zr~~dmq}nP%q|pRtwcLKOZY2a%a(d|)H59smP_cA&_AWjE2FQ>|v!&xyvAIkqhFNQa z^Efs~3Q^E;1@%q$fqD57T_@QZ3-8kPf@`{{ZE5Y0Gg;LRuX8GYtwv>8=?Rj6zTkX; z3x6^*32x!{gT(1rn4cP9K%1qSNjS2(N3y5Y-3GpM$OzS=f|7<#p#-UZh+n7!Hehkm zC&0$ru|TXFBk_Sri-5V`Pmk8Ks}l$)5Dtvce70Hj9DhnTrS!SLfhMNzKh8L5a>3-; z*-kuk>4Ocp7sgEzAUDsZVt>fs5TgBW=b!~m(9TY@bcm)+lyF?9oSsiQMKvEM%s=mh zgx679gMypHx>ONeA2#Dq?AHO@|KzJfm4|9Eu9$^-ZV1HsUDys+n1kC z(pkQ3s@}v5yOF5orii*unpCnS-k=wuVM=qoR{&z7f@5r;`de`^e98F}V$}7*70;Ju z0nrY4f}dp1ZXefVI&ebI`8!NctP~^t*m~lXKtpUlmn`0eZ=VOk3eEv2;PjMCGbLhk z^#QI=Owo`%dQxpInIV$hGob*z1q2LoBRA1M?6D zW?=dB8GwdYx%Hx(r8KD|_k^ z1+^?-0mAoXLX25NTcs}~DZO1yAhP$Aa94?*jCEp{XpM)poT2TDjV zZckK{zC>P;3z@^ry5saui;>Ud3W50S84u{rlO6jQNm);hmvgs%Hb-7&jgT0GJ_3Ps z?VpRAIhJ?zP;8m(> zuiXYn3AxuS6`)B%$;i*Y#|NqZ0kw?)b8$x)2gn8A0TPDReE9tbKr(S@ZS^9cmAQ!a z{41aZzAWJW7L55D5HVT2OcnrGx8p_PXn`hr1jfS> zs7{lLg5%j|f_nQ~48VBq204;v5+kxr$d3>k zVQ3))GIzA-rwh3}tQ3C;2Lx-l&f3})2`=@q_~VzLbej0A~;Y*8w7t*<-X>LwdaRs_=T7jO;=e6krV9FP$E|5^H z^9f|zPV}-{Y-~EGbtfl3DV+x97%xUYPQEVw4gc-yd$VT5GYt@Y3ra`e&+maCoUGiO zV_THo=!0Df4Fqzj(t86yup-YvD?i$EpokQp{#K1EAiASyUDpYZ+O)xk&yNzw<+*BF zf;+rafC}S6P=#)a2xpQKu>Cod-G6?V>Bz|6Fh2`C=Bev$fitfVwG-0V_sluoP84^0 zg*DjcjSHxWRiHIS;XLuFSV!2?{DG+cPHaf+HK_B{5}kn{!^?}NOFBH|Bpm_91o0dm zu}!wCUYWA+9j}WWT8vZMoDn=#*b2mT{_m#Im;!3|CtPQ(CtUOju_I3Vc$_XOr=)OGBZ zC{OqyPCP9NwCekUawcuQFk)A@v4=L~V7H@)3brH&^}g$?gt6>gT2>x8ez#9%lCw8P zvfD$iU2KJsD%m2pU}6_77&K|c_yV$hShd4%(C&wFsZ#^~Am}ig`xClOQLWXCL|?~= z8zog__lWWxFE1Mhfs*BU$%#crZ8zMEhWDmDhk*!)_F7G80a)K`H*uyC`dFrl>c-I& ziMG$zdNv_=so#76mWPUyUByRUVMF4j;JE%A$V;wAyeo+ypNl$MRvdAGQvf=erZ_X}EM3Lh@ndSY z*e;VE9P0!Kbn-=1#T$oUF)QYoDY!s|QzHf+kIJIhcjLoDpaR60ypPi9ckt!c(DYvS_c#97+Bpl^c-`7QQbVI7mvm{;AA~ zR89krpz^>spBsUs7tw|+;yV!q&ZH7FAMsrZ`1YlCaE{)41*g z+8sR+`8z1sjun)S%ee<9p2Yo(Anz%rONI`S)s;U(6Y?40{6+dlf#;vkfumpjpd?nje?>`x^rnV;kUNdN`=#q0vB@hj>}Sk7nK-*Mq}7@}=f^l; zW-FQD1Eu>z2GYoWHe!UG-O@pw{!aZNqna^`TX41CU`tE#cT`(B4hO5mO2s9>E%9*@ zub%#!AFr;?|6Lixw6@THd^q{9|0EMM5bOQrSKiPS2cUPI&H$P(07Xh}743SxmO7zB z6|Hr{&QCEx_Wq0Xp&u|VPpx5TFTl{sJ6e=m77>@f`ylBrAL>d~{y+4bO-o|`ZULyb zdB9x+4ivKjf{pB6oLY$$Y-UPV8tRGXaR31vfom#2%3~23B~F4Sv+r(z_Xzqg_r>BL zc%lD)A@2xk$(Wra&%v=0aG%oqg6e=AlH*XLi9Y8@{p5vZ|2BR1cZI(ftG}0y|0|oB zLtZ^HuTbmv^o$5K+e|72Zp=(OT*f$ep;`{$@!)oef4Ky_M45#D?K=R7dH{0xw{nR7 ziwut20QQ8xisiUgjmn|A9v@n4784D}dCqHq-Af9E!AKi?=TK|80_WwZS z0bRgfRe?_wOIO|18y9u9nk3zhDO00LW>K@PiyTqTlDo1}0@%9lT}yF)x##~$IsCU9 zbLO#3^WR@k#9uCFt`(pe`RjenA^+mKvH49}%NdbgAFA>BPenAAt@Hun>sf$Wdrja* zh1}iw-#z!I_WK(Z`ajWr|M>+knyqQmN~kTKh)f+X{6jiB(_1GQAqn|69XM`UV|Qc*f1{=SY=?$A_S>{|{LybJ*$MEd2lDi>NtSl&e@UBqt4( zq#)X9WdaTN4yE8P7v>_Y(54j&n3T|2Zt^6(sqOZQ?%2rQzn?RFSMHy3!iv*>l#AB_ z{@0G`Vad$Tdx5D{In>d!0>qqdWAgB{)DFGqkBz^s0@ha>`j$nM2Pv34bhzxX4DK)H z@_%5z{xO#=Jk!PRXai38$_?uU`~Nf>xvcLhV?nE1Kv_W1PrakKsCVp5LM6d@sPR|P zau1;a#{zI|yq6&UIg1R=b}2Dm%!q|GBx^PGEH3Bth>2lG`3|z=#M~~>f`Dim>=i)_ zla5a6fSe!D+ylwAWd72{Re~+uEfe~G-=P7P>OTl&WssX{*!2-B!^=AMPl6FzQyutk0aLkUzz-U@i(c8J2*R{U2gydU|(;`G{J0 zGKxFjaK2ixpnZ<4DEuhe7=(L0atduo@4h$We=X+N&eX z0|Uctc1%_t2_?Paqua7XA0Q(=_{3#lT9E2{9qVV7lt?0SL?wM9Jwu|$^Nr=msf?>M z@|(1}CkHKmi9{8k)j#<|V?s5fiH96D`#MJ>>1&Nn zLl5-n6RI???h8BWdz%DXRzw%x2e*3omA{ruV8=(Zfnf<*O8Ft9X&nieY5=4{UD!Cf z)YH+HXCw$M=dLWsvi~YMAbiR$H8Az^3JOZT*b|hrU1J7WT3=sx<{LGZE;6{|(+wBQ z`vA-KVL#F#3qLMU6GGYJ0cokZZaoiQwSB{4PtGeDX-z8d`6%Olxtc_=72Lt-Q|8^o zt|M+8(Q3eMF0#fHS-4!PO%nzvHY$}rV1C#z2AqhC+BHkW@7=QgI8ENRFH_n4)g0y_ zb>l4R30ba?x(Savb;9NkhA!Oc?4x3`r_rl%-F@<-%?-k2K|%o0QmclYk%>IKZF?@EP@s53o;_YCbcq;V!wyj!vX+g%|Do7l=!BwXYnSO?n(S5okKM>>!e{T}CSaJt`k zN46U&Dv|jgT@?<}Vz+M*Mv+UGm|dWY->fH^17wxuhxcu_<0i%W`}m~0tD8hzG+~m1K&RSo zc~sM{t7{y_-7%y8`s`rT#DM?Hx}?iXD-b>I>~qvQOqlvUF8Toh#cOUb)92Msj(fgL zOy79N!0kzn+IJ~Vvm3V^y>-DnOhf(hh~|5WC6D&hhq(prv>UF)d&@oU8GZn(jHozS zc(6#D>(l#~-!7$;mR3}fPZgIvLvOwM8?qbOglqyKVT{i?ZGJU&TKOo16X%;Xo6p#c z*Fje+aF62AH5Dx=_U4F8XaBUZ`2!+@_|)%Jf=r*(`)0Hq12KHdt+DDCyEQ@wXi3Bc z!C0J*+7gRRXYVdf0scq+biyiw5;;oEUg!1$)E=a``H640py^EcLzM1q$K@dZ5eC$y z<2*uiyDV3`VeEHrbv0ftISgr@ec_Kt-G+!SDPr+-D{6LiI~a00>v4cRhMDu_RX!DZ zU6QS_L`!tZpfQmV2uU*?AksCPelUBqQVYbuHwtr)?#pc+6|If>(5DsLpsrrh;SqBr zg!7EjRTLX)*g#knjj5^9S_jG~x6E}959jbUE$CROUpqfE-g*TNK*s~64qO#%YjF<~%V4qVVt1D{FehLZ#%7F`7F z6R2;sbZpSjeQ0uaH*|0ni$p3%gr65rWP8HFt~&-2IJBv@tWm6zchyS!j2rgk{l}&Z zv2zfg-V#|!>X#GIH$q=m2jsKm7Pj0%Os@~9}o^LU} z+PC*^51vGrI4vW=dnv+pwlBH=26^&%OYs(`Qb?*1I0DTq6xLo2=qz@*?M?rl8d~7Ngo&$(D+BWXGfy-5wwsgUy z@U5oMh!<`t>}DlAwY9c?G @xu2m8;G z=HsH$HxDwoCt2j+p7%dwGJvZEVDWt3aj4;d5Cc~)F8osT!%O8)k>1?z#uNH&9`J9j zetH?Za~9h79DQSE17Cc>TwqtupOjL-u{5tzbn#iG;ySfgW0jJmU}oJJ?mRdt0I?Jx z;O8`~u`o({jw%fVp!mnRcR8drVOgUc{B2|(f(cJbs-v&!byvZ~39O&FQ? z@}t>as~htx_RB~EI-!+h;WIgr5ct)IVpY27K^2;M@HgR5kla6VabJyLXNuW92zJAE1{6fizf3+3tINZ@Z>0aaOG=Ef=^ z#CB$rM5AgxSNCt#MN-DGICK53N>lN%5i?C*VqWO#zMw3SM~HDmfy}9$icv!g!huH@ zEZ6ZARPimydh<@r^OQv5CbF=R0$@jm>EnrNm9=oY5-6(jza)GW`OpZp3p;diRNX+D zR)|N?7klp+)?~WwkLp+$DS=sg8O>O1F& zGkfhdYp*kFU*~_F59hkh2R;zO`#$CF<##)8>nkw>4ilCs7=Bs0_~;SH z)i?~@SAy3#Oh6M4j`1uyY18|mG+#`igP7>&0G9x>p2m%1z1xP~1+jw`V;bKh zK$DNpx09oMBjEgY)zN;$w7Y;>DtYjL-iJcbAfV=lx_IC>U5xUNYx`*CJpqb>eoO`E z6?w_54h>6*8)D|(M}H?u@gXSraw$K=&iA#A ziHIaws%~11;5cug@zwz^@yk$--R;nh@eatfm;Jh4Y$v+p=lelFtuVP=KR($ff9Ecc zrcRvpc7O2Bat6*_ez0$wHni{*$`P8^ffL7r**;Jwh=-l3Bm6?t8nb2BNxTrEOBMSY zRG*(*cQzMIWBsT@R2Q8dM{BVk>npvr4a%Fu9B?Ns+Ocz~d`nBmR_fdlYyW^CTF*-f zgXINkHWUO^-w>FBqp zvjpAKldO5c1F(rNxDpeej16{bdhI!Dc_WlLBDWhMe79TN z5R{}un;mMlJsYd`0IfO!E4MDJ$&4FnXuEDWwpZEXsrgf}o3v7vHoZ5aov}p`-ZKYO z#R*x7yb`fyf8|pNC7GrJ+lM=V@xB+hHsso)g@{8Kp*{SzV*LH7v0=WO*m#nXo6(*l- zg2!TQ%m{J?f=Y!tCTX5DEpR1&yMpm2r4hq{uZ|$_=l}|+tI~qPuQI^EAL77v70l80 z(SzfG=(G86?31l{?^ul+Bq@eIN{bsRWnx?3?cxum@_pZzD$O@|AOoIm3uz$b64RJ8 zfh;g!dO=3tmNIl4+-&%J#KN5FEoL#a#>ks2f`&gC&^}@mwW-^*)dBMAoSFzTr&6n2 z<}9G|d`Ee*qBXz?(ia|hr#_m0WB-8#N%EmP`Sb@GwIvb?SCaZkgvEbr-q&4xmM-i% zdKRq?^=U)nU3ov6E=wQZQjCb86ex$Y&d->dMX`Ihv;GHX^SGe-2;fK&0eP+13hIiU z|GuO|HNana<<|0R2Nv{iPwMN=V4m^kPL_+1x-|9#ve>U8+t-Yro9?%(;bdW1)VKP~ z-guIfIxq*i8Zkd$hGl^!`nBxgf_r2i!EX&*0f1=}jd&j28mlkYgx-JeY615SY%D8& zN2>1tfO*zca9+io&Jit*3)g^9*f+OX(De-Zfgdd@HEA9x--qu^gXXGEtR3ElDXf$peqi(tCiEG;UJsKXyi6`$*vyHT)EY#feQ zNV$5oGB6(gWgST9dvuwI((KEZEV|3P#PPyZ!~H3a#f5Q( zz(oP!3Cq@2%iN`BugtIhTWIF8I)TQN8x5@OH0L>AZg7%t(2l zxM8oH9=gJjEg!anHB#V-9}Q-U3%V~4ECc+MQB7Frk(F%OOOeM6uLEM_%8#JcsiQW+ z#(s&ulB@;Ey7gIEXd`FVj=M3)%T|@&mhMM5SyYjz7^YH^Xqb9=XlyYEighOHCqRQT zZRjiTGxG={=mH=^;3T^wjD@_X%5s|zDt`v9MWd{H3-O{00GraVRbn_K%A$e}o)hbp zlP<6>-m8W@9g8|;sz`#JJ&+^>37;;2*Rol4z{sF_fVPC%?GwJs94xwaw#fCT1B54i zt7pf>4rv6;p)M`}#h0ijD-dEEH2?MAZvJ^0Q z9%H;0KtAWiKmL`&H_NbTfNh?k69H(GhFE1Vya|wGw2Lyq!E#KznXT}7XfQV_OU^yN zalmq|7j|Y%-N$tVpp!SV#K3^ncf>3R5O74!0sbER`g9QE{Ahsv5PY6 zQUt`F17sr2ZGKtjk%Kazb z*^V``+I;W#C96gy#Qfz(^{r3eDJ7@$>xTzJuC+ zQu(Ir4KXAxN@Wcu}&>99>#6wEzazaKy8^{FI>JO z&;1)h91UWR!5ExXc61wG8}JZd+E=z0H%7beVpt^1(&D&glS7-OI`!}1~a`PGndvK5<+R6}iy_q@*tD0jL zKH^7gHPzPr=-Er>?$KU%)gTaihqG?LrakzoOtvY0I92Df}cs3ZZ@xRauf3YS>}d>HWzKh%NJ*Nv-8BHcSF2 zs05A(X#ZD(_n4@`Af9ot`(f3`P3?nyt1I`h3)AB7>4?JC2m;P{0)AMmg>ofF8e~<#wHoF zyTWxM67^YCS zI>qvOHa~>-TZ?#|%>8er_c=J7uWi$?b#TWRrihAP2aXG;{**rl>>*H*DosFF1f7;u zdu|!KIu^~){U+17e9+}Sn^2dF_y7}nQp+X7nS7idGu!T?ul zOvOL`_WVKi^yJdLU7)Aqa52dn^4(cFU~6?nsInYm4v*i9tx?y2NMRI$co z!I(%BFHux-bKaQwnlgs)EMH|>X1Lx-?Bv3vgG8*o#ZPtav@ry?O{cxv%Rydrr@U+s zctj8FEP?I~qQULd^M!&NF_IQbyS*a)f#w}&R<>BDr?T-TZRMwYG75ZG25x1N@%=n9 ze!uxShciGUb^`M56JP11O$`7)#z-aifS=#RkiFF z>ppzS*%um07aK}T5AH&rE{d74r@pMW!tzOWdBo%G`ZYc12!p zZqg=mZit~iM8{}hga^ziVgn32HW*MS)fgI4a^hTI`Dkh*HUgqd2li@O?6?9} z9C8Irq|T~T*wBiM)Bawg&sc(IVP@uC1{sSiG`JNA@eGu4i-ZVibCpOV51VHr)+% z9zOf9LGDkOMfp)j+ZL~ak-cjdVssXM*?jfk6`p{;i8VG2rCa(nRO!E~U{V$QK6ZWZ zR3xpRuYm&;u;_=FQ99F)aJ9Div8d-AFW?1lf*RlrQvZ8i&q)6E~jfiLah7#VA~4&Il2=MRjnlC=(5ENbt7X31@27&g`0PWKIGGQ+N|cxLE4h9e77lU7K*WU z*kiD)f5XghY1>esmphU$0R|)^J+X`8ufvZPKIzDVyS0ndwP4d96ozBu{TNj|Sle)8 zwWV9UkGs;l0=tN6WOR>AaglHMhO%DcrMnLHU9YHoxP+AeUB#^Kf$8Y=d@s99zZbP# z@8#nX<8Ei2LdjexD1P^-+-*(Wh@PPTAoA3~olL4s@lBSqvU&_kDSC~o3)O#ZTmJYq{C)#)(CVcAm__D=6dv{KQV zn9H4onW>7i?mp_#sx^I~bDwT4k3yx~IMB4CR908aZDlj9SRp&_^&? zo^tIC%)x7>w$!FR_xC)xoZ=`M_6(kbE$R{RQV4{38IvHZ?g_75n3<_5OaWG@qtT-V z&O15`y0UBqtlc~p`W^X=coexl4EBY1>SLh&te1L(yC@gDC?U*FRj}eC3Q23kyGsiT zA7I0aXNC`9TaZ!s!vJ8yh}nE#vT*st;z?|>EkG`F@j!BL$P@=*z518=86*F4-@&cO zM4SptkHTv;g3JsUAH7U;WNNx-gFqgA?JY1OCdI3Ccxi0;U;Jl=IWu-5ZBKunwy2`F zwm(Numl?764%MxooF2Z7fa9>%vb@+X@%|DO?ktg(Uyl$<8%&Gt4p!bnopeDS@`t() zev)GF;^P*o0WJ2Mu(cYaI>#C~V6Sn|LTkm^?U{i_@o>QjeUl@cz+H8!v^5&!Km#5fJ!CCH~dX{9~v71$$=-WLk!o>6Z z+8V%vLHoV5HG;AYXO?M__s#SRU2IKV4}_u^0tP{@@A<^J+aG}0I_7C zd~}}R2=8i{dv*suZv_~~f27N1XfM_E(!kc8kLtW$e#Lr-XhH{fHMlLu!@I+1enw*P z{Heoqbf$^?1C1THmr-v0&5(+6Xb^ERsFQy-+slv)ym{4`m3b$ za2t!bDqx|}T`&0A)xvkrS;wZ^uw2JQp2yEA1Tb#C-eT;s8!;d&v9N1_AGtYL#TMs~ zgBz(w2D{#S>FMtYwUzq}$AE1A7Jy?v3(_e8jB3{-{)JHg2V{zC8UWJ)Wx;+^pD}M{ zX|HcEri(D8MIh`R2XJgEtn<#BWs(DEA99TXG567kD7|44yqo7CCPNJv%`Cr|%cXF4 z=MK?Ddbd<{3n-;Pxvj97OvHqE`^l}sv|Ni?Y~TQ!^`(#MNOH%BWSDbYO=vDToQJhN+0H2&_-U`4<1TTw4V4vxg#1)(-34A`H|ResTRV(KnjpI@tI0SiSc!?cmu;tJ zdP{*H+~GCS01!;DqfncE6+1Y|$N!2yCfZB%6_hw6U(OfZ%1E^kJTe|VC8B|ZWV8N^ z*^ubXHh5Jz1>Vs609B8skAgcIy;R-vc+qnLCUSs+u|ek0WX2cIjkf}bNDLTdF+!1O z=NfwV=Jdi$d_Tx^^*dcKt9Z7ZNZ_0=#0$p=*NHmCWSfl^eT>Q3o0P>#eSS07r2RR& z@;P!#Jf=cQ;>m%9ls4%7xZU=M+_^`P^2eHXTq10-e z>JHzwb4NZxXu*~^OS7u1*o&uJ5%5(qQMNfaML`2yhD zATYTKtA?2}xk*_!-}}lNvsv&6hY+8ck?xy#u|dP#ti4j%V&afhJMDNb`ZTIvI6isiTFhc}ov0YJ^%1?OMEx&$ zF~&u}KyUBHB)E@W+B&JsSc;c5nOq?&1$B~lL*h^+yV^9rXJ0c11G`7!FGt~|2*_`S zC5(j2!E5gewZeftT^!R;`dYd+aNI^^vb_ZpZpizqFs(Vm?_w5xE%8-b@n-=_Q7umLR$90gPqL#LL(bimZ3|E8@YCdM7U+tEBum zrLE+9G1M4<`eS@u98}98>DxRnUN`G73VW`s%U%oek9M!1u28r=s`7q_d1*d?6gsS0 z(NTRtFoysjF_tWXvg0CymEepRFT!wSfvf^DTAz1NV^O?^wAN|hmr6oBkclGz1p%i{ zJz8jZg~yoxA(Y2^=?0)?x&{b94PxZX9I6xJyX|5`MxsV8W{hb>5*>jGv1-w3(*LCE zlSIl>({JjAtwFD%R2(*lC_6NvkGM?#BE&=&qZCwBPso|Ovb9XhFl);5P4ANNtgtu39+q!QIxl86={ z+N1E~qta@u6q^A55scG=s`fLom~yZqs>lJ5{#04ZoEm5+J`29fugpJ4LR&vnX93pWz8@W`gDm7mzrld%fS2N zs~BM1=om&$JCIt`4fvTNHQiEtdi;ypi2AIca8M!^sE9c%AqcbDwmB%Q7h%4vAL98Q ztpHr~ng+M!B@La;KoK?!=oH5tt&K(|ZJ45?R9;OgZ(u!6ycb!1f7SrsNNOa(37r?a zs_`5AimDgmi{3B|+ol6+fTpCb`!;62ZD#)UCvSwDv*~1FuxM&-U;v8{6LGeYqVofI z2WAD@Pz}^e0&;B71FFa0BpK|sdpK$p>Qf$yzTneEyxP7XE62Zo&}%#S$LS3!oS|9& zyoc@PT~6(-AN2@)oQ~E!G(R=RfB=aa#w-@P@ajSRw^qnCUoKL#;ym0`T0@(?Cg~E= z`&)zC)ia%Y2%$5y(8^6n+wDc&V1#kK?Fjq5)Ebh3 zD?p(^B8aETOcb5t8|k6KpNO;l!Oi$6=vK>aAfE1;U*4ess65>Y#7}R*1aTSeVpNsr zj8R@?oxyvKWEp%i0Fro-D~I_fQDm`vTO!UDhpt-`rKk@E8t7gKHOmK6Dk%L{^+>3U zYRnp&Q5?!$Q`IT7KEkeZT2BGPiG8e3#?$4`#=m{tG7W9l1ZMEPZ7(Q?@B>4B4ESw! zRpwdLs&5EJy{I<~MIV52sT%p9iqHK4VZH0Lk0R9HQxB6ydIdghQ$2a9>Eq~4ca9Eo zrtQce8V?TMhy_1CdckbWJraKI)r{V0i(6}J?TOp&IRIFJQ$)LJTrXRFAFyHtG!V>r zO>|9X*jo02jAfsI;z+i@_~IpTc|LeqqT#)`0mDIu2*e?MAXZ8rNI`#HCA9sd-#))X#Cc740v=9VtP&LSn#z}PJW%EF9|s9NLao+=rL z&%$k%Hr4}NJlh)Qee+qGl#we+r;{@A>njHRR8kCwU|?mM0~1M4y>;Hd2XR}tJ-Qz0 z&`@NHw=xHaJR?K1t3WU` z<5iQB{9RPZOHxBo5l39IkFa4xNl;jvhFg;W!+sUWHsLS;KS) zD_8M_(!K&Je&*~+gzag-5ivDsnGKCdjgk62WW2z^>erj_$FzW04dqtW9`AK z{Tk>g#uTjvj<|l`V$~{eWp`Dupr*J%gpzLWU2K!nTY?i~4eI!6;NJLD11lgKq=C=y z?WoQ#OqA;Yjh&SAN&Wgn^Z5PxXH&V7pPJ*}>&8@l)7pL`(NG*Csvvs{rW(p|nfN2| zudu)o-+l>p0A}lG2GhW+Dtc1ECr2)ba=Dx{ivgNqB-w5XjKAts2nF;qLlblJ8dq#S zoB9e=h>W4yJW?n@Um4A~czriSo^x45{V?yu1me8)tyCYS8C64(6VBechmdPQ&mr?(F0a zbAYK}A$4F))Zg+av>&;EfndmJKwy{>TT`b@=ktW|xnW?)%K@XjEVEKm{BzfW`@_Xs zXuJ?HJ1p2CrHQtMZN?jATIuu4beT=yOncEgq-V;J8fJtOaP!7`t!Yu}v7$M2T~}+R z8~d(#Pqk%Q`y|~9N)v)zJc-HvA3}^&o zNUjCjU+P2=avTFXGaOtH!u>#3IeLLjHyBPeL|I{63`&DnJjwTqxuC2PBheSZCzJ_5 z!2z)8eW37lYMkhrh4k%0TYCbl;?Ns$_?#}CgA`$Vq}pwF>IzpL7)0#`|}p+eqtD^EK~Y|Sk$3qcC`u%i(-{T8KDn-?#3_|;}5?pEcc-@ zEW}$`XCB$~)gj-3Q5Ix9V794bu9+%Zb97)8u?&P9NQ>Sk*)9rmAq9bZbB9If1Vp_1 zNS)E;i!*yc>3GD{uJ*i8@h(sQMYKbLniv#ArAK!vQ*#KGes2xGm6m|e#wv{Ob`U4Y zPR3r~-T)G4m@`isu!3jb&esWN>iEmA{RtY41IZueLEgYIdU?IGI8bqvz@8EWk)#(e-^|syLl5HmmYbH22AlGIA&BcLr z>a!~X4NEyWLm~~jI2hQKeVs&CrtE6IdqZIeY+wfrFawmEvd-X-Kd-H@=mGErLcC1oGM|sLIHi&Df?ViY7*0vS?Pg(c7iLk!iGU(7MOrV;W`!cjP@hgiMAPaa&jIP`k~2DyzUur+2CfHZ|C$|Itq~+`facX9?H|-qu!*j4Oq>0 zb*tF|fQM`dl$q3F%lAeUIa?l~AX$Jbjso@IGZCn7?udP7oY{})4#y|Wm}4Btj*IoQ zMaq;*c-w9-wnNPX&_R+YOn<9O<<5@jN=3)S{T}r^i&QQWuLbB58!}p1#&!?aN?C<& z(WC&V8QMbO@Rb7t&6^bg=e$yc*6k*1McC?dhRNSC=jLCO;G+~OcnKo>6vDo=q=*ZZ zsDZ8SpM*ktqF$k_hSbOI0ChAlFw`iG7i9FPwkPf|#2tyWX#jz;{R+z^8qHqmjziDfYAkYr*|(=2as7OUul8*>O0c%%Glj#m0YEJ2bM-;6m(ymUBQLed#0UrFN^lzt1a)csR!VjVVA zgVy4^c=!Y%gr}2UVU;LAJM>u0uD>{GntkSnHj7d@KOMNk12}*Ff5?|lQ%^x1kd8`@ zGlhMyLeeoDT?a?2iRUwSmbG7rHwMA`n1(h?2RxfUx1UNy7AG28Q2~n|me{zQjzrGB zCo36ED*nDiQ*YLe)IfqQ&1uBFrHMh;-48jb{=Vdw;zzGSkz9`$*s@qlNIR{!PIiHl)6d%!HDp>`_G$3rb1 zj#hQy+j9I1f}H(9Xb=4XptQumDS)7+fgo#wj|gajHok4MAMsc&h-&d!B-jFQ zvEfv{TxK9L{*jVe)I#rg@CLu#hI4r;WG67oAPT=gE2kddlL8Gg>I_ackPQJ4ABaPm zt4R*O$`gArHN3E`+9kO_rq6dDmJwnIhj9DW-BO$(Fg0rCzu@3l4+N;l6*{PT|9Zga zj%1{gAzoro#$5TvM>b5nW~AR*w$SqUC;)PDy=7T3-5@d;Fc~x9-7R{YpbK*)c3q*) zuv+JWOS1B$3p5|8d~_&8f`BdR&O0);5-sxh&SR$%5AwDYaaz!HxTukA#G16%Q9GNQ zJ8NK6GLG1^u$TVv)$agZdJd(x{VjNn`3NIE*jQ`)$>+ZMR=$wi#t` z;X4NLybJB=wd6pX(ue#kXg1aH(hfhn{WcuvZ1sQ+#t?JYI0rfwi= zy{5$&76HGXq(vmjBv_P^dJEM-iU%*Xa+$^nz@b`qXSljOZ^mg_=Cw;{1WWAAYAW}_ z@u0Vs!E?Zg&ns*X{-PUWa1iG$H**bQ(QkT6YQ@QNL6b>OI23ULUkct;D z?Z_fPtA?>je4$fY6a?xA1FgaXN&US7sGO={U$}eF#_~(wmp81`3s3zTnC&nz<=Q2( zzxybZl|Cta%Hkh8N!A;V!Xe8gW5CX{o>Hr#zH+kN!;c;Atxsy>fegn&81ivQ!y?LSCsiAfUDND2+_IZo()YZD0v-2TLEc_2kix~%aM*o`UnbwH{X zOb+WNHbX;oK*xQ!OA))J{xJ=Npt-^?PufnXsqYT2MM_Z}bbEA20(Kk3LgQhbOV6@5 zEluD>+QCF`hFBJSG4g^W^)i4&QPKtY(SS6DF6M&q6aVs=Sue!c^k&D6Eh}V z<$D1rvq${pHy40$^Z)<-|4Zj%&qte>iWIqYqO=)Zo1lKe@N5UgW4e{Lm~k^|AB zl73%udk)kZz2YwXLBzoN<9E2UJpJ-7U&ucEku#ZMG8XT06|{H7Z)Jd`%>$v~)8U{K zKDZ2ygrw;%l4PsnQaJbx2rmKtkfDJ|U#ax}x`0I~@lyfDjLKg=GV>SKiTM*WK4@PP zI~R^WTT8-RMsU7w2H278tiNA*w${fBla%fv#r@L+iRRGU0Ok*fn$l_jQ4<1AgxWxo zD5@^O{mpR*0D#LszvZuIlTFb34}S;K=>GEm7AbN`W^kQge-0>MRAZFKV5Y!KBA<)l z0A_v3f3+Q*zlr$AlK!&K_1|ykUml4~&XE;(04byQ{eng#{`G?X^#*_5ru>(C$f5t( zl%=#Dqxrd}s}TZ}1*B+R)*GTc0DhS#EP(p^t&YXAe<6dvJ|H(>&)?r17s$20+$Ffj z{}Oys8ogApY3Y9x<@YT&vaA!Ivqos~E_S%a0x;^CjS7Wpc?e-|T>F%eO?00j@+R95iT z7&G*C>C(FXv9#lW*Of1TW&jHqWNV@=tKj1Ew|@9fS3nwb`BPMUzk+`eB>(1;{+TnR zk^@u;XG7Qf+}^f99W-$z1}yItQSV5m7f00G)VVO&$& zm7!;q=D~#+&|| z#J_*?wr)=2=znqnW7l>aFPGa)^#7{ii|vkC5R zrRz3tn;}VA;bb+$Sqhw0DO!&pCrfW$-iGx0ALEP zwev?1C-~ycC;l3t|s(5IF3@AF=ZH<$mDUGqP;{#XFRG48LE&pgB`Qa{A7w=MjGhm|WQnz&cw$1(zghZv=e$2e!?N z>D2>&%NPH2KL09B{_A}HTVeiB;+Q`tbBw9ygP%S|J481D*v)^4w)ReW{Woo{ylyAj zWE)ICfRpZ^{~J`BvLE9A*SCxLH#ph!1CHtK)XgXDCCBVFWrk5`=5eG{>>t*J^sxR_QvVIx zc>Q4_|E5RT(vT&)cECUG*1k#t%N7mI+Yq9He$DuA!53eL;p`YPBNN* z+waKWw7%PsdOqKfSP`}zn#KOIX=%(5=>d%3I}N%-T2&{G#tc^MVqC>RnKpGUE?c;F zCBsjml37#C`1`^8`GF$SD&<{Y#9*rBfuL+7+C$#gqmwDuu03SoyM>@{2LUu=4PmRx zyQaWE*4$;%$CRyi=H#$1u)IA0W20zhdl3dyl~Sfq#Y3bF+YH_SKRZaI4mYE9_@u!| z`Qs&QgRHMLpgO1a#k%%eKQ02+~muC_;{HVhvMWXe^ zXZYLl`0AI~rTjzOkHLpKHRcr?l=jt*f_TPy>wfl9kue?V8(p_s1yqDHNCWFrY`kgt zbu%)#L@Ty@O|QWT2L3)~sb5x*+=txM8}-X?v5nSB18^21I&V+n2-LOEZUa%Lo`X?| zd?0S-ZdY!aj;w;F2+ITmy6!U&A}xvqt?KiKL=N16bs#ZOnJ5}N|es0 zf?ij1LJ`^cLBYJ=%!`9`B(%f#5y+IFI4K>EofT&cr zcXvK-7}z)5QK?>yjuINY3o}k?c>W^te^Y2-|K3HtTT6aXwNXGZ4(=?3q;o2_P_vIG8{fxLzT{qe(I~ zE0-x9?`67wU@Y%*>cO?!wV_Ph4QA7_hZ?s<{Ycdqj=~%=2x$NaN+-+Bi_NvzdOd zukUEsTAZkA_o=`m4l^4T&gs1wgvB;T1R6R|l-9IQxm1MPLd8yJcW6{+rZ z-&TnkS5kvXMhmq3odCYu8W23lt@lv6#i5l9{vEpUHLL6gJIVNBrT0y$Q8b6FZXU>8dy-(jS9=qR9#&mwHgDp_(bJ3vdvAc+1=iI);Lb zA1(gmzxjgbeCS!yVm=muspV(?!Yr1J3|-Wawj0yOR@}TYAu@WHFnfI~HG6Q({7w61 zzXsz9NK(^T14*#f0$^C57^u8kvQF}Z##5?; zf5{V9X$dRv*Xc5${D=NgTYScrJuhQlPs#{GO-)@EQ)s2fIYG`=K>^L9ZOvA%6lCWF zPtBVl#iN}*?n00e5FUDm+FJ&1Qhq)$c9J5#XJx$aPTK0HqNis3x9;+$vh^(GuPE1- ztB!y+bc-P3e6~V5%|7*pRZ?~!ba+-K=DN#BG9ErX1qmnIrIqxhlAI6ni7SIl965f0 zmfnKOLwnhG$L>-e48z-IwxBgy7jP<3J;GKer08LO2<3A)eXG;0p9C?49xP%p@mKXR z0%#Ovx>66}Xlw zv;q*I|Aza}bluOP#xgj;-eY@LTpTCp?a;6j76A^B_5m+gYXuI_NLI4VlxPHU_>XA3 zpQNvO4C)lGERgJ*Hx;*fy$|wwBn)o5TtE}-EWUr*_GZ+&OG&l**2@;-dBF8`|Dl}1 z^F9IZF7E}=9ZIAj$M} zQwiRMje_2QEgN#ReX2f4fLBURwtN3+1B`sCr-qi)a1_}Tq;@?qp!KgA1U zvA>O$yMN>Nv)5pk!HLo~QHtzs-eZSLBIV92$;Ru#GeW_@RG$tVkw8en9R$ufNR52XU=1*>Kv_Bto*j zbZ6|zNy_Dt5i@3Hl{QQtMn58tT#eIlu%RzvbM>9b@;!|uG0$`&sR;h70?Zx3iO+NSp-a;phvX=%>HVl=_BO8e0M=ue08 zGIn$|gNQU<{7`u_2xmD0Gnh)?Z|UY=d`Z3auUS%YszxBTkYr8 zuh`b)Ki0nDDqjmeHBOs)Nf93C>~xX;D>$-F+uXTUe-Agey=KG?b1MvcPbqLVwZxgZ z(`QB;-ubvEPZ00bnv7ItIw-nzH%>f- zeKI|KmC|Sl$nfoU{3l)Y0d(ia8Wk|*4bfd z;rIMG(ArLrOddLAap_>zgea+~XQSFe?rpBu*RC4jqBx2Jbs0`gN20d84V4TO>P1;C zTvV+1JeYz^anXO2j6Qq3Cn9rQ_#C7)JY^={j$y_F^2=K$yod;sf%gKrl*a~;_aDqr z3J~*&^iMyO_XdV`1mdAbUtj#@xu*&D?EGnu)8ORpe0`}=v*cX+b)0r@1r^TSeqjDv z8xdGjyA~)Cugx)Ox!lleaNnwRzC?A( zMkOsCk#@r`q@6{zz0sNUJo&W3H}7(H^Xn!b_wAHE-Gvi5nPD~l4qw%LJadX3RcYU> z-vx5Y^1i!s4t}b+S$XUR5zFezuNP+*%Z!RwSU>+9qvv>4Z%iNhY|54w|K^UF3ISu) zOx~0k8_2EN9etiyAb2uVc&r)=BXubYAW#+S37ky=V)b>z{4}LCc`LW+XTL`5>*x9v zQDiN-%YC0RmD<;VIc-a`MPaTlJqWsdSr`j&O-r!^!)G5?%&KQ>3*l|dM@57lNzs3r zarEm$C%gNXJ6>MY`WV>SwD0G8$?sIJ@*`=?7cIXpVZ;b7l9VX?G%ctv&)tEgT);ju z1`h@poZj|w&Gr^r3-^M_Ae{|H4V*tj0 z_UgL<+mZlwqfgJrl(9fUlbIUB7}gfjXAPcrdBy>*J{ zrluWB5=Seyr3+pHmEbqkTzL!xAQD_b5@s7M$=n_#Z{U8-|8nD~_f3k`ut7JW`IP;f z$$fx>3PN4d z^b0nL%9@9s*TaK3UZU2Z=*_Va4r9u(2i1J8_<;r29M6Hefc}eB-DnxB=dj6JC2iCB zbIwxR`eHj~Sjhu~bBAC3L$YNS$_iw_{0Y5%h}Gb9DjdL{$CsUWxaZjqfBvl2FB0Dd z*5K6B$9`V$&qttzkC>6uxl(juns7{28AN3st)ob8k_6{gd^}KiX~^{5o0uChr>W!g zOZg8$PK z$!w@h2EKg(1Xf$5(LY#LvUQ&Uh4#tu4WgJAdi>Oy)`(7rE7)plM{~kLV~4BOg~HI& z1q^K`(MwoApLrOtyD?Qb>e5KG_EM!uh`=x&FCDLH;gR2rjc%RGs(QNcq4nV}dZ&aJ zMoZ|&Z%B_uM^;Cvx?WD)^zP-AhacJXP4{S$ARs(aS6tNb|N6P`tf5!D_@Y!Bj7hvQ zf%&%*Sc_fASE%#gvzal8XXgBWeU_=C@lQ~fAj}{u*h~fcxaVjA)jcN6UVAW+^IodD>HNa&ZInr5En&pAnPr+lUNK3sNzj=kfJlh zI!k@f=9k5&N>myqJ4N?cjxU-kMBJjW4}zJ<@p7sqF$TASl2PSQgOQN8x{)1vM;m&e zfE2n_q&W#Ylf3P?Gg`kIhx;3$=NsK0-Q=sNyh@W{h4zl2j@1yBp^@+x<((`I5($52 z9u(2>)h>tFmIoG4{08ek!)bZSFemvc2`2t9k1=R%crA$b=IU+hCM85Pm=9p*2tC zFf9Ds@qAyebjDgs=bpGUe^;+GxhDSpqvY>>VzCzN>Vw)WuC_6W%|2q`i2Va#pfx^*TwAx zl4U3PKDkc1(d9P>oO>$zBi;?RDO<;dIo*t3>Q#om5q$lYzZ3jg_~m)28J^L3`f-=q zN8)qYY27@rB8&0<9ZRDwbfJmxjnS(yz_3U(+1F(j#pz}iMD!ju3Z!^!ckw7u{3zR!K{ z-unli4<9(gK5MVN_FCV))^{0v_mP{sxSY4N=e_@VK@IWi`BKE$VApI-#)T73re$Y? z-4f1{cW5EVAGFCxK{mdOeqe@Dlf;flS(P^vRQ+sFv9|uGkQ8R5ZadiV*4fExM_=!S zl|7bP*LQ5YExqbgtwltpc&c-I_CrlH89*(FD`ehTIIgIZg6w+P`ma< ze#kMJR#EOaF%z>S|=8VU5j_n@{`=eXj+(cI#gr-rLIU z)z|Ip;;Vi@R2S(ZlLdS{zR&I&<=ASLM+)KF!KcS7F6H&*cCLt=EWY}_sxzuK5=A(ld3 z(37NR!g?3`vsXH}C3}(fg-q^h>_8j#b8c4aFKT;@Hz6eg$T`CHXD;E%HrFV8(;?Dz zf<4A{zI21$PrIZm=m#&|WF2i`84^F#V4+~pCpLOf4!EpVBmhVO?sWVtx1xkM(ffoS zhda2EHV4#Tdi4&wj32G-RB`mwnL-4Q7!Gdsw5H-K`}9}T9Dn#5YiZn1jA)Wc87w~+ z2x1PN>i@bwM`FzalU%PFv*a^iaH8@sE8#c68(Z}Y4z<`1m0l5Mu&1|PBD`KX_I`Ou zL98*_vb>ZFCt=fPaNZH=LQGia_$iBh|3oXw6xrM%V2J*tV&m$=c16z%-lLc(_C55o zcVemqYnux-X36fCM#CodAZ`szQA>LB6XCA$uS}^X{@BP38id$ntc=XCQF%T+aSWAN_69e(t!jjCfMf3->Kn-c(NPlvXn>pB zF$+~}_{sjIWgE*sj5+Z_E%$W&uINV%>z@`Au}Ah}5qs zkpDW_)`_e_3pev*=Ky$ioR zQa3Fgo-{I;2uuphU^K|L-L7-?H{CX{zx7GcK8(LR!)cvW>5>UwW6RX+8UW^nyH93&bS8@9lotMVNn{*RrG;%aTP#RS$ z*sc4r>6^)l0cM*b*_=On(N{Y;=nTQI&4?Rik|)U(@9U8JvalD1MCX=1%)ULF`pfNm zy$yxY;^1kyLN~(2!Kjg9R~l{lV(PMH+&OnXzJ(}mdYPb>T=oT5erEl?r|T(e=@!&% z|G=Y`9PXT^*jFU)e2V=bq_(pw+IL9NkHwyS+I5ioPR2KJylSB31t?T@d_R4saGN*X zfWxSdTe$Z5TgBN}GOnLra~kdb!7cX8Q=5kIlPsGF^|d8J)FBt=iF*1KTfa;o$8}~| z6F1C{gp%G}QnD&IPo=R)tfT1@48>87cZWX&a&XcjaGsmlHJQ1h=jEtjPw>>kZen!t zEV+o9JuTxqwfZj{Zw_8Pwr56)y1zU<>P2?$y!+RO6{QQm379S~-QBY*0eQ|_bAlip zbFeKpPg(n0?{B;v8cjv{PuvMHjx)1no?h=D57cDbOo#q+*<0UdtzIMahbr%x{g%iR z)!_`qx!1nHr|ai6=(&XR;%rpk!4yzk@hWrJv3_hTH}5g;ezjft&M%ZTd0_+P#+F%* zu@=xMSZcAa3MnxLrbtGe`ZH3o&JUu6j0Ftbzg)XeWk015Ff_WQ!adPh*w3-%8+KNo zyZ-ejm1(8Djj`<-H)}~X#X{64wr9=Wdrm*!kv@~uf4Ok>%du}2{aGgDo3d9kLoSO7 z<@<}>8B>z#DoyFV!GX5C0Y)yAni^=vGWDN**StBeTVBf#jE3h?2a%wIqh6Ci#$XlLPUL>M-m(D055!#I0C2JiOlzYw#p0}gyzO_Hkmznjl8v@Z^Y zwBDiQA;ykQ!a5ACfk)Y{_(J2Dd08}M^Jii1q#6?NO}IzSr>fgN?y?P&Yi z&_#u!p=d363M)?5zEW84szGVIq)ah&o+@Rb7snG<*ANrsFNQL~MN16uojJLW`RXWr zcKsyccYKbZikqET+d96;k%?|+XOq@Z5O`J!p5}yA4yHloJa0vYgRet z2jrIwG3rG_kS{#lM-33*7JG@ZNd&(clPilyeELjmy`%2)<(0>#hmPgZ&em%>N`3H2 zu3t;i474hE5R%AHtRstt6#Y=IWrMq*Q3}&7;iVPK0ES`l~qdkVCbcA z@h#Sghi$HOYUjp+m|r|8{boper{z%p`uEF{Pjt}&x1Ct_`(9+^@fo9G83XeNL+PTK z&8;!hiQ(IK?%2RAi`k3H7aUHNS1J{6s&cd|EQ~d|6?GNz)$X?(9qj7I9fNYM#Cs`f zt`hb@XsMXDjkfi6MgkMe`}__6*L*DM8vG{R?B_^~TzzQ9H9ey?w{G)7;)t@|ER$;B zvD7W>)|t{9RybT%OJhW4i0IbdTBztvsoM#Od~o^R%9LM?67Q@=u5xa^Hl)4Rgc*N) zs?DE)TcC0`mlv6OCihd?L|6NQH-%)+%&&Muj*@kT(+!gzgTY9+8a%1{q#55hZX5hX z(TnJ`*|fqCWd=JJ|D2;F0J%-UyF1B`C8@?7T`xB%j#8xj#No;Kqo|NNJox-1*w#%4ZH)3dmAEs8B+oC*|#KO#e>*O%~PR!{;DG}Mp*2vVJAd% zgUxK%QHC0_)9i#t0(@H>rBJ;91x9k|2JcRzBO456)VoZlR{}&yGc>PYerI$kuqt6~ zo)I_kN*8_0@{1D2pgNwE0l`7ysME9vCtI2p&k~kj$obgQkwn{c*Q{woyrMme?LWT! z47pA7kQM_<@#oy`I-V>i^>{2_9LC!kxI}K1A|>8L-HG3NT+`JuIDa;n`O@g6hcM2b zSwW^1_wrUhvKJ{l-(WNdhie57^4jRkB|*vpDktv^@trnbkh;gdsH)`O>Gv`^@vzr_ zbxltwd(i0_?H;m4w&yk^y|*q<+dMS%prehoGRuVOC-!;?`~jT_5<6E$Me+RWwun)Z zDkr|#->+u3>~(t9J@ai8_mVv;xgEwx1&4ERSwDB;Rbt*x@Q!H?q8X)Pcgf#%aZv4>E zD2(5T9Uv0@b7v_jy7kO$M>VD9XQ^%U?UE#xe}rCCMK8WtEIPcRO3?FyvI?w?SwCKE zX=kQ7PU#Y_vV_fVYB;9k>1hx77uDsX_Tgu^;nz$IBK0{=LW1Rsmm;jOW@__g?J9MW z1+(gS<;Y|XZ8IYPZM7Pt8$KhY3IZ-QM2rR{V~z3Wr>nf*^+~P=#iCWM3W{PU+wAeW zg@nSe(y)f72blSM1s@KcE{sD2+pYJ0t>?eaGH_bQx+*=ZpkJLLw3USfQfea057xM^ zXU`u235nj+4QNT?LVW2qJrgQ&jV8&gUm0H6l?E zHj_QrL^i0+x$z~s0CspOOwe*AgarPrvj81nR((y^8#pYt3$@gGSp;TD-XRTL*JJaO z$keZ0_${CLvNrI(*_Ia?>jRT>q_^Km*LPzY=aG1y&i++Y9gby2Pg<|kkBAPB%?{>m zkwkd8eF(3*Wtk*@34^aKXnODe)R;rccn1VRshu}NUloZ7#Wil%hQ&Vk{+@-ZWU{p| zG|up5ka!`*ksjaNi#fG(2MmEb0@db;%0_7MBmB6h9uO0?nKxv|9pd0ElHUNWnQa*~ znY%FH@q}_q%F*x+7eiB>ixU^kG%q-&Cp^mAMYG$^cqdlyB}{z3rVyMUW`HTj) ze8@xG5Wyc~`HKB>Nv*p~YtP<7hpiqCeo_H4u`(jZ&RtyRy_qWm|NJD|^tAfpL@(+{ z-N-vjAVJMW?K{)jGPOd$ohn-8+|f4kbm8vkkfHXm#Jmi{zyUZ4o60}ryVsx2)gP_U z+%h*8V}1(%L6GO_Z@&KqRvPD2cLfz>NR8sov1-zK{e#D057H&aJR8R~8LrK9{+cm| z@Jg?dI;SAJ1^n$O-hv)aA>QwLTOj=~a~}ZIIZ9rQ`Xwhx?rf#drOtB%D_r?zPr7&U z<(v(UYZA&}iCd~WbA%^-pv-oP{2uU#Q+CUO8lJz5%OG1O79i_f$HcpPe?f&i^KbFM zv-1E@E9)>LJRmgwsYk2%$X$a6MNoX>%nL_`Dq+uM)3%aV)(@knVV+Ds6s1pil&(Ll z?n)TK&HL8b{vo;dJw@uKS9CA9U{qsU`{NQxjaNx}KJHA-c|>;zu@RE*7v^RpdgL*) zJtNyO8;yrUPv#G`ko7H18{^AED%zrtT2H$<6fFJYVI5LPUF9#9|11gI@^EpYIKqGu zJhxy3z{O23x=V(KA%zy0#ZS@dV$L;m?sz82-pl*^@MGyt>FtKuX>6Pr61!{RnfE1s^ADk{@wxG~fDW7LRsV5=>l`}&_A!MZ`@rWZBvr){Gm zarN{S6imlHL)-}XMRK}dKLJ87oVnq4r|}SB{&wf(b<4;pe8!!jr{v`mipODGiX>sk ze5N{iSc>k8fjqb#(>CH)bdnFdcbwub5*2+Fx=#>YCV9B1;6YcVdS>%PzQ|Z|Y zF^yHloX|sOZ@oKqr@M#4e9|Ufyo^YRR{B1f|uyszkO6&99OsIl9EBRNY#=@I5Lxq z`8{vgie5k8#1MKqb{H+ubMy2vn3&e?%S6ADd{Q|+Q}f%UM+G9RUQoA3db>lP!6K!B z16K>2bf)pl2ZHAJ{;o|m^>GaaFJ?{Ouvs>^xxr)<3FEM)Q*I7WZpu0yW`0k**AHU7 zT7Z8eDPE|$H>Lwxsm+8u6ptnHDt^lfK6-@m=UYZf?aJt58kCe4IW^Q`m#?#rWn< z;(Q~}E1M7aKvxrm^2Co{gyx@T>ir=Q>+)WHWDZ$>MDvd^JyRXoU2L;MHAEPLA~_uY z`ICyhNcqm}|NlFi6-nXvL84%b3nbmWG}&#*!p;7bRKlWh@l3Zga5JMp z+VTSMVo90ccz)hJ=u_~rC_cyFrx3GljU5w-(5~ktP%|w_7hcazRGON$y zo@rD^<>U`!WldVtDdLxcmC_b_sGdt)NP-3e$*0F16MJ_l^brH75f_aqY?=8xQ{2L3 z8P!x<%JMbFRnM`&Qk-(QEJbH&+Mm)s+1hgbp=inWaH8$P@k@o|JZcPL~@Ikj}p`Z%hPF^X1{+q1vE{!*`X0uw3m)K&&`w zA*Lz$<9H@-lU@tU2O9UA0?nM5fkil%0qXw)2upCE>QC4E=}1)TZuW`D1s*HkDWRlA z?{Qp&)(v&;x67SvUenIU%lD7Tt|fh`=jLykAA@|51++6H9?KD&KFt;KgzS_AN_g2V zWPe(fJ>fk2_*^E#$}pz=|Ec0Ff2uf4^(6p%Q%{<|h5Yf;mAC~{!|9H<=JXiKu(!b9kAfU8uh;0WA^DZZvDU2&u8 zt`~;wBWbooF|1}Oe}5ke(6|~h@CZgLoh`-UF!%qkKGV+zSl=FV_52Sj{$&`aapV8eWRT^1R$@^|$B_~|Se<>diEe;`Q@7mRfjRfn zCzU?ck(5n}hxvliRpZ1Q*Iz|!bPT$Ubx^FT8W_xEQ8XZI?Cs1z-@?wR%k+q;#!X(Yv}m*xaRex<8)2U~ZXw$GLTRxLumz)6M{rb-9IVQ@~f@ zTVJoS?pmUg8mXfE`H?u)Y@xE9%KGne)c#-BsVO{P;X0pGYNi#1C2%%fAF0DO*Tr|t za;)*;H^{f>@WnPk$P7tVkIMLfMCqiKl@Rc$U<=sNYRlD9*25>cDe_|T%@(0Gu=j8v zCrc+a=Na}R;WJ!H;!CTLksh*a%z}>;iCr)#@dCEz=RF@=*5inwTIeME;(v~wr4 zVQI%k>byo*PZ?k3elT1Hn@wyGQQ@P+fUMoX9KA#YgZ-d%))u~KeLhWu8-7yxTA5kS zkRp@tj|;Z+e!*FwA-l2WRI9`~MN`5awx2<<-!H?B(C67FpeVDnScBFBQP&-c zpq5cd5q%Mdb2Za*;SWTGZ=CXV7ADN9Es5m>isA(m#&N3=TBX%NM&$TW6gQ<3fI`4R zHCeqWGU?VSN8p z=;^DIsV!7LiLXw9jD_1*XYn#kWl|v70$$|`n;(TJKM|?>40q8u0(*zA@|c?8#E^p! zQUzylS9CIYjh!Ajd|`&Uga?gHeog?>*iuXgBZ`g{Adet-PbtR|_U#0M0!Kf5hUdNq zuqY8Y&C}PMtU2?HrHuiU(rZ%i5Un$&$bd6f!Lm?|z8rRtIH^jO)km^nPt*X|Hd5Cr zFfAqHRRahbO7ASLZGnz;E&KznR=!i5st6` z-#0@P>n&7`qPEM|A|rgfyX~(#QX|t}vJaT!xr1R!U`^*yAt9dx0Tj$t`XyJiHvJ5U zfeatq5~;hjq-wkpt*>17H|Rxy3mF8tn}w>&3QOPRhjCMI69tb@WzMHHAOS(~vwnp^IK|B_{h_dt9MUU1?a5Etkg^B37x$V~X8QuK|2oCTzxcKZjs zq-v9>V9-P-wP>d4B0*So9u0>G4ALBW1jEv~iW8%I8%*DpdJ4Rb`ySJyCwah6%>WPhy)>12z!uVstC?b~!2*3BizFgnw? zpmdtn*yb1uDeLgho!ii1r)G45sD5q?EQ$J>Q#LzUdD{@IM zH1ic!rW6o%07XHAWm~hn`J-(QMf}0v95>HJJ2~+X@Q9`@RG&(k9DxiV>o+_*M9awF_4?d7mN@eFd95V48*Tca>38vxOUJNK+NtsbFFu;9v=o-93n+^$b|d zsgYah+omd~k1z(;VZYB4h<%RB*@9 zNl?vZ$qL8*YLibYpMxdgeNsV@ITs%_9)^0%Sz923hG{GDk6iYM7Q7?ISDF4nGQa{X z@evYCbj|Mohehgq4qL>}U!9YXaZ_+l*bzFZ`SQi4WrkoDGMldNX2}M@9x&AXCx$ z7pakBzrD5@ir732XI)$W^cUSh2={%hE%sFu&D6utj+6eC8mXg_$zAoA0i>+4wj&Q2 z=TIv3FHnR7+K`R130CqU@L5tLL(*3%6G=`58RD*BuOqic9fn6(=1@+6QFN(M_&obo zS)l{ZgJ*t$fG8OXSm(-KTyIk&S@-9H;U8O%T`$Y|YpY1M2N3P#|4BDdrk$wHBNB0J W={WL2CzZ2dXoBfcEpG;t;e~?Rlw7?GV(G21OxJV8Z8Lq&OlhK7cY{saRH9~%o36N}{8b6k81QYuOcQgU)?IyOdX8Wvh|@|XOt zSU5O&czCE71w{q8MA*1_xPH3{0y;W67A6)kHa0QW3-T9S|LML^yKjFfI<3dD6MnXpW4Hp8U2fQHRA)~zDM13Zyie~EcoQ5m# z3I6N2-0DtrT5h#tg7?nj7=&~@YxF0-LHirB|2<$q|0QI90Q(ac1b~Hv0B<}bJb*ah z(l#}c3GrcTM^k$75wP-rBJcMIV0i?Pmc2ymgKWbd0l!|}8T{=RNd<}LewDx@SWrye z=))smOoK-SdBryS?h%laf8g>60G<3^?;|95z~c>xUnz)babcqLZ=q?$_x_~Bz0c#?l7wld>z2Or?;S|vFc?emwg8sG|ie3FXS96Wr057;9Z zuTA*BZ(n!DoD}HW(SSo7K zHIQ!Dx|D8mfHV46jx}*Yz)PfWdEtYz=L<_}oz&G+=HC*{aV%at%RK2r_Kq10;I*m} zX&>YDOJd-Uc+w|r@OqHw)Ulh(uO_)J~i!pJ?r!bp6mh+t@6SFFX3evK9rMy zQJMrccQ9QTuZ9Y$dsR8`Lxfdcz@m}i(58M@vz1wpJZo?W;F%KcMAAHOZ6@jAx^f!f z-3~r386$-hk;&poB)h?e85(o9#YeXTOx*_IkDx3a%h>EBc1{Uxv0!RMpASuZSp=t7 zZ-a-0&4zF@Rx@yo5X3_;8@Ll|W<(_Yifu?ExvaAcK|jYqH46=F)zwscB0mu&_G%+9 z%V)A^d=8YQqlpvk+{lQUggciDK6Z>a-OGw-@rUxbPt`8TTTC6r&nUj#G_MQmEm{95 zNLKGaauiBXTtcS@jO0OM`UXk&I-sRCmC6iJUwEM;_LVK0eF#QOr4Q751azhG-+rBG zI!t&UK@xsENXLS+R>zO!vM2k+O|TY-V{F5>N2cgNc&>}Uq~x<2URe6A;iUdE@*9z) z@llaM+{M?q8rh{Hez=8{!jFJBGVRg(WAUGA3AOeDd(5OskhW|mmrI`ZI-jvdAJjitPa>%^=!GI1kcM;r&ail(T+FPBhUBr>)oq$<|VBW4?>^J@K6R| zVQkh`*NJ@i9C~LE6@AT7$@F2r(0=rsNeJ>VUYh3_KdLf$epI_WFI#G;Ur;n{f$)7O z3qJ!|%jRY%G(68%hp9v1eyICFlh)mRo3RZ?)X9Lir-g6ji7PmWE-F^fH^k187Sqxt~F`LwqDmb#rmQ# zfzp8MUD-iGV1Sa6qR^FE^`x0D`;py&YV@@ArUvpYqN0^!%97E%Ul zHfU>~^`VexuD4aLiwKLVALSmw;j`=Yu-}RFsE`*?z=B-HSr;wNFF}?`W~|@G%Gc(F z0tf`qvRn+@f^o0k)OKg>u+>h_rrLkNAQXK5^L;^J$LmccAs0ioZyz54Ywxd}v@I9j zXp@~pEgOw+uaJz0lNLVs%@RBUsxqVNi+-Q{rPTHQJ}bpOGX_>s9Zu`j{f!Q2S|Ks2 zO@H{T0-o4^A@5Kulfd5gpfe{Y*rq6VpVdeM zK3mzTs19R2SW6^EYDi|!IE(bnuQRz;m(+g*JoyFkD={+A3p4ww3r?ywcg{JG_=&KM z)$KH5`+8|+0g8S4&YgEDk^$=xFr*lH*KtJ_*p~~Uyu5fJ?heaNW5-r=fzD32_ieC- zHDU)hJ2^LuI7Q;VwQnz1E~H@Zms>dSI9ZTyc^+Z{_ln!$rFIe7Vf-~er1~6+`y7~& zuFTnn!F$m_ygiM!7no9J`IwIY_Wf+gx0_|lrG?NDzf$&^2e(H6P1Dfi`6GZkzix(S zXzf+)lpPx~Emw-A_ME5^E(Naf+mvMpCVPE)iFDB@_vjhwa9eYe*>dB7fy^@B@xA+C z(W)$G1Llh?dAVrb3SUJrdQNOBiUer)YHUJt$$bm8|(cVzZ~xCe35NPG2COv`i(v~J8akn zR+H-86Cu)n`dlZ%uI{q1;(u?}{#JXXpY{8phlgHK=KG)EU@9-8ePJU z%KR>$P$VmF)Mo3{TlbnyrUtaJSliK6j3%})u=pvW-Fr2W(Z-EKAgyS<{X*o)m2K|H z0@t;(!>jyv15cXXH&-M0djKSvXK87prkadzcVMP7E3?L@{48~b!fITY*so`P^+iF^ z6EC-m96gI=OXn1PFF9BAMWI-&O@l?!lzSP`dDYKln-laWc`-BfIxsy8bk=KYIZ4bc zb`qE^Bq579)2X?`CD+bJN@G&-**V(#V zB4Ys*^1DJaAQz&_G|L#fs>2jnTQ7@Cp44ap3*3fRqF_X)U744=v92Gd18go~W<~}& zi!!uy#3r6^zwLB-EaFa?QJnP&J3v|8eCg4?*pn%x&2=-R%?Nu${csgF=O)wYr|blaG-`6%^C3c;6R%r5c`7WPhAoe`=YZvUG)Th=dgL*7Y5mKlR9Q?2c{mlOhvmJcwea zavLgqq`uxcdw6rMym?FH_Ml|PG>D#~Ghfggib(#9uQ^2Y$u??2cT>SFU$E#!Q}0CY zcmN%8)z97HT#6|5lN{!p!cOEqI}Znu0;~h+I0dQ>muqzqOF9oDQhh5r*`!O)XG@xa zXSgY#zLE|`v0$F{TlnBwhC78bz9U{yaV5@(y**p?S2W^c7K+#B1KTBeSL&1J(=zRC z^>x|;QX+$aZK)!&>{URUUunbJVYR;w+%PrkHCk$u4C7@=lLq;zantGWMg;bhg+Q?U z3f{`E^`ves-o7r1PG0ENuN&UyYH&re;W#^@-)|T8&ECSAG8GK<3v-)o!;oXMlSi*U`Suk5p}l4B&hrQ(B)SAK$=bwmh(@T6c_I0$-7=I(Zl`*iy_^Q3oawg>JHslfDbE|^tr_mOp;->t~U_qiIbIZs5 zD^(GN)9rMVuu8|4E31Ou6pzKUeI?H$;AKHUCqaI>g#yAEiLz5xqM76gYf*lYHORxq zf-v6$QO+(&r9uJgzD&tUQ-l@nr!jzy;;_(*KzcaMK-pg=PU6!5XK+Qo36-XAYq`jE za8RBS_I(6MwKPt)u)?@I2!H}CY>q3Dg{4i zSZiVSTcO18l5s+N76b%~8KRF3jWDO#7EK6+O;ogqn? zoj8VZSQY$%vsdVDqAeS^ZSn{RyfN56awDVQqfdgJF3<4Um7NWipr0dW)n2sJ`-s=G zcC*^n{5%VeO7}ionxwoK=;SN5E3x*b%ycnj?kq;9pQ>E9w5As@El^w@Lrk0mJtsvNgQ=uU_`wV+p{HXkrC{3PmAqO!^dhNZU62 zdM*q5tkmH|5rgZ3izA(%SKHdAKd$JpJRPymc{-wL8r#p;uYVXKdbU7en-nwx#NNAg zkF)lopGokiGp=5&zpBS*9OO65BtjGD-%jh$XO2=ExED%2b0uhSr9O`(*U!G&NEj_7 zGM-I>*1+14#&{Ja^z{tsTQ?)M$2%;fo0Dx`?lc}d6N&DL-SsrNrDetwwPzW6FH*sU+Zm!U6&Zx#dn z(6>(D0h_0;1_mZLpS+#><=|#0tau7r0ovMbSz2au745tADvR3k0iPCThckX_Nt;>z z!HnN!n{r4b}d(htf@n3Aio+>W~rF z{ezVP3oFM|GBzgpcs+V52?R7GULL*Ojm}%%T|Qj0XDtr5BDb)J>UwpH*CT0BwgZWa z)v+N2%ZNBUeOCn*3wCa@CeX1Urj_b9Bzxa3ip3$i`JJwIXV=480H*wvF)6=HtJtntI8&E!F?=c@nvAhs!`Eq%?=& zcLGZUJUM*?d_K*ago&x2z%&dW0ewR-s=?T&v%*mQ16%pp_}huCjvsX4yrKHCAIMU* z=|AOAHr}-@UyN%DuRGijX2aU-9s%dhs?&g`%KUPxdcxCD-o&2?MqQ|C^XnMVb0Q>U zjAPr!AX`ywr7602VdgviI;1EC3O_1aqG9Bc@vnWao! z>yH53l&Kd!wkZo%y&5Rgeh7I&4@al(D6?l%!GxfqMFaX4p^$szex-CJ`l_lX|fs`-jkl2Ad3UbCxENoYvb+VvyAn8Vv&JaA&P!a523 z#nPz+BISC$fR#|zY#A8B$jD27m~U3p{e5LwAJRKqXXK@cAQq4?(}3-Nr#kJ+36+oP zO)c7q9in?75_C5B%TelCr$#jr`SbpB23j zR3l(FKbcEm5KiB_=b{HA)mCtW|aEG#}9AeZyM=N@q~@XxAg1;?;L zE}7>!<~`rzRi2^uVkHkmb>+p(Uj*Rq*jvb+JCnn4W!o zbFFWFZ?i^J@s`nYcQ|4DYzcQ|xt93e=v|!_NC&>Y6h9n8E&At}AgK5e(9bsuYbZV? z_z)miU2cnLgy*{fzZkT=Lsl?h^(w+iYwW zoVbQ$)mr)Fm=qEX({>F1h6sm~=Rb@srK8d?`=iGLRA^$`C4AJ3%kLA=+J`PIW!b=m zk|jl%e8m!%pN^;^p^-S0f zTGM$aT8Vi(-{)VmQ)gKwZ7pr}CD#B@;)D)G_k=s_-b30W(v>*V&C2eJSnQTIi}uZ8 zTALEO-6xjr<&O7NRt$8-=PF0j?W>dasHlX#J-lM|@)MWv^8>1@E1Y1Buk1qH8|gFD zc1p=dJxEU1JhR=2Lm5rU&lE1uiZ3=@#QNe}?;UnpM0njpDMd%z6bv$cahQY++m5-DPUY#69ll?CebrE%z+q`D}b_ zu1Zs2UBXpX(xF1_3wXstY?j>H#tY6QNYbufjJlUI?NgTO&vk<}15@0zVPK(Dhy8>7 zwguirJV-2PyCr}Dhr@#sj%%huJJo7{e(}~L$R2ax;fv?QVhz%neorWPbgIP?Hecs$ zC(7#fKs|G5VJ8KX1RG!Uz@v^OyNdtx&kjIU8voy+AP`K{K;DIO4U+*xm6#)sBmJqz zKWPy`d^vU&GM7E#JP>86diJ8H7d5fXWb0;GNJsYhhC36#t|fkUy2&015HLnv-X(0q z`)bX1ytvGJL#YvsHn3T#ton;N=U6GV#Cit20^x(bNiZNmJVXHoDhUXBf=rn+&CE*lcCv_DXD3PPdm_XL z(@lnUlG=4uTk+u^m#Y3QsG#B#j_K3Vw{Uh>^vuZwO1^iN?{oGUcd|oSYVLHwa(TUu zO&&&~zl)0s27Whz-Djsf0x-n?kO12iwR;qNe9=D!m#2vjErRGJluH2`H49yCNS#i< zRmUX{C(-c z8?w@T8QK7&%FxT;j7MUvGbW_%|9Ou;B|u*psAx`f!LT*4#^Ae`9p@K?MA*(pOUmhS zpn2!RjW{O^{|^CSv@Rrl9+a*pVW$E3meSjS_KsbNgHu`Gig5E#i@5tR*GMJU1!3&@ zR3JQre02GaY9--}YEAZcL4tg`H>SwQuyAQ4(^_=U%zUDwVlOx@NJa)*=uBbqf-tJ8 zg4I6Kx7RYn*m9CKI;cr}KSjKqaZCJ1%g;3MGM{6m&L@O$URJDnk-B)&$6*0{0l zHt#7dh*;_eGrlIb0#uq|szk)fA6-~7Xe0p3S%Qg2z`w$Y`8|eP+x|!E_Xdu$X>Cyi~I2XdZY z^+nmGw^Dj>!552S$O2va9wD(N(u1R5Wy0^3@_!d{umq?>A;>{b;$NDPsR>Lmm7D`y zOO9ArE{Nao&%_$OA#;>p$H}=}z1nKR{T=(CM&PisW38~8S)N#C_S6RiPDYtj@I!Poy3BUE3GJQtNmXgAD-WFCw(u+vxlj#cKF<+qd4v7gA5r>Eh)(_Juz*Jp%qhl}a;iz2RrEBx5C`O44Rll%%zj zJWB$Gy1MeEdL7m2g<*vK#B2Ra;Rk;j`JejVk2@YJn>+0UDhQvKzkO%By$e{>Da%Ro z$Tf;v&DG~YXkur~RL_%OFy>=4b0KUX`0mu-?Ed8+0@5>`_gO@tRugiWZ@&u#Rp6?~ zI;rUH)C>8tVkain)ham;V7(1jeiw`4YCO*Y^jH1~459j60Jym8$)p!?*M(+UTa5r* zkeMm>T}RM(^sR;L5`QN1rTJAnAIj#^$ru-^igtvz^!k zW-51^Rj#J{->zp&Yt;YaVSfmK5C7QEE`W!Mjl`Eg#OHJGV+Abf-06TJED&FAu`M=% zUW6PhA@i{w7tAgZc^0)-+OjHx9T&)ydG(KgKRW9_>#$#&$*=SblR|7_N+FOsh(Pgr zCj-Yjd!$0r0lNYnrG>K#1B=e7L{s$_U`IducMJTfl*?5TU)m>1>4OR)j%|-*9@AN| z2A=vP_j*F;@(6^?QzM@Cw{B*HM$rDdC;TUuD5_dJ?g|of5lu?9u;V0q7rRi#Ntue+ zkf*qoP=#MVq%qix#Pwh>F z5WQo$Y+9FNii}4RmaS(zxT${(@L=rc3$Dh+4ZF7gMMEby8D*D#yz>hI%_e7N`7+(P z%#x71;=}!_?n9O>@Vn&3h;Cub5Scma)VE(QE4*WWApS!@7}mGCwMdPG?99XxNAUP- zU^HW5aT1f8BV-$Bg5M{#^9@R_;#S38jJTGw;V)rITogYpqc5uSzh zi~1XwrRlc{^} zi@32EMoWYuQu9)>q4IC;XuA1dyC5pQd;M|hJC!$~A68yzAo-Y)IH?hn`Yhk(TQ zKgDS3%qC64CDt^!IC zZTu_!FUJhZK;4{!Wt~%UfdQudw4!|=Ts!1syhRbt+HpkMxL867@6`(u(8|9Il>m;M z`k)zhre)%_82WmdKpFV~0m`ECgLNMaBmTz^9;p`XIJWOlCj!&R}#RfP`YU}H* zNtc&jroF~Y8GH2+3v0a+fSBr2Ja5AhR#kCun2+5+cY+4EU5&0A`>Uxi7&{Zxno}DD zAqE97y?BEWK$(veUg0YGq9Un(M~h)x-@C(ZatM15Og!4^`Uv>fj%1=g2hlyeW36~< zj{(}0A$lQ$PwtI_mQ#`o=V?CjcGQyxH1+9XA75dViOJxsqT*84{Z)S$fmkPz`m$pu zM%C4-kvB;_%d6h$M@my*Wmld=ionFwm$+u54l!GbPVLzGD@$0I*5zMP~9#A^KCqsU4R91 zh9dz?L!#g1I&dVABQMH5w323LM&Ua&1U)UmxcDU$a9-M3T9V(7!D-c`L8xFsm})_h zClF^MhfnS3Ow7iaah6t1Uswy~SR8P8K8kw8q$Qyzx=2x6GU}@_rGkR)DoV4iYA9pJ z)T^*T4H{a=jm4Y9lJSIRn8>7-m$4NV>lsy;eVQ^`OFY$|hd_8hc6L~- z%&4(_#A+J=1c6;g!2K(unPr8N!>nb7hA(gXUP%}t^h$_I2$0;uAB3z;cx<>Z-~gxN zk~9aN8!CfcW5J#H^ZN((raG4Op*nGiiFA=%rRs^)l&jIAOx`aMlX45J)0*;j_1p?~ zd*vlv5c~178WwSwDpf7i>+`KLI-v{w!nKH=R zaEHc%5a^ydLGr%OvR7_Rxn54@L}-22S?sp|5+v<=K%xN!v5ta`^7XhuTOf2^MA^1% zsBrEDp9c-G*toDvO({a~#tWt=g5=~Ud&;DTjg;*cg$7oaWR%>q#EI#$iIJOOFVrMr4dK?aMJ z*@a{;pY~g%tHpEIV#RAnba)(E*$=MSeY96KI6k5ODMs{Jt7W`WYfFyQ#nOJ+R2oT~ z`DQUbqwu{>eN16A4TO zd4)gXR=>xu{`>pyalHSm9mw0NbNakWN6W361}1sK@MRr;X+mQW8dy%U+FuEXJS7uL z{5e!^L&=!^1A3(VEe&%)e$z)dJv1BwHMc;zrt<7H)CleqT-Eji=30|hl(OX)>MY9z z+qCvH$!T~ac0h|;C->`^9cql{7nUUC#57KrD`lmEI2CST?VL4%jo+FlU9)ROSaQMe z+}@yJ&;ctOsYM;C+`zl9hWUaf4IS8h_zD(oRi4@1j!QdwT6r@Q6)LP3d%c(A#8aVB zZZMPHE%3O6t}BeyUM0gb zb{R8{>qFpp6st)jBn%l;6f$^#!^9Cj=J(p@ zPY7CP5(;flA=2SX4po#4@Lb>mp0_l9je^3RXw0zwazet-YP07{?A;T3y9zkb@f{Vu zbM_XCQiJ?h!YG&{Tu2Ga&16fsa#IE23J+|9J5b`NVzBH>Q3TrX_(#Co$vT~QR+%3& zr#!-mY%g>XvsH-6NeRCI4XJJxDcfg@?>Psr(OL4Q?llQB2JL94f@JW(Oi(%$*>BVV zLI4f{0{W3u>(YCLRQ8-`DDinp`amMm3kShtIgw|AeKSqvKEnD^FY4<8lFv>>tR~z z89J&s_VM6=Ee)lm(Sv_WZet;3-hWGOjeAlw${o*|khHxU+xAWdB3v@jJNfh{f44l> zsmifjA97@5h8yqr@Y(|*bl0}DHUgcE(eV4=WxtVRAC}wzIZj)m6DwSAg-=1eY0{cr zh=89&0>~HC=Igswddx_B4{joZy^?InYY#N1GNj^{J<}Nxw43HS5J_YfWlcJS;8`om z=?|W)JV0_=yleNDW{tsJrvkMBfViP%=1=6WM96VkC@<#m-U42ObBN#wE#CNeGN6_2Zld?I{T|e;XjQ>*A?Bm^#I$(Pyhr<1QliO*hJ!nz!Rzu2{TSsAov)io#GUa}nZ zv?p+l;%1V^2FcM&l_GNrnE1p>9@OxHS_i^Lk=0T%ji#wiQ+P*1*=T(Ea{pV zDk#;q=nTAMGu1^**l8eFgD1qX@R#5CgEIO)vGz~6y;3S=YAY`pqHmqU3r*fcaRaF;Qa{L^Qd3j9Eka90+7&DL2?}!*kRj0a5ylU zIfal#cyw45MGEoZ$Vjf9zGA6hIbSffGqpyk0L0S-afGAqItt|9SD>PWq~EEl&hTE* zeL2J~toLT&h;IS5+%23?CQ^knHc#)bRZoB{rg(NXJ?lt5+P_#XY2lIbsl=rEdKSyQ z7`_8K$f*r9sSgq`H8_Z-!^mf33_P@EJ+M2#i-#<~)LiTzB1J*@GGG?Halzw`x#tpf zY&bOvRet`)HN9MJ7)sthb`bGY29cuDtB;n1_z;&Me~nKlv$wozV4%6tiuLTCd0$CneVm&YkfAZ9n_6uU!17KC9 zT~hx{aBktwxbMtzIr^9tKMx>VjN^f;6@T!j1$ceCzSI?Z^LYL4KVx#dBw< zt=Kqu^#07w-ps1-U0kDFCkcT-aX8@A^*AQlbTlY`8VF4k=h`iJ1QgP@OW9rQmsd_t#9$=Y;$JXwbvzl@Ty)Itn)bo$ZeC35R7mIyX_BcfRL ztNodX1r``gl+>gYn*4O3eVy3`x-pG z2}VC}7hoyZKo)J7tjL^0T& zOUSKo8@>fPyI#C3&Q=d=$M#<@n-p=%voWGd){pm?++X|J^=gW!pR=J4nR5@G<MTa7~2N9H;pE*Jp!<- zyy^SC+$-{K?j?n|K2-TQ^98AJ5^EYnd%|3geD2$+cA*Dn_qZw_G}L}}YRbqn0x-&p zZIVcPQko|nUNqOUXec6mel6MANlt0oFGBBAv8Qr9`6Ichz7bJ}#aUn3gNAJGYtY-~ zO34wlD&!feU|u-EMD;~)Ig!rFb>o>J48qivvtpea276Zuoh4)yC0_Zmd;`f^TKCk8+8)oPbkb=ebv>AHwYNgER@gJ}BLnkVmZG=`)l<{bwXPjGCjIhhAU;SCoX?g-N3Vf_Ib23JoUAw?Ati5 zN0k~{vlN7NayTSL-pagvB`o`K7SjRR>emLa)oYw#SIQ?WqK)48>Dyy?5{a}E1QgPq zfN9@<6n5Bi=xiUmMGZgQ%lBG4LU{mpQ*uu0ZEN|s#q6sDGc}T&=BQ^7lAE9PdZ+ar zC&FrB!c#3&e1%Y*kCo>|4Ivj^X0}5f{bbW$W6>Cq77Eq%>K^Qz)yKJ~wYy0_-ugXk zhWyw?H*0y9Wd3$x$~*_D+(+%&M^E|bFLy|Rd$Ri%0XiuU$^jzeXxX*CI?v=TJE6m_ zA4USxt21>dKK!j;OrM#Obeq7ZDPOm8r|af!ZGWs|oH&PaWd|Q9dVxZwe4Cdhe3kHg zal7hUA%z;)$hdbsDXm@nM_<#pk!sQ69wp{AsPI}#(L-gXwpD9-lL~@EmxiX&Cw!9O z+ba4{p7<@j8?q93Z(6}0abfE|eq>Jy5isvP2;iG>XwfD|LB=WAO0Weoz_vdK3olHb zXp43k%@wyKclg=@~IL%~bjG?zB;UpLKBEBa31!_^SVHFL^-4 z8Oae=7Jo8gvmBYSz@8zk+-KYvh|(R=!2s=mKhw|Wj|t0kuMwm5udr4L3~ zH?=*@i%oI4Q?txrjmhDQs2_YK!`c*+PM zk-Lm#2~X5r9spYn92D>7&WCaJznu`qIF#)qc-7ZLmYX3zb(EwC6T#Et-KN489~V(x z2Qjfk==*7peBu6)O2mRzFYPT#q{z@z06VA9+n@V?$V)>|R)W9t0G`7Kyv5kQ7d;{C zYGatKbTt(6in?fO7E-`daj&20JQ}DB{`0z<_Saftq~c_6o+yg<5D|h4Jc3jL63zwh z94;5F>P;`V4oX3)1g$K?-|SVteXl>LDLhVQ8Z!g$Ok0n1EZVTqhDw! z*^O}?0hYUzX8L~l2mZ>pV%%3A+f{2unCtH$cT1kF5ybW)QmEPQm6d6puEy>El)q=5 zq?_S=aRN1bX{`K^#Umw9zwGXnUfoPtn^3Fn4@?{r|5CVlGY^w37&jK$x$7 zWCjxNjxSlyvYCFNyD>mjdGop4ZPgNKY^!y)OXw2>9KsVNvrg%@l))_@*t;d6ylVr> zKLtZ6{2u`wo4mM@S9{eJyWp!6C9;dzf}WwFdoGRYItI z(M_Sut5ZJCL=tL@cy!*XFyp5pibZg4DO>sr;vTkx#j!I&<3)aWlUg0mRUDl{ds1$n z>~XDsKVXcJaC)yV>K=Y`2|wr{MhE=lJ&>T0V&kp!t)5op(~TV$(h3Efi%yR(DnM~D z?^TX7)I5{m(*$_-nRFAlfp$=>4EJ!#F@KBrsE=;ztKW8U@tR}8_hwkdzPILR*hf}h zDa%|!FJ7_|h($Q>NdIhk^{;#ppBa!>Uof}diFTjI75T9J<)!2HH7$k`+EjpT;H15X za>c#CiCD`r$8=7zTwBIMAASa3M={QdXC)4xA1PtP+F0Snc(eG|xK^{Z2l(PlETjTt z+|5TyF_VpxGx}_0^wQH}A*K71V};LiNK12f+H6D}JBp{c2G~w#2h2CbR?QFwXdX}v zYH<`hS&uQAw$x95J1d5;>p|*Y4J_+IOf_q2`?yFKwiZ;~vEjNid6uV~$am}T;Qv~0 z-UDu~kukP{w&Sf-56+)85NXE=)X+QjVH1oCb$B*?VNX>+n>*q!4Mt zUHfZ=zBJq@|0y2p4fnc*Etcx90v}f+FUU!E%D1a9uOlSJ+Ft#_%pHC?c~pCSKGe>) z1VyzVmbnQSpnG|*=<0mktafbQy1pc?F~!)RV~3hsNcIKORDbhH<37b#V27ecMdEBW zoTVbEnYkbAz!^~I*d-J5kKvW@g7i)?^oH3BOa+kM{E-{xX6()Nixink|3k#}=<9nA z5k@DFj<3zMh@cM?b4jUp;q9|GY{cfz%sNd3SP*ChNXj;6mfJ&)ZZK|*Cr{?iai4pp zD;`HjLMqEn>C2jOIg8elc6wa+s7QPXe0(VKcc1GHyh7ymuskmz7ryK(GmcQ*u{-u(yP%KwsY7!|%g2xI*}HtRm*GBaUTnc|D?Zk2SW;PBi1?&` zgOs_~HOkna{-n6ejtzRbD`4-cHmlXsuS@*qnngG+aCV|ljCvY=vYqC-5ce{1HnCXe zbB!_w6!mm&Qxr$qpmp{NhSS|+wCsMbY?{{+(OF|Nb`M{bed_8q;%d>cn9M}H@tIj+ z4M{+w-{?Pj*mtk+<2Rai&8GCU5%zfm5Xu+XDxC~A-O0SkDS?bLW#nv7O2AwpSB>6Z zc-BV8E>n2zg!WV$Cl8KH(oUz4MDQ9uM2PYuOp0Adb@|i9bl1Z`aoi_#}CJ#XC})TD}ASZR6k`MuP;Tb$8s%8Re>j3;1t*D>06uCqd) zyeH=uh8=xJ>E)DC&$mg|84869?yIf~ZxbE7Do4*PTgQ!9D}g_xj<=MtclV&J>N=!R z8}769$F1xZ|CI z{A77n9E>~C%i+x|>g)xr2giGD=s>?HG*@?MBGIK4=GwYv(M-IUW_hz>p3T6J$Va5& z)POXC`*HU302E}Y{*d7&Uv)$Y-LZ%Ln8m$rFKQxNcQK^uJX<-Lx&^ap-EAJxcfNteksJih8xh{0}a_bb<3+WBxI zld~4-Y#ta1z_(BaAOufF&L{`-`n{zh(bxA}(1r7uF!~0!@R|3hnXZCAa*#;2O9Vy) z59Dnoj$rO+c@E%v!96{yu#X~=1e3Zvfd`DXwqb>eRrnE8cn`mMv9|aXlk1zx`Hm;> zSCz;cRf|+n1aU3g^NgQe7AJOUdb(OF!h+EojT1o2<5C$B@!?&&u}FV zKi+HBt+q%+WzsMAc7a6muV?;i6F9`*PEYpM=x}OfIk5|#_uv>hUWtc(;8XR== z3G%wwCQ$p{d~hrLoUGXk&hQU3li{SGtBaJrx2lvIR6yqORk7PVgxpWAiu>9H+Nup@ z{}O+@b!*G4$S_DB|3eVNugrsdu)|GBfJ)i>ml*FOV1Qu;cn|}NdaK@|`3L~@DNQ7X zLhfyk6^DPS3;~_2w;uYM>RhEB0f@bTD-rD++KRBsND^WTT_s7%yq1+7&K-y2=R#%O zW`;Dh=)UHPn^Ea5_xjZaMPJJI+*yy)daCSALr+PhyI=G_%jrvQ@VJpHw_SET18>7* zY>c4UiNBq)7M%${?Vh=iI&tXr_L^c7>$5FDHwpeJOao-a*`$b;zu*1brF&7Hjm#Jc zSD9$(A&J>1E(xq^(%K|r+q+)GJFO*dj!zRR2)2f%-;1OP>0P-MuQ%{vYQA6 z#0>NOkT6H@`>9<*9&Ou|(4CeQ2W7{y5ppkvE@TR8wkde&>vP@^J=wq>r{475a1_>T z@a1=ehmoW=8%|J5D(YXK4eQE4+umo>WdO^!iO&h-ZIa9G5(gY)Pw)4=+k&BT7k8OT z#ODXE$L0*k+-(~~s$WrcXPgQ=$b#%<{|9Yv9TnHNWsMer00|Zd?v_A;1lIxr1Pg%* z65N8jyA=}LAwYt=yF0;yJB1bQ?i8Bu{Q7nGckgYx{oZ(g)Tn`saZc6Qd#|{&geT1@&KHYD>m#lQ^}~bvE7l6XJ4vJi&J+)2_jN?#uO))<7SlG?sY|A?pL)Cr zs`8{u5-~0WANu-t`(UB6nx1V}A_x)RBggQ8Q1#&Fs4@&bO#Q5RGnatL6KQ_X>M3@1 z-tO|848N=i+4uW&2ma^wZqz0um&5w%h(s-sr!6*Ehxag;fYDR}?&5FAkMYUa(@mepH$v#=4NT(>gUH5PGcb2g{$e$WMMO2>fGvs;y37ClvC9R08061UWtd7|63@{oQ9(SH1W?zwyrRZmrA!rwb& zLb6@vwLiX-Y07i_;2G(B-H~K;9LnY8mA1wd@tP-ep7`enO*LFUo^2o34*ctr2!F(y z2;t8%?`4YoIh3!719Pzs5sjn5?EyC9QkU1hJvhj_-c+YNnd@YlaD4{bYhD$?i7m1~ z^tsn;9DT9xN0-WUJDO+_acjMW>+ut1C5}_!uQHm0dnbpKnLgrQ5TlqZ!}u=e88x^! zv(Snz`9*MC^{)ndDQQkAi<$8jb)_rj(SM}BofF>SN5+KEV}?i85(RrxF6`g7B*nT0 zb(3mM^i~ceSslklq9N0n^_TUAlFBcM!ms&$KN7i`zeCYNDDssN4s71{8=rG>N~6;Z z8j!3w_tmO2Aim^l?cOTmSv36t&0jQ996C|e;nXl%7dDjfoUpO?xO`WbS+P$eM?iBB z21?U5hpg|8UQJD_tY{Ct8d*F~vF`6@pnoKgl0v9v?%e9+=Y+M&AIr2WmKr$OH4)o8 z{P=}zHp0LEt86Qj*=PM;4g&rC^M91^hVR|)(D zOJ*R!{pVn%e^|hO7Y5fnWlx&LPG8qF!O{!Nk}`-bT6v&v7Lg)d!RrkjW%HrTM0~Tt zq^ACzu%xFKw}JUKF7Hz5uVG|cI6lazAOm9J$HsyhNWiU1T*-oYy+&SjiMGZY!XV}5 z^MqwMDk_%qg@TtgSur`wac3&tc{lHE)AHU``#jwP$HdI>K%j#k#|maz&N|=K#zcK* zD^?3lo~tQ*PegyR>=E|zCS;3qGm`kASJ+_e`H^X+S^cG+`;ne5LL4#$Hpp{LQ!i7w zlMh)7w5zFL+F#dPBP;yXR<7N)wEuz+8jPfD1h_ad%prW*o79XnKQz6Y z30kZM9}1%wP=o(a+?3?=#9Z+~>Y#Xw-iB}b89}(;`OK*RKo}MmF@oZTAY44kD-=Ka z1_V`|B%Z0O@wz-Vlfy#5xOuMGV$~DnubTrbQ|ap(>Z9o^1u#+3Pyo4<(g%b?o~btj zC9RzJm*y$C%DPzDLEm>jo}t;@IHZAAe0?XHpEI`AW0)BPS0QwBc419Zbx8^31a;-) z{dW5G$iI~sy9COXTLfRGD93rSkFkQO@)6cjEo{5PZ4-w^7O{-xLMhv$6N1uR6Mw~ZtQ_LOx{S7_z=B{GLMGciQmg#$ z#=ns1cK8Tdz;8@E*7m80Ay*CDe3p-+R|d4iQ{=H^pv}NF4l+QcApsN(>8oGWHI`?t z`T4*|`5KFe$gO!G`}6a1i$8i5YNQg7$jAPoQR$o#SkUQ6>N}(*ZPXTUU9IWtdeaP# zyLjg>8wc|Em}%RvdhXeA*~u}FBRjwh0L<@|x$6RJ>MR2KCJRgOtctI=HqFFz{x$CI zNeBPU-g~pVe0sDDB%q>N@cJ$*yyedM(V&)vM$1c!pvKf3N7l&MO>`|x0u)24-sb0T z)UkLXd5%}pf?QUG7`nWzHdHjU2Ei<387@wv%pare)#7}ZWLl{5>mxLKj4jIRxzlHd zJb+U;Wt+?)z3-&VFVqHbQ7H5KxC|RwFKHv)nGt^4dJ?Y6yA5e}cB40YIs7!30nJ(v zdwOD5z*2xG$|z5>CgN$zGZZVDr=dkY&we5EQO4Vcx;(Zb-`uv-Hjm#m~C%hFK+_8H3YAZl_x% zSQB=57Chk)4iV&g@cf4)rM=s`*`FxUzhD`C*7h>90nUE*_R1tn7+%zUompLCCQ_p`B1?_AieFFzv5Nwm$FVFc}WmnVU3J|g98l-`xCa*5^1s6PI z%UPMCQBhA&-Q96-Q%ZC(FBl)G+Wkpo`yFTW*Q8=Rr}gj7&_DADPtT1j8ChT-UGtSA zRFW*_cRp*I&-W~t)?EUb!jMfKd6ewGk${`vQye!*%&3rm$;tyfy8& z$NlHOcH8}v4o&keaeK7xSx*igpHaSyI#ijVv`yUz72WEm=3gB8Q{?a6 zJ_eO6$~o4PvKv@eR(-Sjh1^0we{mq;$fe+Aa}MmrQ2#D~HE{ZIU%j&Kyr$HAP6ZM4 zg-wpQQ~23aUvj&+q+|%fA;+wZU^#%)T8{y0MP5JRMw87?k>^5F1&PZEwXMu1!{UYIpK1qPz*hfmHyR>4j2vLJ2f~~ zj=DB?G`WNySXtFRE6d=i$FRekDJ!Ps8x)t=dH)EIHav|G{z-=gf>QWkJJD5i?+yWWJn&==7v`z zF4cZf)NxXtUXLeQU9HT8JXZGQuyc)K)vSw0$^?Q;8o)j(?lGP(e zgMNcA4%M!p&n}X!WTmEzXSfF!N?%=T*1~6_4Z>-j+Tt4^Y`tXGDGmu#uN#}Oh<^h^hYFn<`R*$umSh4RU zGL@+2yv;YRhj%^h?ZGQao8{bJBvL89_hy2SO`oIhE+#DlE9#ga^2PnTNtQN>y*9kc zh6dAe^(}R4b@f;!zx+*PA7$?vgeL=UXblxs|JskTl3F=R!yh>>B~@fzg4n5fzEoiI zfnjzMR3{=>zWazr!IZ;3f5*FY5*&Q4YYR{2h-e8X+ynZQb!!&~m`H%ptS4th-SmMI z(}Run41IRCHDg0MyKbVqWkRvOU6@u4F}&s1qi-PZBF$y^{i$3 zbx}vL$}tJxb+D?L1iqteg_Gr9Ua0@}`oCC$R+bOHhX|4xp&cTY<(gA!?HQ$Pcl=ZU zGdc}hHu4r=(udOtM|&jr1G=Xv<~}pq(&f%me>q|dZ>B%&%h(-LwUHov5W(^Tyf@Yx z`}Re!Yv2Z&)iW;@rXBD0E$qyVDjLtiD{)p0{EsK8GJ1#~@l2y#Z9b1tPdT|-I$^Ze zYN4d^@9ZYaNasE-k1zvzq&$*p2$6DV~1C zAd>hoN`JbbWwkWMhRsv))lZZ{D%Vm$d|KUa98T$Aa-!K~J8FF! za8z9)ZsU(tm+iLo;m2;k7agG{mFqCiXSs+@L1YJ^&G_E5yF+WsSGY1n@<<)OR=mGV zDTq%I29f1>a!+tsX(~*uwoWquPMyO2wlLKvid`VWe(i-w&RFTI;v`kynh2&2tW^SD zB2t4sdP@_#trr_{13m(2d}T?Ylts(1%L1pyZCg)@aeV=qWHne>WW0c!DJ$!A0$a`t zU+0x~$QfwMz8bfEU5A3Ir&i@5iJzwqxQTHM42*2))MGRSwe(_f#E?h`X2#`L?3--5 z4qwVw!AfQ!E>@+BLOqMB%sJN9na)1%FZQHL4b?oU#tvBzmbR5)++?yucpAIcur#9< zW`VD40$$#Y<)T@!<8b6@wO{_7q+ab2M=fe`TFH0G3g)K?x{TCs?NJxEH!1dcaDoKB z19JaP| zWW`$ZbF6rNnB?Wn`yyf60Z<%kz|OK*^_g;PPA21hqyUWM=qfc#q#eIp~_@7o1>h@%$qk6Nw-=lGg+PWqv%Yw>;!6Ll;Wh(E? zFz|9-dX0u8c=4Ob(dAZ921NkDZ>S|Az3Y~>u-LUoh*pgy3kTC(H@PvHugfjPAZBtY zg5$Vv)Wb?RH-E<>|5KOe3ps{)YL!cd4gJkq~(QZ5?{AP2s68g-0oJ&XRLv$v2!Nw)nXF ziKpfr!bYQ>)+KTsSQnq+D&>XLN4l}H>dV$g<5fr=*1F@KvyTWoO!iPH9#Py!4uo!V zFC*ln9)I0YC2&4uZo4I)Ib8GgvfoZa(Do_mr@2`)u*@6-1A9e5i4eTi+`Yj> z@ZoQ?$Ql;W9jB>(n%k#USM9KF_HIk=NuN~Y3?+D2QU*ib7U%cNBj4XQQ6e8fd!}WQ zFr8Dh;Cm*s0)+drTwR-4lHd=g*Ulei)z#ia6)vI)u`65FMv+Ub?PF0X>tf50kJp@s z(eS%wkz2otMAh_#fo~ONIwrQ=B<$vcf<46xEmSphza1QqtFdV|!zI%D&(YBa-=`#i z{2-!}6Q%pYv{N-!s69E8Yl&K|@m86&GEiqD{(d-24^&^qw_ZxYN@3|ZrAm?G>fcS6 zM(;0vDp!_Ltigpw4V+12Ud9?p4*{gW?rioAj# z(LQRYz0SyAwax;!Ov$Ib!8VS`SOP)#h+G(3C2u#?257?UK!Z_aSEoSOU)0> ztO3AYA!sH11F{HRhnTRnc+^FUpAl1y3Qsvzl;@7*g`SrqKDDSi8Mv)6VR3%6!O>{> z8EB@Z{V^t%#FvVCM;<5N8_U|F?R9IonTiHhj?!LI5eW^Er3#+`h|rCFlmr?152!@m z-(8SGj-cPv`}I_uV*B{L!qe2YOf&0uC^MEzpT;hjn;Xd>Xx!mT9H;iXx+mZNfDCq* zPa=Rk>`vsz*7fh*Et4Z?ZIryw4)SQejjc>c>6dxs#4@5X4D+5tmV9C1ihpH zs648nbm0vn9pm_R3a_4d@F^tBF~4%EMLc&m#XW>ci(7iA?R~~ zgAkZ>N@EOI_}ZO;H9u{Fh(Ff1+_A_*rJ|qM@B6lo0Pw2>pj|I!a-MNg zVZwv+pM9OpOsUk7Mp5>uhK?B5-1YMQjAWfm5xTi=%g;(r1|? zS~;AuVc4O6-G+cC+Eeu*F^>w%u)*i!ACTo)b-lOumczNhWRyGTB8e&Wlp*-Yai)6m zBAMNz#GI^c7^7|~;yqbT^yPC7zCHKn&WS*$RY>3#iZ7mzY#nGACuhR=8|jsEyI`Pj zknIJRPJbQQe4nU<8@xUotV)?~w#FhZJJIXwe0mu8Obh-YmQ7h7G60uCMoU|SWqqEm z2W2%Z;1HW9F0oclz8>3{EGf%KFr7c_OIzhx`A#m?55|+ZD!x6wf8B0FbrSUlq~{ei zNb)##-ZFf{f0trF{9t+j92kzObSn=A-AQ@5#iFIG(POi}squE#w76Q;foI$ZI-P0S z`}ZvM-?G)ee{VP@MzkxP+$+@v2A)fRAUs#AonpDOPoJX=(`;-L_mQ7VX(G*ztEI8b zuyRp7Up99RdATSSwplVat5%_qg1f)}rG{?Z0GbMY#Qg)Rv=ljA1&;NGzU6faQ|v^6 zk4%A$Ghnj<*F@FIlUvg#qmWp>LEW2$xu3{X4R*_8DqH2{va8Ej;vNN^iKJn{tC|*K z@6%Qr(32ZG`1eQ9+ywxe$%uKTaZZvfa zgJNrTxD=S5{wy6Hj1Oh>L1|u(<^Pw1@%^6DcU7j<(HG{E7OL)O!KGF-)6@ah2C>6G zy1*aS-;!;iP-0sY{d=3$rQ?3MYK{7e0@=TzhYtNlhU z>fRJI4&87*m3nA`?o`VmLW~>=T#?o4s#VRxY5ek4o_7ROHiAMMGk1V<;V9G1t60(oeEoidmmS8kyKN25zKpvB3&5|r>qYq(VIhx{Vy0`=4>RF zd|UNYA0~D0L>{oYw1uwcncXCU51D>xVd};B_wW|CC%s}~awFks5`wqIK&{q}Ux*ja zEe3@DEH$WAMhiEB(8sbb^Y!QtaEk<8yF1F3@Z@J{!~0AqQn#?W$r@1k(O8il@%TVU z``SI15qbGWEUA|*E`$>iKnptls~V|D*XVOo0l#Ild9WRvx>NcLob1(mMNMTljIq|R zG$Y{t-{63MhsXbK|8MP)9908C{rs-nzOGQTmdeeoqx*=$}P9HVos^ z)|$O|NLu7ptSA>gPnTPAV6US;&6Y)y z9|_MlTny1HsI>gkE^Ty9%7WG`T=izS5J!qHf3z8krHkc|1K0x2$NcgkZSV7l@uMS8 zI+wMGx4&e|xpQP(!(Vz04${yK#(y^&1#N_{q|NrR6zp4}Mj2eCVXns|BrBk4LMr|JZp)J>SkraclyQCmCY@d~eT z-Zv3Up0Ylsk{@*OZLEe&h#!0Xx%cVa@9hMGBegih)NNqAQBjzk2Tl@8zGkqmGf2AK zF&c;Of}g-Xa&-YvTCR5fLy7c{yY=6HZuAmYnz}5N+?E`pkA$;CC3+P~^SUuhdNw2? zayn4rI`7he{39XrWU%A5EK}&=C}wMMWOEZ*Gt~U!k`Eg&oN&Sp+)B)wML2wj99Vc` zVfih=xnD?@lX4>^)&l2O=xs#mc1Rh1$Yn@)Odxq~)26=eAb^zls^lfFYLiKiGmIZF z4-vjRI;VZf&tTi-*;9`#gk`2aFZ$K!X=;f+lj{p9QtZ$Sz2{}6fNoNM*I@7h=h;ph zO=9<$Ys8XUDYx0i8CI8M-QHpdTaIDH}a${}I4uQ06=gGPGy+p!67xuf; z=-rop&s9f&ylMLsSd5^T-K8&n#Uan4{2(W!-%OMjC6Ox zzg{rz`Un`*2{`A}$ZjIA_LfIa`Jn`h{_9a#5>L2$dXltt1~J81>2MFpp*4NTQ!wPx zeHalX0qm$&7t1x2MN{E@lpS}7riW>~uk>`tZ-uE8%*xSR_a)y|7L3k)w(**cT287Z zo-Jn^t09@bIy==%A&ybC$-K$q)$>vlGQ%i4?JoX3bfH2`;K7!+nC-beHW!wMT6uEk z$lADMixz0Hn;n0})%q~zqdG7m*8I{3ZkNViSknweh~K+A&eoEpYV8rSfJ@yUt)^bT zYfc1tM#O^X3f5ZzDtbWfev-|VcfJw9a5=HmUXER~yZ;fkd7bYn1zOh=-2*EgLF2^Z zwk;RBNe4W;zE5lEs^<(@x-;9!3$FIdS|@Vbp~k0}b$J`D7j>V1XLZn{yoi;E`mrf_ zkP@evpi$X;n*Ob}cuLc0n#&~w|D^cM+dEO=?EF&e#e2S!fTfc8lv|2sZO$N@pMIR~ zKRRX|mg&+i%S&9LGN-7i59vi}Jr3sRZ-baBA_Js5bmh_4LkZJiak{XK<;&|lJMUKk zwNa$zGc)uuEcHRJ1GO6k4P&Z;?G}Ag+)004dJrL~t^yL+$;?EIpOZam9L!bkH;1cg zW+GfM){Sfleu$L_JgUiUGKsM_INM&m0L;ws(l zvC`i{RSkv718JK@a6P%=s8`y#^B&d{S7J5g{AfTFE%+gOZ!Gm z{(}$BV^nTM42v-H{)>?g!?ue0*aa7|PC`tyGJ#WV-YdC~nZU{oXnq*9`k71pZRM~Lz`%_q0(6}*Fo`PlF5#*nh%A_7{RuPVxB0f$4J$98*|D zu*s7z!4Ge5O0{#9Cb^1PD97e!#Wy+)&7L0_-~5Q}qmS!(_{@5 z#!ecEpR}WwFw>Xl&EKznwv}|pqUE^`8{-5%;*geKMUPpvjW>I9Ea?C(PVjm4#dY>= z`{mi4|6exCWe)DSH99n>N8g-G5|+A@#!0+Ks(#$Vm`Spj+2H8(PdMu-I53?{as0TU z1nN6)O(qU%fKg5mCh2G`hqE&or0>>r{N?Xw?nQE4Bl`|CTEDw|M#V%nBoNLFL>Cd4 z8~5bTMtDFhDBgB5dAQIwg;xTtE7v+%Z-)7xYFR)OM|IZV+@84lX!2vp)p@zA4YTU> zlQ2!vZYjyTuhj_>7HH8ahoRKMO6L?gtr_wq&o^lz1`0_WYsugZ*Jt9{>?FBJ+q zG8an69B5;Q6f~!31SJLa>=pnQ+>bz?k0*YtN>-_#rVrvxIIU5TX}B+% zU1U!oUva`WC;gI8#L{yhY+9FUP5X2fiS}XQJ$QX=LwVstI}lWVyHwlU&H^1jF;fk! zw3Hyb01?-R4TnMYYi5~y3;EEu$;}P1RY1BJ{aWmtoFTvDAF3eTGDqqUI z9n`4spb(=Hm>Wot>#hlHi$p8(l+#04f?)U)x6emA*7|@gR zjWE3W9rcEN4({*EA`LYE3mlA^((K*J1#pYtk%_(#FFQSs^>-;r91CKNW8YQHR3+`Y zQ_1R_(Ra5W0tGYb_69PZ^!vtxF#Rl$)uwEmMp0cEzD$)-4#`5P=8yCRc~G(a-rJpR zmw8yD7=-R03zNIbexBZ#w!U!PY>5?Rs+N5{W8(;~xeM33F1>3N7y#6hUcyH+BqeZX zE>@p1G|?z)_T5mzu%mmVy~jVG?iES@JcQI5r9V#4r-Z|Tkbuklw6kY)Uzq8wx>o{M zC~t%>D;)%c4~&6UO?=E<@e1v(GKb=;R#RY`)$Hk;L@8Js^UG8v1zFU}BtIhNcN zvU)w4?Ztxh47r+TN#?h{3v&N9fBudz(YPl&O2y6$?tDpUlNia*WD1TU8EOaLG!8FQ z^IH*--anu%47rwe9E3sQ$xOKcT1QQqnLz~efzFbXgI_G;Tjj{^6uYSn_ZgRH{3*|dKT@wrwGUa#{#P;Q}dX6TS=xZA*zx1{DKdD zkon<16^Z_*8~?k%tEjZEkx^mot{owMFDy!6vgO^pj=uPyvoWoUgQ)B4emQJjSARt` zR^U=S#WKWk07gTORt4Kab1}4i|HA%_mb+VNN7lq{y{qOO72WL3L-c#6r3E3QQ$EY@ zKxcfz7Op`(JZThF)s3+;S9gc8!5N{wG)#?e)$|Mv^_;VFyZ*vlh`JtWAD3ko?x<8J zJ!4V1nRMyf9IoB?d--o?IPPU9ycbX$%$kN>_jQ>qZb@4e+07o|)J4KlQZ8qyxOJH^)tI81vSIsqH!lRUL;A^0>Pfg`_=JzN-9k|_q zHec!VF8Ee56>4YAT&wxpipmInn41}kVSGeUJ!@}^v)u!7##dIkegR*QaIm2r#4MoX zRf-;v6eS4DMYPM!IANKObg;gTlc6y-`m7=*Zu^6u;jI+4gZQMa#vbr=nU`Pc*ZIk8 zp9F>J2XZr?2`3RKW9P))Kc52#a`|RW6p^`hPmk_S+KsEEU9^4=an?`^z26@Zx>eW$ zzQC`p9zD*Kba$U@yIf3M%%##zyl~>V^v<4XrJ-M!_@4@j6M1+K1A))PtqpQjKL?q; zHlf<*oOB`STh(eQG569s?0%S9;)+7>I(`q7>t`sU&A39Y9m$FaON;t@7E)&F67jWtJ zqWe5$RVtTIY=*UPP}AC6!@jUsfAUQq8dmU|DjnYmK>cPFw2s=>nXpi=m~g7hNh9t< zwjSc->(6u5Zf(BC1dLLcKL(V|BBEsF#5xvxyNh$eYS-+pV}gvSwrK+jEY1E`{X%7K zFAKn!N8?(#C3FVv3a7d2E5mm(=o5`o*wHvl53X6RpAGpyY0-^YSP@&IoZ^HWi4e~C zjG9W&BXdeSs{;o#78c$0#a4m~EmsLoqz4N-x=_oaG++P=8OO}3z+CBu?Fl}nQEHUL zXMXxysHl`|Ky76%usWdKrxwRt&^h*++ZRwWAapvm|xW7Pn z+2wYU{%fg%-2zTMn-yuu=7$u+twR#8d=q0y+_ouy-k$?E5z)jHRfCAg(=u0?sorfG z4(GK;FD-w^9RB%J-%)_R!#TF(`|BQOd^J{lRXUGToR76rTUGT{(@rRLR*9-Agn_13 z$qmkE6&ow$UiM5T+Nap5t8hLY-QTm$&oC9rc3(S;<9fsarZzo)b==Iy)t0DE$#tkB zJ_Y_tHLu#)3A6rh~ORWwBTd77COyUd+UuW+Ek&s0BHx4g<(?;O*@sKX%als}p zECqmLIY7Bow=0Wgj%R0`|wEmhi4R4{Uj)dqf6yXK3$qi$dGJiqK7gi<*8Rxur(_S-ppg??INm&kQmNu?VxPmxcEcZ zO?av$rHQD7U83$wAR_d~9W>?4u*q(W7Iv9x%rK0gn~ds9y>|~cZpL?tAsF|k!z@OQ zmMX>gVmmkM^iRYN+~=-&&s{T~=H}%73q+1XI&m*oZbpgS5GeG7dy;Z*jiz|e>BrhK zliw&_p;tzVszT9%%xWoFhr4#b#gd}A%GEKwwd#mmY0Ao3&UvJSqX2JU1~3wWHOz6} z17(yw&e21hIdVvqL}aPQP{b!Exf6GX(?YRYedP6IISOCwg4vMX{j%`VPcqkwTnfDQ z#1$NsM`)Cy&5I>%(e-0=O$i4sTP^P8R6Kr+*R&|s6xcX)+)-xv=H9PP8A2^LPYLsl z46NM!UR9;!__oyYVLH@`%zfs7aOaw>M2J7)Q7~vtdrI--dgT8UWwETJD=r%&P+qkI zpxrb9J(Z=HOsJ80)9~@U=kg&_K)Ug8o6ZYX&bYLnhw_8vCN~kSr4QC_mot@ReJ5EL z!nsW5?%sLKDkuC>(ewiul}c%%9ozIy{iRllU8*Oe!8Jk(V2OgIvP|!~#JYM`Oe#Kb zug_OD)yVwiGAC9~tg9&OJyOV3X!WX)H~=Z-RZrqWy9H_<%)&l zx#o*F47|@KoAlwQYMkm8yC++tJzYHl`BxF8-&HX{i4PQGdaGk+2a@(f@(@csRa-Dq zgi?26yA?2faSFGq8p!*VsyKd*cw24@6&jw@|6HL$NIcF(UC@|ar8AA&HCsbJO*PNe zwkGarR$J8HKm7wj>4RBwX$cbRV}n((9_o*JKS#EgyU255M(`oU!S@f;%=Z`Oj`HA^~Xl641Faq5Tc*Ey}wispP5&gbk(iE{+jkv;kcpwRvZfHWdEVt(HIn4f1b2Hor+9~;e$niwm)4C5lgn^b zzsPH8X`i+RC@Ys@5cdJP&hSHJ(N3h4)8%yY0UKls(!d2dhh8H0z{rwk)r6Iu6Hi6n z_P;&rg5|lNLW-~>D4Hr9G4tPcQBO>O@Ij~`Vvynl%HLH1{|&}P(Bmmp@AnSdZM=(A zmM7cP$mugi46TpMv2P#u{ESG5<2!_OO-|JvWbSHFLii#1aXqk?Ltq`>NvHT6t@^?^ z9zI-~T9T-0--rLA&?Q#f$H!&ZK4DzjwY+=Yx^AXgeOJIHX{OEnAYpgWYPsSp7*%@Y z*>AocGuP%WnDDEK%<5VoDX88E-4cvq`}G>DI{JAm5=qClkiZuTk*-I!x+&_U>pm*W zIw@35=)n(zbD~LGekujA<j%L{OzDvtcTEqpP zxYBP&&h|Qalg)>;QSFAgVd5PmsM8WJ7KdmRYF+f%h=wLBpXAjR>Mk;#I&F{&bs1|i z9!?H{F25unGm6Ng5lpJjE$m)>o}2$rsrk!~Z(ZlF4hG%H{w4x>8G!N2@)-bVjdrqI z!u$FPz9hmfhp>;4J6S?z!#3f?a%l0|;t)QV*$%3qIv~D8xr3x%4er`-ZXV9HL?srE zu){9OytjW5?c2Fw$E}5x@=CSE}QNG|+BIKL=}!^tcu&!@0>hpg&};gX?-I0m%z*4c(u zOH7O*F-%r z6Oan2#WE(7rMZe?IvC4MVwihgsKO{EH`o7*Dnk2V>n`kIHmtk!p?Qr(q%%9&ShwDs znzACZQ_}0_X}S^DARw1m8;OjKg7@W)oFGrSIblV4)mG-4ihMoAE-#UB*p@AD`&e8} z`H^;ok)OYx{%U_BfH;Dn(D_|m3xu* z?r`$HFwD9~uBp7L#d@sOFuzSSKr~4s{9vbQmviLn`q83f2Y_2haS(wT>^ z>$d9z?2bP!9Wy}BpZnE_^@6M=C)@693YSvxV2GWRqvvFXrde5VDP%Y&9KR}7N zZ5Y4OPw2VTMPdZ$<=h=UJk>tM37}GGs-EI%m6xMau2v%FW&cq1CZh7YA((AFN_<#u zwH>Q2&aI$p6rFY6?`&frD^oWU~9VYJC#xn)B7FzFps=TrdDhcdjbF1iP$Dnv$@4H z5nNY)r51z>PuRPFS`3V4)2v9dBZFtw0VMC)g}t5W89$?WZX>5vOD_VH_}X3o9n_>u zHIIQd$P)J5KTkDV8UAQ-=hh;zW)Y!3Gb75Fu z+!0jjiBi-0;lCzxFgONrw=L*wZQano4u_#OKsyYWxtDA<&|a$0h3Im8c`r)18B0P_ zaejr3WDq2x*lJOXh{Cs6Av{w?4YV+@sj)A4^}gBb#N*3@U`JiTJZ0wB0xj8s(ITVr zqg*5nV>)uAP9NbN3MPTRUrBy&^}O;mk5r|P6?U&mzbEYcFuDtrLgTQaZ0PT}%BiWk zcx=-~y@bJTZ!W1;)6>_8!gX{^Bx@x`6{zB4E=XRdt`guP>U$Nsc{;9kQb26Y^VGVh z3?zk@qtA47EOZwHD4SU$3S?dcuFk+sA`MCC7-z|Xu3Py^MX+~pT|MM1oYFLlLvqZH ztn=>92jFVA?ntvpmzmxP_wBzSm+h+$o)JKI-}m3FCjKLh?C-f#xUx1V$1jI5?YSUr z9DC0sJ4h&lP{QwE3@4+H5&$2z{I2|gbb5A%HxM|tr5qC~?;!J>;A)$*E3a#oaKnp{ zH}66pb&JsINAE{?DS1yM(z4xIYBV2cSo2yF7&pFaeRpQImB#qB-7bImE~L!5ww(we z%2gMFay1F>U>P7(`%$zem)<>)vx3Jjk`}P-4;C#3*Ui^Qu(EQ6q}pmN#%*44%Mr zr&}0G;k!$3r?aOld%|>kJnIHA7*(GCR&YIHUyMUwtE$a#4S&SIa=uoZ)cxEzZKci< zyT`+$QnV4kXW&1wEyUSpeq0mvG}yZAxJA4GYO@R%V}T#B#L%kwj&u=^C$Y*cuu>=KpWK&?>gBU+rYRh2oRk8ur+aaR z*oV!`A1S7CHNUP7JJsL^fU7Z8>;|7{ZG6Rkl5RI2LDeanr?y9HC4aW9G}U*jlN}xV zvc|Up`vt4~7-uMv3fUa_Xb4qzwC*h2HH}3Wf~~oS{s(l*?1GmG4^9GFJZ_?NG;9tB z?Ak}A;DmYZ%kK9-Y3pNPl$kOF1Nna39{a(n-D%9}DwC@*Mw(pJk#Oy)O_!>aswjvS z<@A(S?8QEZmT(3c#1uup`&Wywo7aQ96q&oC`N^gZG@QR-tEfxNf#A>2JD%<;jPRftZ+D^2t`sDfdHQlcRP;;1Bxmv}v z85Aa`a!ZF4LY`!T@D0HnE7(Hsxm5wh(aeyHy5{Zf9}wE{8&`|ZFcz?!*J`WttxQm|ZH_2w1~)j0>QZHhi`IOO6u0bm*`4i`uCx;bLYV{EvA|6P=@I6_F z%i<;O&)m!Ca>Rc?(%NdYRpF_DJWIkqkVQT&o?`o3t;tc!32$x&6ROiCy$lMO+Ej<= zV;P!0;!aV|&`g6x*GQa-!<3C`lq{p^1sja#8y9ES8S0?VA=)0xfIBk{cV22Kz}ETk z2Sfsw6_|CkpAbtF=+1jX0U4%f3LoftL_UkUF3yk>7!Z{8kf;qhxLN@J7uG_NQj&-F#`#6_V_t>Tj`|($s2yg+wv`fc1V*!6q zJ%(Dr*U#~ngWljTW36z4wj69>f_+N{bVtM1t{$R~9Z{blHNY)dwk4bk>%fzL-?*o& zQ$Rm%A9*5q*AqqW3NtoMI(qDq$|j@KOYs|=2XBCT(J#=@(#*JB&u(5Jpt`ol#oktr zCfuuvXR;@2g0a1?{4TSw-7AQ7%ZPFv(_Wv`AcC@oO>?yB65Y#`?Z1e{qug49J(6Z- zz!Vk*rng?H0o_TKw_jB%8oxdHN^KDBeHJt2k~0QovCB8-+-vHsd|g>2L+oqfN{AoH z3@nrr4mXB2w6)D+-EGA3Jzz+o0`z~VHjEG&7*YssD_mt$`bk3$KaOWKVJ4@;mI#6z zDAJDH8~v>T=7jxgNs*78HbJVUak~j=49#^X8)uyTdGzRNsQiZN?nQC4*xxSu%eK(< z>*^!XKhrBPevsJ7z(kV2wg!Y_07COaV@A7u1sd}TUqSloe-`rp=65J!X>a_}7?I4( z-u$a=Y!zDQy#VaVqQ$LxN?XT^mMG_gb>b0+G_-FmH8D$XaNdOl--_ixkV|dNB;r&ia34W&2;)-)1#5_)RRy zhW*SAM29)_(>?t{nUe-8H~?neD=sdYUDsXP2F@GS#~W(h8sc%jCp0bM*w;`d4KFL7y0}?PA#v3pwb z+9D)7kox^Qx~HHx9}X`WX_71aB!@|$w9ru5V44KR+$648Kn%bM((;jcE|~Jf z^&+RKslKYtBe^-abS2zqGrsd}l)WoH5;uX)z~iW59T5+at@eAFCu;QAIg#0Pp+R>R zA4$`%zD^yqE&l-tx4GZ6a$a+$rCjX3Cn_j-_pX#{-?*`@$!`WOjm3P1q7dgB>$)$I zdsvofo~WYAwz$ydJc#K#USVr1g%|o-9^6g`?sU#n!yG ztu|LjSH{4ia1P=^==qyARpUcP$ACXT76s{K73uCJdB;B=E?AzQ>jtK#uNj5Egn=r_ zr-O|{x6rr!loLqs1*F4C)FIS<0-+$Ue*&KTzkx~lvzDlR_=y~OQJF%xB{3k-CwD>f zV|=3VHVjzd8nL@o=FVoGvkR7!1>d)00!E-8Ti-t=ASZeO7kgcw#Ggg)b6TMXB;S-P zp+mxNPj(vbfHJg_5BhH4&d{UYgt*rsC6z&jGc;UXg_TKmO*`J(qy6^4#Jl*|#Ki8_7wPww^=9puS@xJfC z68VP5#?E!p-H4y<44-LSP6ye4T_T=QjA@{tz}U{W>=Mx7QIL3=SJ|I4@y2*?&;x^L zN*(=Ii8f#)rC5!FR4gfTY7B*gj=`Ru6YYCWD|&{~_e_(^JpQ<3ovdy!5FMv%AIb1} z)kF!UcP~Tst7tomN)N?vVu~R*)f{Dv`aR{A*iM2MQfN}rK8cut&%~A5@aYX!v)a}V zCXO>fM(DGWft_6uvv-rJ>CQ#y-U-9N)KUw+Xj-?(q-WBU*;-k?Z8!imZrBSCx z(c@oI*q&sp22L5{9=~+1cr3W$S1<Y+cNU)P)y#l06qeQ))^j(+*=VO za9&>lqk_mipw*p_|)B~@J(U=-EPTuOREwQn# zSqd`PGh1LeURl+HP)F4U%&OS1Tb<%vv4fQF9}(%byGe5OEnHQ5toRee38M)Wo6p#6btFE&e-u!Ly7;Vkf;si7hCN60yn zsSebBs6iQEkFW6jtVi5e4Ru1GuYFAp)k($K zuJKkA6%%inKL$hEUd2WV#y+!hqNu%+5H&0O_JkSEMT0vcZ{MVdo2D6+YMg0 z$2p2=!b?v{1k{;=s2(bpim>IaQpee=vh`eq3I?t(eb_pJB|&716d`uSMv74!Gqyrs zXGx#a+SiYGUTcSTO1+3&TM2Ql2QkEIR!t}WlyiF(&zc~=XulYns`_A<)h7L*P11M$ z2IVv{gWAGwKYZU6V(13=CJR7bt?DT-1tkb1kF3}$engu?#9>u@h{e!9W`qER68hDYF{exfVcG(JM57EXLGDiZ(irw10a5bsAWdluDBDC24GF zM%I!Q8AIW?Ksz2YMt{-?dwh8U(+I&W*X7aE-_QbH*Cd?j+=5rBFE2BT+v%sdwvU<+ zj$(FIuqok{H&HSJ+dz^LMfBrc!xDUXIS<#=wL9%+zyd>Wk)wrLGt)$EPVDF@TB9Ee zZHxp%+x~{R6Y0=eJi8)|{{?#5zdHx^E6=p)_V!<(=y@NS0Z}04v<7ZZQ7R&ZmFJlY zYFL=n&Ac83u_U`>*RJtg0hLyMuv7^;i-Zk~cz&$qAuo!yoRgSfY@zFrFl)<)~Cc^Mf2UJDh2K}>rod$}V|VfuvI@i8JJA{T<1 z8|u)h%_Gk3h^Mo5~~m}8o8wW9LbPgp53G7r8u_id?I zZfx0&-q!wx7J~Oj?BL`cDk&dPTBr-Quo~07EBLuPpwj9xl)edewfzav{4X}Oe|LH- zL@#64cIj=?HlrORw-+Fq+(MrQYzyAtG8jf?JXAA;{+b@X+<4mp7kIp1Mt@SE_rv4u z0nTxmU)8{K`$stIYQw(9=fHuqGFDvBd z#T`(l{EZwiJqWMi6SFa?;Q5CqlKm_#F0Cv_(RC4&J=;?*>@3x;2`p6^@@|Bfj#|f9 zuXv|sUfLb~yk6-WGyDzB);&b;aao6O!p@TkfdCor#NKzG9p!ls-$=2yNe@Kda)R|z zl^wX6Du8K4NAXAr_(g(lo*Q4DJ)kr5A@&2@Jy}yfhxq;xykR$uaVR&oyW!e%FFPFA zH`43HVhvJZv>2>6PhDulytFH!NS&ZFPEAgN*LBmUcdxd}*G*k31#6=)SJzsPMj2@D zryUpMr<_5D$4;W&=yy5owAtD@7N1NzM-t2=bV53WW&$^SFD4@<(%B8r53igH011Z;!d-gMK@2mmRjkZeS={hX_*5%OVtldb`t-A$tnE=DfE0~(C4!F$t#Qllb8YCX6+oPdJ zOdv_hC@;Dt$>iI@Eh_73lkZmJ%oy!E$n1YPBzBxZ@Z6MIn~`;>2(!EJ{48{!KG8Ee zed9^y;1hA-B>ZO z&Ti&53TG>{!cM8 zEMnps`SdY_Ax`Ps{XOHujezb1RT0Fc!Sq2hDm?F-?Lg{Ub9~2reYgEyj#%rF4S^h`|P}%J^pQX7{LDqZ5L`8G7rm7uPth#R` zjw({4-PzBekD+=W%lB*3S(6{Ls3SwaBn;OcsiIL|Yo|`w#de>;C1Ot> zQp^#fuV(~+Kpb+j808G!#2eJ|6#`Lh?OXrNEj=8vh%f0<~1)0CUKQtr2 zZbYb?pShRvVoD0}BE&rE9gln;`+%WSR7^kv3et+qGsNfZ&C%et{h)=5h5_+6$aK8N z9j_2r!5KC|RpU!jP7i5!`9!i5CW;XgDkxU4KX-3wr&Y0XJIbAT8s>~=I|wFFE;f?f z?7Dv{0OPjJ&ko1EfXePbT-czY!U9mecaBuBLnv)sG3%kuIg9 zxNK5OdDU=KODUN@jw89(7@%(xMV(pnji!&8&`6cOJh~>`QS`^YI9Oi?e38VgUlnR)z=y5wVT^&V65VmP=&)Q>R{0gn@Kqfv~XD(c@$&&K^{u0F}O5plD$8FR23WN32Og-RxlBO#HRBK|e8s$b=fhlI}e8R3m#whO>f z^mI%%L8jyJn-9W|`gMu3l+eEkxTp=|5#GKDS>I>}M3KT04Sqb2e#0YgFl(p3itlM& zbNjN)UDLp6PurKm2VI*dIYzuikTXA7YD;lP1d+AeM`KvwQlx9;s8(Q=tI?znf(hf` zBeQ(XF>vvL$<sz)=X$l5;$%YU87s?ej6&$34+S?jY z?l;+G%we}7Uh5R+W|mOQCE}I4X}GDnlIyPr10tsoJ8EkzrE9#`c?&aqLvso@>($rp6rE?n zpQXJ56kZ3@2IN&kQL+rTDg`@$pRxGS7Wr4P)O6N*;VelhmZBPd-<}<28_tQ@Wbscz z#h2v45Aj}WWXaQkK-w7Wq`r#ds;;c$tF&q?X_T$8s23~n&f}r$G(pp3Iaj$i4ysJ< z6*7$0Yj&=h$=#IdLtFC$iS59MDmN>OHM%gN1cXo(U||JOhq*rg2%ExE#>_Z3>R8_T z0BW+1r@HV4Nm8Cl0&6H3V1T7_4pt9P1(anOZ#bY4dOq<@EZ7BXhqcvt%N6t#aJJOU z&(Cq}ihEx!@2#4~p`m$gFAW}?uNa}?5n*o!xaNJ$NuyWy8MH4AXJ+7W!zD%wN?uGi ztS3Q`6b#W#(-{63$zh>E*$o=C4!CD0=Wru}MI-H{s8arwIw=h@!QRIj_+KB^#L_B4 zpq%8t#9~7r8_n5@bwYMl903dt*l5(et2_)6$eD^)R>Qv8M|8IY2m(D+(KF%gq9tK9 z*wIDLOPkt$Q&`oMz-X;9%5jrR7JfpZWzR>D?Jv2^TqWxhwe{7Vw!AJmintV0-q1^{e*LrzBzz0&hx z*H3$)_*AY?amU`?UZ!JHEBh#Q0acLTSvTD!d&(^fe9&-)3|};$=C)lRKa`d!Kz4(tIfXD~<_Z})8{1&?`{0aCSCD0E3MURs22dCUx zqEpGC6zvy!=+03&xWv=_qd%Mn1;)x;gv)_Q0E(MeUUE z_2i9C&u*UHV`Zi4_yq-E9Iou%ScXK!BcGIDf!#w~1Nm02&w+cprrs0p zCV8m*Rk|MpEL5ZQp;GU+Z;#A_9oAY*yM;*~Kwawaw!`ztjUUFQxGo1yx%{eGY~E2GxpDB zZ%svscfI*wD46WTi)7?|>v3PO1l2cpN5SR^8>vwThlgbq+ln`#Sh>9D*>4dgI82`_ z>$EX=!eucW@gJ$_NY3$Gs%yxRF#UVR;co#b|6lG?r2R~FDb>w~z)GD8a= zKf*R&mC443iAd$#nBU zUAV{1bAYodq>Jl#w%(A2)P`RNwvkwsO-X zLDR%v3h4qaiA;HFtv}tv#@%?yq6{O z3yY;LhvXEc8H{yXMrqynJN=!%a^{x3@G>(;MYo)}CXDX%O=@n8yhxYO1U3V;Q?H8g z<-=um8oh2($~OrEYYSGn$|}bcL`)rgWj5fTr_xWY2`E>VdWt^&nnZ}5-A8~TmtaY@ zBa<-KusMG!9kgV$%}xAN$SBTb0G_fCX)6_6z@2mB(WCvax>$VkmjkK* zFUK*?uEoozq~dQ%l-l=DF|j{!tDnKo3KV^5c6wjE;``1^8zP5wDwwn?ZWnS`GT^Yr zK)0|FRvO5-2BWsXq2K(BFS8K~*cXg`hoH1c`QCYcV}jma9Xa%6b0fHaggqJxY$J2u zR)T*zy1P#V=J&BCZ)gO)7TEgYPg$(Q{<@*hAD8SQNrw%^`ARZd>D%!DVsQ!~^7aDfQb{1-i zVVk>wj*Rq_-TKY_Au7BQD>sfR9*2A($=^k5<0@_HHq99{ z%BUgAFv#K{;xtO}OH79eqOum|Vn-+($#oDL@uC5|cSWCh^3;^a!%VfiSM~}SIP7Lf zGP6gYMuP&pxP{f$=bM{n?W)bDS0zk{eo_+YRaIKAa&Fpx-FYpz9m?HIRlFmdsKP5u zI)=@8=-n&gK_|`S6qvF4;1s>3)u=*7`&MUDA4%BMpoZlRHfXinhoZgLOn51T6Hdw- z7Kv-Whbr(@V(@gZtJ8=`A@tO0&W76t;K6}A{5;?T1FrB>`7M^`*FHQ62%|Y8JOK!M zx7Z_iV|+<|H>v4RGHw3br~ubZF0CW}`SjHlJby4(q1pF=Z&u@aN_M6ohwNH@(MLZM z8RL9EsAIFBPm-wI3|B~JWly&iyuH*sMP)TAc3(%dq<4+eXzg62So96Jz0ez`>57ig zBeF4mW9>&2*G(vlFG8|>888n5cLP|0T_`q%3Wg5_iGznet(H$eQS4Z#PxRman5>f) z62FEmK_?v`C|-I()&4n#@H_>7iP5UYKVx&duxLNup#UgFMoSJ)9`VsOkm}o`j1mg; z&VQ`WhkkKhiMT`#U;_r6e?#*_g@BBZR4s=yM#H`-b*l;w`;Kn9#R{?uJ=$jX^OTCZ ztdIG_%%au;P$uW|vr)ikVns%ClU| zA?Br4i}WmCRfm{nmwZTD3rOnXH#9Wsnd99H?n|bH$}9;ab84P7rbb?QLR$22nd6sd zikpwL88Cu7Bt54Op8yE(-1|Np_2dpZSJWu@SUqbnv1^EEe5fSCXn_>OFEsO5qa#E# zE`_AJ70)tf2rLxYOnMIz2gHzx+OA%^lrEEnTxcO_^VcJn#5Pow!%S;y>l&!ckEfD3 zcC)`EOW-&Ay5*lP=-mt5J%-O879zk?d#KP!!ao(`NaYiVQ=;rQHP=M1_`v8we4Srr zu=vrkuFf@i)Wrc8A1M=|6z{htL!FWRRt+RyC$ZhVOf-JWljd^}auK;6ez2kEp|Th& zxM53c@fEv6vw_1NYt`NbYQVSB>nqVXe)gUtO*O@eINCCynxjThl>!#0infuxt1Ctp z{$i4RW%*LPmn?1S*Q4QGga=E*n;+isf#dRGxSR0aQbE+_a{K9?K2Uy2kVagyHijy! z?E8uYU%}gi)J;NrAKud+d)e7rciufd`**;5dB(=*m4Mnda!WY>yRlhDf&vQiDnGU3 zAdGYEP4j&CErZ!=H1k6D{JRw8Qoty7bG=unlY9A2H5Nwvfat0ViCMF7v3sE$Qa;zo z@|+CN+06kdTvwbR`ih!gm(&IZm=(7Rr)e)tyOlbn3-#*JrwL8j+O97=WVFHYu*=R! zKqKFCnoI+_tf)0zFVaA^D$efTTu@3D#x#S<=7FztPh03sB5-8+Ur-n*3xrx>JtxGH zIT@yuyW387C&SJg%Mu5y zGk$=GA(X1K8@`KAA8g{rI3V<6!vs;0>u0}ad}(O0r+af83urFvi=g2*_30w?o&i`Q z^Xxl$ezL}U2$0L?T)@9NbX7p%I4`IkX zBQX3#N!8zu*tmD1HonUxv4s%kWn4MXA#trGbZxMlf)tl0YwY=1=pdOilpwLm_VNmo zA|h$VciTNiK1FMw!N#?kkas?U``V|4zHTjg=CiDhkA zOz#%0anScFc0V;4RW?|{)&0Ay*sZHvs&&k=gk2#inl!JTn&f5W(o(NSoDS~a)=XqX zuUbF(_;2E-rF5{oHjvh>If7>1CwfNUAm(F^#uc^p5`m<>2mGUQ)Sh!l!Iqz~>$?Ob z^9VPwFTC?DNmD|(&i(m;?BBs;q8Of(!v?}S$j|pL;HHxY&S02T_T0IWt3*S_R=AtS zg@*|3;*?LyNgLuCtiyS$yoGYF&P4W^?eMer@+VL-7kvp!d2a8U58Q-)Lt8%lSG`{1MYlgZHY_*)EU```*J@`x~0K=Z7Yg`t#Q2E0B1W z!@5z(GEvNWm;6MnKW%=IQg@qGYIE3oOeG%us13BwjvsaO%DknIvPw)Frv=98p>-cW z%&%)yjqq~YZcuSA{QSs%}T3^L>3h^k5&QWWOrQlQUlJQXRH@Sr(c2|=NK z1TG7#1SvLZR-o4|(oR>Ku)h*W93X3>IK1)p*&xctb1 zhBx4q!EB@pO5*0JV;|?<@GlL@tvKm>WKXriS5s?)AvsD4E^P&xe&V_9!r?}r1w5;jqH z@a*~r7XQ(=Vij5fpq=?oyOgH015OSYnn@>=%PKL0kD1)?WkfpqJ^@2&#so%jZsjKS zyx9`knL-q%LCJ0jyo5$eH6bi`^{c*u-H#=(?1~LD z4cAe^Djc%=YT0aG!`FGDyDf7Smk|omCakC@U8ZY+b5J}k1c_Mlz>6Z+)_y9*KL#K(fd5!T_@>v7`9xYWL z|E9`74?w^thb8f?pRu@oH9#!pOG?)XDsCEmYXm;Km!pytetTrp&B?7WZe|G*1bVcN z7pBfl>tbqa)F)s+NEzFhFTN~YTM2Y-5!CE^r8CW)PYPF@dA~7ibKAFlQ}V!ck8LI3 zR{Q~cZ3^XHI($P2Sv?P+YM1NjE=RMlS7IZ6h{kxuk$ zRv$hk(seksN5bnDYY{P<#)K_91z9P+Jjk~|VSwa8YN4*~56}~%zO7-7gbk0mEMnF^ zNvA8kI@dZB9Nno7ae~8SHmNphG_z^)(Ormu(4G7KY3Yy1+;!krz&X`c=E;Mtcp}-} zF*Nc%rznR=M}xMQf+JX>4`Z>JTS2D$J!{^}?G5W7Mq||Bv;DlN42nt>wUU9cz@7ZX z`a2rE=gBk0K%UUd#(#1Th^gmln?ITRT|66x5nSrrq9-XVyFG z-_Dw3c%4%RD*uM&c8^j__6K(h)?Ku%wXH53u^ioJ{(c1I{__Z$OlK4F-;bb-YyJb< z5I2`zcON@cE`fA(-3!9Es{)M}(gn!6r!#xQwq5mabDyIT7((YJ;V70YywR5wk8A(V z>K=tn{!bwd59!s2JG3yW!9HzbMSWjW-*#JcW>K4SEYnSdvoNNMT-~vvLO04?;8SiZ z>B~oSms-m<*(-JPNciGq;i=K&Y62W!d4MZPHmT z7EW^Kc(&!ENizRzbMpEA#@E@4nfllG_nPKE+x*d?*w0;=lmgmrf42GaF?(N~a^)jN z{%rH-VoiX#3mwlm6E%{OjHQ*NXp_G5VJY zANgOq41V7R>q|n3ZN@(wF)^{q+4W z*u=e?p$x8Q=qv%E6b~x}C4s8bz6_Tt0=xa?-A2~jjQBK|pH^+DEn+h3&q&-llgH@D z+#5H$LrmS{Qy4N^0U190I<&t$_N7QEUe}+))!&Z~ zU-fYx4f4a@t=ZcCYk&{!j8=r+CL?*fF*c3NC!wlyj8mzkcEkBDx-J9jVRamrnKVJ! zcAV`B^f4XX4R&Ssf}_&DC-i~ZAtJCMD#DP#SlRZCS@q1lYjI!Hfl>O>M6lGL;?n3g zTG?w@3=gQEc%!=w-1wFUfK-CNrmg&IB*^nuJFsg<;2=pjx*3bo;^8rSsAE#ghIQ9jLd!^~IFY#+!)^j=cMwp4c z$F`-XQ2Ho#YSLwF{Mlj>s_A>y0>+64aU(7>&xkd&p8rQjzWV74 z;3et)2`@Zbr+ZfTfpfZ^rNE_Wx@K#7KTKDZNEO?{>24Y=QS0_4b1uiE#64%_%>Fsr zibaS3kF?1bMnZYdllDH(QRE%8;=C~A@J#v&qr(}wWFanp)|t|Gv}wE@MNNyRGdcO% zE}T?l&8{jeVbG{99j#S$LLnJ{CB=2`W>u@_W@QE#qsP5l?1}<`#$S%gS2qVtjC7vs z`BnBVe=e)a>2UqUXW!1vkRvGv+)XoV0XtD4q!{miguf@Cn>Ee$7}c-ZKa@@+$XI|MIW9MFRMUs8F!VdpwgpIACZYcv>J`pwEijwDsY~H{uzE}eaq+}Y zPGj~5nl>@Bp0FogWE>BvH89Sk1Fww&1eyq7m)h6lXJ<)r*|XefRTG|mZU*+% zc@y10Jitc0+#b^WGpq%2&7C1K80qqR&ZC|_x~zYXQu~jt*`tuI&~+8w<{u&;PUo%q z06NKqp=8jW-@aiO=0}=27MR$Kg?@Io^c5*e7P8{T?v4`5?XuIx3rQWbj^BBTm{7BIj39mouzAu}u@ehNfZ5L#vNsyurSr-z$ljhEv_T2~I(YWeYzMMJXq zr($Nezrzm%>YW=H;N~&x?6HfA6Ag0W{^XpuqG$c(3~wUeOn5t(nyv2UCy)H3pwbAy zjyn2YBu?kR0<_(rK*V4?(0{{JMBFd8KsVaCKZ>b=2}zc!K8%mhoQ;l zUc+1h3aR-L!b#bgI2I*=yBVfL`tw4Ot7-&RfYju^cg>9qn#M}Jxydfk=_LV*nm&zF zEGYiW^bIcp+;)AYAeX1VJ8u{9{`IuWN0*?i>GC(bwv_{zaCF=fhuZDH8PU^{Ru(Ca z35XqZ8p)K@0{U*(pioMhjBIYJS3(d~$`)0W;GFf&@MwCU{&#aef50)bLoo+NA3)Y8dT5|Pgn#FFZzZlgoqH`;hI$gMUf8Vwm z!@gWsh=M%p)TK@SI6&#uod+#HH_o$M83{yM|bhbJ+zOVZMa;0Z~S7x_Sa-{Qvtwce?l z-*dFQr><@db^#W>O92FSlFJuiZfpHgGHplP(Nf(2*V*MALC)g#vwOBo)N~yWenV?5 z!Sg-9Bj~%9D)o8MW#(YTnW(yrO?80ZAXyVQaGJkR1Kz%B8!Nm58wHRl!=Wl<+EW5x zBEvqfP2KcMZcQSh1m3O?jrQl)u4S+(Z*vJL38TAQYmj%9%Uuj-$O=Qn^-4>V-SFA@ zdR{A$dsFv(jTJxBa5E)GvblTMXRAEXCsaA@=!Fm&Z{2*gqvns0Ma~k*uqsme&BHdn9gNrK#kYdR)>S*#p`m9@VFw5ML@Xiu3`AE*DGxRg45Aq6>upMw&`w|eNjj}8 zaW7yd1xHVJ83{%eb)1@PoLAb|Sh+F0*{jt0oUiPhXI}0zOY9@YL9AOYj6r7~K^IHmWub|8HoyC0J7&w~|N}bsyEA?0P<`Bg`RIi!VrH=~En5sR=!b5p>x* zdgDzVzJZ`yU2rZ!>UpRhul^1tt0t4&EZ2v=gIWJ}#v_M`Z&`;u%hVB*faxgq=dTxKn&7!jqA5*o?J7kzwb2?waW*W4u+c%cRy~a6?5BBv z#fa-HDK7Toebv!nY_lw8sS943Q5l)`@uJ8ZdookJzNi2(mol7HyV@nE9@3JD+43qo z7ora+oHsGKj>C@B#odXLr106z^!@(ptvlU&6ccB@S#2#^`CTGldUcwEds|QU14#QB zh{0zf-}iVsD%<)17>vY+7Pu$)V5y8Berw6nyDZn2>9{S*y-H1|bE`zT6HO)c`@d^( zTr#$FqTYu85sv_!UoZ4yJv0W7b_Yk)0Le5|brr(cv89t^vr$1lZ1T&kaXEXvSVFRF zN5eYHtZ;$8QO^OV2$#5&4H6H*zbHzj?Qu5D1r|2 zV0;2uYY=$M#hk!R2(WH!8AS0f$cSoVh@G|GAAj3^BIY&<2u2!RFI<~Rq9_#oqwvYz zG@s~$M!{Y3i8+AX-e^@w*!SPiuv5g3wLWi9AMuEm&aZ@*Z%hgloz}0ZD13+=iY`}W zfJHH1#Q%o2gyG9_ROT`xU_=@(RZ)R}H;N5>t?g}$rUey-WV49$_sjZEiXv2zmJ|6% z?hqGAc}1qN&$=d7IOq?|A0#^b(n>n)qn<$6?OubYzy6Mig@;@O)84hb&;OiU@T68Ka_(P^QHR9$qD z(3j1R?5spp*q`=UYk=larlV<-u*q-H^Sn+hnec$j$!d?KI1%h96aAQat<&r-42;dk#mF{)`z@AwVP5?ULj^r-Iq3tO=$ zbyu?!%^p*79FZpw3`+OG*IN9y^>osRJYPI*sgJW$cOO}P+D1wLDIx}7Ms7KY7Zb@x|5DH7&K)hB&N z5(gL56=R#MBr#`Y#~ZcGN;3WWVwIi zHF~{Ea32jw8FN@%na2En?Zo`$h-o9~LxTO==PW;M@bhq2JyErCxviYmInjG4ZPQDE zyg<_VukjkK{gp~MFAn-~IyA+$7m$lc<~D**0S7ncF2)27!m=15oH~^u-<=pGDL=S; zuuzE0hn6O!P^{8_|BW(r5~?Neq^%hiQzOwG`a{+~rw!MfHxvkdIybAk zK<~Z}7&b7_vOsYiWm#gd3Pkg#niWc5{y9uvco(d%;oa}q5@1&ZrH zF3~@v9jc?)a_%nTA1s@vnm=bTM`btBdOSb9QuW!<3sNy{7ZaQbgEHjp$mCV7h&=w3 zjs@hAaKw7PO1%-orag*E)em~zp=c-l4FyZUYvFLtQxNcd+&%Kr zuK*Wa2K-PNtCedCZk8=JGi!1WnSE8hZJ!$;FGCYvhycXYZBnu;&?Q9zj zrgYRlA}(+wj(D8$Sf7;EJ7i(sz7#qG`hYp5Wt5erxra(=b2d2Nze()T7E7un{U!jv zRtA(}n`ru;1|8tau*8Ttk5YPuhE<%ojB|KP3uxC-mSG|e%wmUbBxG>o3Ipauwqx2f z5_2zW-cH_A-Gv++kVDzU-D|QIKaY^V2WJHIdhSN2W+WJM8*0DL$tPF%WN{z(7NqPU!A@s_g|%-S z`GQHne_RRt`BAK8V0^0UIs81{LwigP*MqZK;0d3qQu~?26nnnafSrRajIrH}ILc_51A|%Nq%!#XA*lE5c24n%3z2`71i}Nt?ABQB#7HhZV_sA?*IW zUK@~)5%6Vf^JMZDF-qyqWnmBEHYh%cWq861|N0}+s9t=9Hpg?eeoEpjd(YBj(A+wpVvwub98$?y2`pM3&G zhw2me;yhB=NL`P6&CrZ7rMr3i1gNN9o1Q-dKB$@7y36R5XlYwon53Pq__L+dDA|Sd zd*%5zq7;4ZIf8UGdOa3v3p9?S@thgQ9G{7z%bGg$@g2pEd6$bWP35Ly>X;i!W*4md zLBaW1nYL>|LZlw!qdy0g?$1x=pKqEyVfzj3uR}#Uj>W*Lp>zL7rxpJEy$HyM}As!vAD^A`k7BKbKIn3XG zftpuccp7H3i6fWIX(WzS`*UTyY6hp7IDP}HznR$y`hT1<-~WrIn}nnX(z5xA{p*V? zo{oS){}9=J5y_5!T*hXLs9Kh`=NCME0(`gVM&qL1*QWo57QIfZlL!<8w zdY$xE{$>p;hBB~fX~SXX4j$T-au{BbHsKGW5){^pz>P~? zH8f=Y5o6d|)QhOIRR{HGx_6YZ=V6m&J?Bp6+4SDaUvFkdRmDyrqkn6Huo(F4I3R*J zPIg{EydjJL(=?tPMMTGXCJ1O}W}AE-Cx?OEsqpmChwBIJ|2Ree8(EQ|ifTQdntjyx z?i(5|HbSW+BCteMKJ^40=NyA>GQ)v8Eofxv$5NC$PqA3aFPv@DSts5xkxF2iwq9HGVqG zyXl1|HZh)e^KhqUgZ>q9KYsOD+Jp9;yzP1UQm6Vq$5B;k>PN@xZn=I@#}1nlFfl(fd?VScepOBJ`FM=$Lh|EAu@toQ?>F8d z)>;*2ob$HOchxb-a8vu_9Y)48@v1EA_F5QO$dO(*SE@vfP)BpQQ=OZ>1@vzoHF1vW zs2LQ}w4~rX_GX5tSnJC-u5V{(XK0iEbiG3V&V->FF8~(i^zvKsh-4qy$9MaG@b$B2 z1N@D5pf>;Qe>2ZQLw|l@xqZw)miVX&qmK>qePDdYKk@KPml1Hlmxnkv;$B54;la_T zje)xXV#n5bv=n0?3#I*26(NdT@dQN_*YW+%V+xY-zs}+xLu>pa2k~qr@~XD!B{w=I z8G&txjKb^ss7+&2gtqN}ZF()wf8Qh$t<0w85M9%h%GA6BR=kPes4(o zDej)&f&4jGgs$Z8Uw00g zz5F@2g}8`DFXNa1D{cB8EY3h}b?xLne0dN~Wl5aC5W*9|KjYt{_J4@Q`TqNf#jh~J zxG)T>{@tNns6CwvvT+yvs*guw+$ z4c?BYLJmxy%6~Loy^aMOv*R3+A?~r8vSty*-+T(T%+px2l>1Hj>fN4vr0@0ag%3%&D)*YV+g2DE_I&oD8)?!NyjR|U%z=wm&x>Dv^N@LuH_4i*PEp}a`zT`-&+mLu$iJZ+b^M25Pm8}6SrVzax>6g@J`?>@! z9;LV3NADMx-_~(MUX#r`Qq0&Su)$PipFcolE@*6SXVwSnQ27&vxl;5uGh8m*MDC$# zsq`P6=f1~~%Dm>W?4p^II6*{go{i#JE#t!lB#mAH)4gt5RK@k;W}YgacgNk{Ts%wc z5Ix(T#5Z{BLwm8VnrrhQYqp2cgW^FDH6>SqT{XDyDtsB?2Hw6`$Qw5#1FfwPwLr5< z^Dl)CBrUI;qRpCR5+s(eIf7P0s7=T2eSh-%#|NsEa>{w_asCfTrT+b)`k!56(nUZK zw~_@N4!}a1S3kYJ?tia)_PCBegWzkxBbLxJ1F%Md3*1}yF0SZ7bn6mL-&c?R&KTZ4 zBY;Jux46r?I6Ld!ncCiNq;hRz47et|a_}+T%ja%o(PY{)&auRcmtNguM?1ym4B$t5 z_K)>h>2(drVp@2wPW-s)?rTv6YN-s`AmFvI&C5`C-^n6?yWzoh7ra_bxtOz)-2|T^ znc;*la7B`T5<|PUs(iPSN>_jm4{S3(N|-o8hFsVml?|bgF#cID4#F~=mY{Ge`3NLJ z5mpM6d&X{?bHXxvaIY5qD;>%F>tm8u3d76Rk6yUPz22OUq_?lU_HKTDYyT2N;|VsJ zS?65N1Xt`H@tww!T?T4QK_#U&I$yzedS^yv1zERH)uiGRFo`P%1|%NzZ+_rZ=%eMD zurWNoX@A8^=%;sMPRf|*hxSB?F%At~aNJ$`UAo$sCU6CnbvJc$zZ;4jk&58?=J{l_ z(e6@F>bYEDhG0lI<LGNQ;8aK1H%qZ#p z0(p$Q*G7RgfHkkf=AR1P{1Z+g$-re`U$Q67hHj6EhnIw75Ai6qnTcP6dd{ZA=g|Hq z1gZ}3#=(tyCU8H5;4X+0d}=*bXIMl#I<|l$Z3C{gysRkK)KzkcAg4E&P+_2EV?9ti zEsLh>xj5OiM^K_>Zfo53AlHf$yFqCJ)Lea_&eQG`tES3t+S|x^UzN9@lrQmGbMhd! z8K&F18I^jaHudasqY$ul=t4(m?aOggKYdyx0A@Q-(w^0i45!g%UZOW!)B4OM%9vds z*V;C5c;|W*xS)o}bc?*zuv??SRC#Nu(w(}1*9gOfOhv7(qG7X8KhW5vWl2;%3KH8C z^Jqvm3;Y3n2Kw<<>p>GOWQJtxx-ZsSd>tjEet)95;C`MshtOuGAV`klF^E}eTJ&E* zGq!-Z!osbP=xh5)<~k5SGH$fxW@7E`XS}a2%dPEq361myB*>I)DwT-dnd$08Hy?R!&WM}j z0+$)bp&-3i@b&T2mbV^xv8qHK0q?xahMC>u^^5yeQ_u3w{~K#>0o7L9t?dSBDa8uK zy+vEJxI+ai?h>>(DefAi#flUtP@Liv0!2b_cXx`r1`F;z>;2BZ&%e(;`+N8Mk8uVg zBN<^qMv}GWGoLx{d0%z=*Jrox59WqX?-8QNVG^4uZ<>q}(%ntANeu{I6&_b|H%3G0C?wCJ_)7$0|p^WHp(BTCXyqOB=Y)PWdC3h&U4oi!*VJ z2yh+d?h368=Ufobcz}7)J zReL2nC`>UszV09;#;38^B@g4+N-m>E2baloe|34m5Wt>; z{vzPSvDirb#pg%xHdSvz{h1i51c~X`<^0gFW?pW^kH;363G|gF3+L;q1$%MWnpe7V{QV8 z8XBZ%yFY8~#M+36O-<|?@FHbTc3PtCz4qt&=@3K zY&oxEo@j6?vEfnja$COX82J$oS)%%W+fqB%+zXUUnw240Qw`EK+2FZ`uL}!G&hB$_ zvv17fG$z)vK=|^ExEKZn(XM{J`o^|#5GNz+>UD$O?7@%E^%#`(aQi%HKLvQQP^{Mb zK)yAMnbt);mgPg2)|f!A#W>5ITX*>7mmA?vJ)MKX3gtMe`le`#48 zavAITE6U*V!;z<%|I+?jk%PJP`rFJ#g!svLrfqP$JbNYv1^sZ!tY43!+mI2gm%r@x z1;+CP(m$ZzJ~Ap$HuCGO2$u_kOovO!b)n)J4k;&|r?|k4j9=S17jiXwAT} z-XJWJZnd-$W8FgWbA^h@T+h_Q8^-g--4vMBTx=LZ=V~nU3_UIA-Oe7?Th5_x{#cGlO^vl-jE`dq785Pn6I>pmjg-qn5W&UfMX96Hz~WC{_9q= z5HS$9w3QF@9TZQ^y&h4p8C&(Y5zuhAqK>WTfv!2>ybd1YRP#|TZiFWI56E<%Lj1PG z44J`Jcy#J4y#jkF{F;a<_kByo>qor${FZBT_XJl&>0^Lx+%hyd53t~i{CCo}zn*7H zp1PHW&Ds*!WP56_X&-;1$cN-sM-uU%Ck~xN*X(q|TqlQ-lxJg00#QHoIW}P%hq1YK zzx0b%^tF-kGY{oKr_^I+(#`nDse6VoqWi@crlPYiOun10#wt_jdI#$z(()lDd_BBY zihVxxL+mYl8gI#PNxpIlcO58u2ffmz+{|-0nroY?Gnsh2OPO}eyG!&=PS&hWFM?HE z5SR7*f@l8_ITzpHqTA%BDG+`x0-HS4z|pd6%I^W?l61+^%F;Kq@j&m2-Eyr%v+;kMt8M$w`jAlCEeI83}Zuw|Xu` zw&UB^T`|ltKf9mQ$Wgi_n}?;@>lpD6U_#GO9iCd0*iBUMmbs_k#V~}sC57=IBoD>Y zE7(CpD{6eUlebuDa*D~S4qevVH~iB!B%WtO7D2o7dRR! zqt1ipWJHoN;Y$UNe@U;z^O{8n6wrEd84Q+q0IcL#KNzz@N!840n_WMom(2S>0rAB% zqjSH*YiRPw-`S)6$2$LCncBR3QTXFBW6`PDabR~Znoqw!c$8aWfpC4h5$}5?(8j=R z$DZEuhej=Z7QwDLenmr4Q32cdPW9qG(;CvG7~jTk(F$~JXZ?R(T<2}v#m3upZVaa! zV;R=##$L!MgSr{dVCjPIs>cq`M0;qprqi*mI$zfAVv9Ae@YR?y;wU`E)_3V4U}SB(v&?-)R`kv0V*cKsDCFuqcqY~e-`sx|%K zle$-UKGpfn%jE+Md)@%AF7LBJcg_DF-F)=VL->($`+q=iesQ6k!xL9zCevIHw=%x0 zWS%zQ=J*NN#}bHlpcFiOd|U$g_fHo;jv;X-}lA4kwMF_hdJ-4vR)7wu=lZ>XGEa$b*bZiNC4j zgAvWi*G`l^i?d;x;8f}ue1U}pdO(h`0dktSnM(iv*n<77QJ1!TZ8jKkj$`F|oD1P| z!5{=3$l!_ucS+l*NfGl$G1EX4`pXoeHgxDxL%e1WX{Mvp^l9}cCroH{*sUd9e z?C!RB1Ag#BIK?jbYXIu=un-1vMEj1ILjXMkmfv2oL*{MQF86EU-AKKRlnJ@X8hzwF ziGu3Up2sXnQ#@^6k!~&;2}?!Iab8;_NEi2stXjlOc7X69!KFyMRDH^+q46%|r{ay& zK^drsYUVr^22O@I^!;G{rA@AZp@FKO@X=pas6RIqr9mCdT8TYa8wXi$8H(HmHjhZYtRDs$Y zVEdfPA6mxm>*u=j_HQZWb-PRFmZin@Mz3Q`|AJ*c@ibOJ(WE^wfOj?|4l!2OR>k)v zKBO5rUyIHxB!NrQu+!Lo@PxKaNzf<+<4)^%=rB@!sh{zk$?JYh(Fj_`)fR)|R>>V| zO(8W!ya%`N7#HF#smiV!tPXvD4;$OFRc1#c@Du+QURv;TXVmsuX)#^2=j&e|?7P1{ z*yXQYw=Xw{`TfvDsl}jpM68KIw`QyBQ6Md?i6fvxgV)FgHafD4Za7aOGO{K0n2Jyr zons3oo_n;RU=l=NlsPahEe$fWF(Ml~O((T`DYWQm??F{i<9BSpi_0tO!Cc|m9ICIK zR5-WbSFcqcG5SScZ($*szFItjQ;6P?M`df!?Nn`QWvpAc?2@P5sQHWPjb%=OEn)YD zU$JrxchBgSD0VBRRYpQywsoQr-Pqdr9$_LAQ*t^&EZWQRgLfQsh)pJfG~n!S-}`?8 zv;K7)4`2mC@Ot&pGkGqDJUWGgSOe+|9UN<@}uGRHVO9pO7=))o%uS0i-D;ud@Xk~QOz|_M!Rrn|A#9h zT{ImkDGYMrUDh2Fq>JF2QM(4oZ19eD8GGUpI`P13vpD%75X~K1M$AfLIL&U|f^DdZ zUc*XmYQ@KPV6Ipv^6oH|0=eJm?yBbJFd?Gbg2MU)IM)DNI~VrpM4hSS62WTT@A=Z= zI^x`Z-DNP@JWno_F?NSlMEwNq@!jKjTlIO;I{Qah{z5Ma$Z0;ix~gJH7F{aSXegFf z*?|EK`QRI-efW$*C^_ixqwh=$OLR8OT7u@+(f*e?y>P=k7sivJd-KZL-J$Lx$pna+ zERXRp@$_Iz%a7&paS#eC9d4cvYU!G!I-oKx}oZ0T#Hw4Inx+en;nv zC%TOjKTrf=9~m2*7|VYzhJF3|Ll(^s%f&E?7%d@d8~R(o8Av2;ZM~zf1g}z}y3>#? zZn@e=sy_ zfQi+2Oqvkfw~{Mh0{rBS5J-LhT%^|pqLRY$D?uF&aP@;qU~gBNVxfie^IsOUr*IG_ zoO^cm1MU|bncwTyF6*cXFLlhMY3v^gz*nMp4aT00+cS86Kv?)#RYN)UXJkmeMt^eO zSM&5~(>9__S>50)D=V`H>2Yywo#e5Ka5{2hjbA-p%nsNwi_Bcf2p8WQ^DEYj?(*{8 zsj4~XsY*DB(|a`^;C)Uq^YSOF7KoJ`gb&Kg{+#^}z5w70`hRQ!`4nQvASv%CBlYu> z9xH+g;qkA?KQwy8ydSwCi-d0T=K={jFdmQU8$QaNtulH%2CdlJx98pR%JAJ3Z*KT# z_Sj_+E-|w@e2uY_c}cx=Yaj5m9dTV!*Hl(uTREqEE<+Rd8at9^SNBNwM!U4Q`1f`q z^y7rpF~>!Tzp0D~Mf5{Qd|`2KZHX^Hxf~H8xj+5~B%LxbeOh=ni2etp7=JL|G8()s zw|tNFFy38V$(%>VlZz4ID zU(`jsLS?2nN%r>(!dR2hL1V#?vRi7GtjWY}0oR9C`=>Bk1>ilMCDeQ(v2N#bd_mJ~T#?2JKF ziT|g~y7$Wsc6l>1zAwzHqn_UnMNq)>9*QBf4Y)6aC6h~cNx3lXy(@yCFY{q;zrP*C zA4vS2{mB2xEZYA%7M<-&7zf9CO>K&hNtB0J9JiL*uKe=jV8zLgZmE*+o#_`Y4vjfP z`R;KASXebZyF%hcDfwUWk!r291y&^Uj`Ewi&XJ{igmEIY*vsoWqDTEP*g|wCcR+Z} z(U0?tHV zf%Bc9u|fKG25GqQE$h<^t26AzGPOtkF{UI_KfEZks=~37?8(;$Uvxb|_b@;1Chy&> z&OKVplt{{NEdqD@F{eKv6l-@}d}{NN7JIG9>8*QI_c`nisyGT5pNku{i6XJ5eDqu@ zq%j}1(yvJ@Pd)dQIx0!o9*x%zEcL-QF7`h;P>X zibfdI+FV?h1v~6j^_#l5aki9`Y0YC4F>rKC*=EG9QSI>m<}-fc>1{`Pu!A#8SH+GR zL>zK%fF5F`d3!s>+P3b=3U)#<=Y|=HkYMwu2%#JHZcJ*rWmut@RiXRGd?yVS+Ozj>6$i$&7%fTpI`3DsCQ{V7x|DwZ3A%@U;?QO#iZmezxv)=t=V*jS} z+6L&!_xtA%hb}=Em2*0LJvr2Z?ZIe6QChow4o{7EGiRK+5>702})9#|`gXYkf=JN6d1&u5gT&M16 zGse%%%FLsnT|6&V1CxkT&AmwN_>>;qQ@9k;!UIPHI53AhqYM^#0(TjmU%ZzWoE^M3 z-ozG2f?m3)BUiCLe}tFqeTlMN;PTje5%Ll?j=OB9@fWNH?iS^ucyymJJqufRuU=kr zSx=M*z?VMS+o6*;DCU?|uuR?PVNP8*6=eT`o=V*>On-)y zVZhHnaK(6kY0qK5P-0=z%ZGaoC=7b|3v5;MPDeNBh_1?mWl&u(FVnEinxpmc_r!iX z3?CUX9q}cC@{(kJ0e??z=lgx&t^AD~y<3tcAVfEu-%Pk$w9h=!zk8T{*uQj-b(Qg1 z+RB=Y$k5Y8u_hUzz>%xGzxy6t$$C;=@Avom+_rxoF=2(qv%rMk#dIaRz{oQ%ntHU` zVK@j*-#pE?zv@s<`#=amIXa)xkXIy?KM-$tBzTN^D(^y1208J)mN8Kl^|B*D#+`3JFs%|WOT4G%Kr0;TNqL# z(mh|}lTyjv;*I9h7~clp|34H*DLyt2O#c%md~JF&=9WElAzhKNki2e#V_)3g62z zFTcjsNoy0{rmkt5Xr>4xk3;+EBq%P;aMj@X7VF7;g!yAn;3mwu0d zOX@jrMXXp|ir&24qno4Kk#LCr1y;H^iL|m5xfo*OYENm*FGGnOU&sYXj~|@od8FsO z`Vy)q5c=5vqe((9hNy~uPBsJ>yb3(k{Q+!sHbWJoy(s8~6+N zX@E=1&JbJuWQi;E$@VLxx?ZRA=|AO=pIjD#tKDy;b z-M;<(=F)j-=3T;F(fMzQ){U!7n-i=g#I!gYuM`Rq>Z{_!PAQR}^z>bQ3NKaH?=!T3 zp0jSn7&Qa(kk(u5<-6yzIvH(Sy3uU#6hex5iiK6zdupLB@lY0+>pf3|r~{Gbn|l(? zTFRIikHFsWQ3Tg`;At_U@dUAPZ;r4yZr-{F=0?_rajiw-c4iaHaLKGFVjvRprvMhU zsbMV|qJN?FYrLwKU$nj^yZqe=?nXtuilSMmk6Ec_nb7Fj0zQUoE}@Mq^ZL`_z+`oae6O7~qO&ND4Q;fg{( z_fC@Tn5}H-&YO3%ihyieg7pMi4re{k=W6=jX@eGAlFkz>GZ~TuEqRT%LQgz9@FXMk zJ31MP0V5+}cxU=zI+KvYzTs^S^n=kC?C0g56f5tF(}$DEV!naim|cb!OMrgCCz_}m zlAL7OY++6uD{S}W$-k-ZKp00q0ACTPKDwbKEE=IP#kWtVWC7!9(^-!u;XDPfOXwUj+=Z<$#k%I4+S(5JqpH#l603Y`hS;5 z)afsa3Fqq0-%=`gt;!P}cOGz3gmN*UcZMUsIt{A@?idmT*;~{fNra2-8R=BUxX}Iq zu@*oCGLS$Y>hVP-SQ2?ASojYT-si+9MPif`wPYwip4rePL(M z{;fu!sobXU6FQPp3|;DxysX=KVU6+qXv|m%Ai70uriw=xeizG4D>5s8Bz zr}(j%6U*QiGGabEI@}!#b~_+yNV!Ttu`ALpCbPIXMo#!zwEda0^Q%bT_C|%(R2l`1 zqrtQ2SSOmsQ`BCx9(kdv+(KWFY=4Fn%=-mc0Z&vkjXBc_MWzz8I7aSEgO~P9RrX0O zm8!STw6t4+(e4qF()}lgWF;q%bQ}wM{dm8E*oxfBXS0lO(6VI8@6ME7Q6V#))8F>q zEY4TRniC<7TNES{l&5$=a&lZKMA0qgCYEwa$y(svX&&_N^Pd0B^!q>AF_uExylEB# zSFYHt;z-lxRbEz^C$!gE>|zxTx)Q7ZqIJr#ULxWX6$n~rU}5NGP~bbE3T7PYW=ad- z@$mzZEb75dY@9fA&Y=i$l;F&Tmk(-aVSWv%y`6uijgR2=rOTebgtlqxYfZ%RcRX&* zc>eylBhnmWX{?+HDBwr(cTqZoxpA;s|7__$Ctt9t*AinpxKb6=o;#(cJg_eCsSj0n z1X2Z&gG|sAq=^ImYH9wH8yi;VEYnbPcDI!+it&pZZbzRSm0CM(z)2u@LiGWj*$wzc zKxOZ(IoGjRb9Lx(d4>xjBe@jtb_eziWw&o_N-lq%D037Pe^D^xH}0Qb!`(BEbLtZD zI2$&T#*uZj#Mt)Wy*vjaqIe{;GU!{-sEDbC9NV&j1H2?dIDhS9vrz-xxP5j>f(y?@a#E;Sx}mpHAc zC%{|N>cKT6wM?)vHTPcsJb5~Cv{$lQDNmJJ z^V}>Rkd$HXO0i`4I7LM{v?ZDH`84AhfM;zf-}x)mEj+Z&`xKBb*v$}t59mDC-KsP& zzK#0w7xsEVe_m#+POYgnAZ}O^EXm*EQg7&Z49K%ErgQ>+>h(9Te7Ts*@)0532T?6i zoh!j*NinteLw>^NWzyLJ6vQ^TFNh&bk-SuNLcx^mdkxbL$}z?kz*b)(cO?q>8^@scki1C$rnXwMc$ zWr43$|04~@9i+B<_nr>*pe&qu+Lyzvfbk-hQ73UWs5$Y57v8Gu0dk7|4pYI|*4R$e z!Si$FgtN^I4$k-0Yu18HWi3D;iR5!wAFDpb#6LON|Kk|8%%hA@k1S7r1&a001%gle zU=&P_2YTLtyS#=Eh)b~2tY-x~qVNZ^5DwTq$8uwXVqMFpItU^e4BqVprdk zzxk40o+Y-AnW4hc_`zt~Uj#*sr7-Q_N@e%blFr6Xn2A>|V9R8wWw^}2KVflHiW*Q+ z2>+CT0ZYC8=Gc-3JYcp;C!&jDg^{L2CpL)ZmFkSA#KCd9K9q1#S|G1PdR_73M2V^l z+T-$r_2oEcKd3}k1V`R?H?iZjb_tY2HTYg78Ir zF7~7wuO?_`#(K6hEeLlhkCR%XdG=Uhg&~UtIhCY&1i>SdM~rZOPS}i`+gr3)jCN08W2v-?6Q<}Xt%%Sb zTbc@-+M+1%gm%=0hJA!Xi5G3MY+CR8A^Gg76!RwaNn7-eSjSs@%`2oR|Ag~FE~!br znp1GCk+jeE`FVY8Y)%G@jgRKBHD}^=(^+cDJ)A>tHIK}{ zaOr)bFu{lPS$d)%-pBsxH}5b5U(7G|K=0*9nt2@;nseBS3ht#$+p;vr`~|n}0)@PD zR?*NSaT(C?^RV6cLx&F9sM6_M{Mm@DvnY3@3d$kWwJ_&%)%W9@#VeZns1wtVdD@{!Xbk_>L0aneqi&ZGf-5 z#jDik(qV}lPlcC;85pYB&{ZfsyCiY-E^~K8jL)TlgzbNDuCBCpZM{za*>D6Xj5BI* z?y*)iwC@`w2TtqQzM-(f&fYbTpF;8V=H_j6ex+vepuWGwl!{4iJ9btE(d;(Gta1@% zQb@1tJNLD*+~62goqtYdde-tlkUFpzlQ1oE>*42O#93CI!QS>iOe6jyvi{vYHpu+w zf%^DaI+r#No}fC=88;ia;X^VHY*EZAi_rDe5`>f0XTBRrx6cjMs5KQMZIBmvzSWP# zfcCwRg#kmD-ZFVbw4P0cD2nH>^{XdDGj1|vz6I5TAPf>j?*Xwt!op%HQ#_VcO$>Eo z>Uh#mtUgF7&r1?c5x^z^{I6wK>_)X;Zgf|5J1GKmT4+WBxS+J7v{+CF}`K zPpcH;GH#~2)UB=lNoLqRZ3XF0soeC_MZdbq=O>oziM!@fZT#D{EsST#Hw*OJGuzIC zBn@1AV~kERdFcxQS{QNi;t#aO&!Tv>_3%>*XN|&o@a+op1h(?s<0E1Wt1Ih9?X~Y) z5BGD_c=fwdXVpU;Rhv7Uv9N+irZHCB#~l0_^19M<1VbtD#1l$NIhqFfe_P(Py*l1E zY;=|vuOa3z4BRetA6^CI4BZT}EMZlj-57b`dnQ4mbSYIFXKYmUbO^A~+@MvE|0wm( z(PcN$z;1H>p37#r5xzSi4!~2=i{DPh)Xt``KZF8_FxvoAIhWz8@FqZl-ani9DlAcecGWx%oJ?p|9U}0IA)K118x&vV_R%~o!0Kp&mNQ5g(!GwOXE#bsC%vZyKP;> z+ZeF|Tgn6*vRgU(=W*L}k}`z!*i^VDL0;6+FFP0VGC%p#&no230<+D~{CTP`*2Ih! zKhP3_qIr8Me(W^=)nvrQF>Gk2+ugF^gy+33%ug36u%bCxv#1=(mKj!jAuL=>rlWnX zJ?!G)MAASQ*-%j%LPFqaY{Q+%F4;u^S`)|68XQZ}y6}clH^Vrz^mjZN`Pm6~1K;aHYr6Gyd{Cu?U^2`GB4@jg@saW(WnVTaZg8w%p z-_++`u_E>s^SSmKLE_zwAnti7PVL`=LW<-Xce0{#_H;v-qn!#$UwZ3SiU^-*8wySvxzhU2Pw9aDOY2H z`93#8=cyqJ#Hak55g4^XT71aW>mgy}+fkM~`)<3BwsQupUJf*!C8%M{U}yQKzz}0r zG@dqMs;anuhuzLi^u@vIa5APwvD|kdVO3{t&$3qp0c=T+%Kll9sS<1Xt zD!ft4Q=8NZXYzK$0)42uHC(ZyYo{fyn&k6&#KBcnv=0oze`V`E`T5Izw1D&_~EVOz+u^$lH~i(mJ<&9A6G4B%ba++u#o|}(Y77D(k_@TtuGaDBWM_9a7zll zzNV3Otk$=P32%CK8R2I%g!B7!0+{Ee`b6~nq0+&evWz^#U*?Zxf;Qd`VGS=V4{5$2 zwWrD-IGm{&n5JW8-L%u5CM*@-=_{Pzlp#kESF}ZDFdO}}vA3p0GYkD>*BwD_UkmJ| z#I$x#mY!Zh-yaR!(@eT5;P_C5@w3`}ZwVCpoqI)LOy`4OVQzdJopj#}dt3OQgXiBo zMk5&{qYD%bp)~YcEyAVupT9x&j4v zxu=@&=v{Kg6YUpXO1~M{8>v7U1SCD4mcuIX-4}HLr_&_(ox(E*vFaWos_={Tj~E-G zGS2O_KWz8!poVDsP~`QlI}sq3(EmDaKKW7o@@w`?>67>J>v*-plJA?1T-H z8>O$lc-8gPj|RP;GL*Y|-xHUb4^3$0SwK$X5!?LY+85FzuKOZ92qXIXaFamnm0X;Y zo~1o5#>}ik+1HJOH$HO;MantXGz8^^obYtcu46XQ#`i;uyC1zA z`$ck^lphkOrDX_}(zTrTuH>V>eb8ee^>{8Dr;!-@=~;42t*~U23#ID_ODGg^W{lAb zn=>q!<)<-PS>t)Zg0~?v;}^z__5dgX1q1NwgIj4p^l&7ecz!>uR1HZ*)^M1pqa}Kw zv$7PhM7Y5g;Aa&EGxO3;4)lErIHB76t<;n!OVkE7#}I$=36@Gb`_4G^6a&KK+<0g7 zN_InP5VuRDxkdx&$AhPx@ix1zthpvRDha*?70)HlO42YFzIv|VOqY^YJN$A#5elAkAut34M(%CqBdl6;iOvE z96u^JI7mn=BBKV1Hq%nq)LdvI&^9eqAIDXmo!=3gAm>Hs^Fj!Nnp($63aE)?q5r#E zp)KWNd~OA2-cLO}zJPCJg4h%$B5O_*#b@oFqg6Bly9&jJ4;GLfye)bKAuY;<#3m12 zE+o+oE3%$d4`^uweW-o5dXRNiq>`7TH3%agYN z;jH>7@iWb>hkHuit)mh<{+uFH@+`N?z^kaVWmFFdywtkRA*4ZL#ZOkI0#WW&Cebbe z&hDz{+Ey9BQhywTr`3q`n!CQ~ZOUW=O!S<7FGBRS(_Kg!&kL;V#F}?kGu&kSomyB} zQV{H;;I}l(Gr+*_;U+WLjn>0Lj5Qv_!bhpkOI@6 zE#o`WQ`29IKk|V4Dp>7n`r?NfPRcmP3!ua^o>=me1hX7@(Ow5?z0X}hvw@9X>%mji z_WSI&3;?y!ka>y?>~kluJP(%o!NBndw}jX!LvE1h!T~A?cr&i!07dhsRZ03|SrZz{ zsT!5hSE!1aEj0$Kd>~*Hr7SOsgfq{;^v?y?Wo;1 zcQh9NsG7VeV?Fo?arJl>vG@lR^#?St+7(;`b?}_s+FJq$qo&cL4V`yu?CiN_V$M=q z#5+|S^7n*LQ&_bd*Iv29`l0bzs#MqBK5|K@v@b%*kbiLrXn+iqTDji*#UNz}ovKRr zQJJc0Cfs)CUYc*WIHxM6U?wC}40&L1^vJ&Ur@m5Gu@B0U0uJ`%u%cvpYDJu3iqLqu zEE-J_-n$HXC~{U>+(Ao@KoQKWL+)hSHkTZuw^VAmd*S7^@&E;|pukk==&a z5D08!RZWvqv{_H4{yMvwSq(rYL&jGIzi6Pe!Oa)#R`+t zI^(|5S##1JKIUb()z0r3PF8%)*=RA)(E#_mw^M4e4$lyNLkjJ)?&UtKR53)zDK(oD zcuf_&T>euRYrDOr6|jY%5k)h!BUW4I`nS}r|E?Td>d;N8bx@uqYiCN3&a(*a({VIT zFns!<~4B*U;dO_3Mo6p9&$@29s z0R;wsMrGNKnvKA( z9UKj9$}>-n=j4a`Cwz{?@gvx=G8L8wRisB61UaMD7i{Y&+^y3as%nWaHVehWS%N&z zim#PZVL)g9egQ?AO8UL}d>8^TuPoU=S@Wq3jFtkS9cKFXMbMTR@2-qrpNWmlDWjU= zfAp^4h;vRs6vard`xgoc-*l|G>dxz;%Tim>I1S|&ufP;!MDTM~iaifm#yAF3XBFtf z=HEzR;d{0O16avj=9k zR#_D?OBnV;ItnWb13fQ0f~qMiA>r?qdwi1}!R}RWB(3ZqekUl`@Nb5X zem^M;PMDXH6#RIx+K3+^GOq%mR?ah9rNQV-s#^@slP;dKRg*yogzT7ju1iTd4t6ax z5Ki;!UUF$p_;UReU#~ubTu03sM-{wkeQtL=l4c%2hIx}_)eM!Ukt|aM-jXpxaP(ZK z(aQ`Bltbh0cv`yZ}q0DFr zsn1+^UX1%y*O-+say@^!;bhy<$uON5ZOfnh66#U_shhaCPAumrsUQxwYQ#rakM47@ zQYT`5#qNHs6|aoyEDNP;{klWytbe6sLtAA(LH{Yzygh0zD9zhy!r4zCf}Kh<=X3Lj zTPA_+wSU~Np(EG}SAJO8bI=5Lt{rBCjCz24(x!^}><@_B@|0EAk0$N?LzS1}#MWxYz$ zo7$r)O7Xl=9Pz!nAcK#Q)aiv;G(Zv&Q=p&PdG38$*OdOCAf&7I$K31M{fuKFwap>o z8ixjA+`veS%Gvr^R*Kk8 zt9&9qSox^2slfU-w*lwEp(apLPR*V2Brfv9gja_yfTx7rL$6aA0 z+7qwNe&VyaAZZmF$g0Xy$hF;OV|IJajE%jOoc{!ZK&N`&Ug;DlOl}hMo%H&ISQuOlCy{Px}6n09jkIZ^KWBv#F>K>Yu3N{KjKJ{qr!9xtuIYmM(_+$h^{X5L9Ix#5Gp43`t@P%$ zx-P6Rr~^P4OA>c~wUX{jITQa$SRIDu*^KN^N@t`$RMh@e@=`^e*i2HtRvPs0Qo;ZH z{C`agAG7sVH4-6JkKkKj1*pt0_Jik%8`FX_h?xG^pbc{8X4alz{^^~Jm(~qjD*)@A z!hiZ_6}SHm2wfI4gg!RFDMQ>_6>jXYN+5f2PnE7klI&MHyK}vml&3&FD3NRNqyi1@ z3!nFJiS1Uz(4B66!Z)X|@TQMLQnRt4{F^LOV*(;&odnAhbQDZ)zLt@k#qRb^hi6fA zG&Fb(B|@>-nyeO}N-Mxl9D*6Zts-_4IiU^wkK%NHJf?j&HU~Hn2j_vEqN5>U@J%%f z3;mHJ+O3Qs{FlM*cBz#iDz7Qjdn!j}>WnN3DbT9^8(=G#6bXp{Xh)FpYGn zqZhOxS-GSSPaSgj_A+XQMf_E8W*(E(#c%g*ZyJ(5T~A;Xq5+tc+AN>^$XLtH!Q5QM z-R&%UfxQ(wOz%e1LjrC)05B^>8{A5dkG95KA%<6IZK*JG+DvJiGA8{H8OBdR5wZ4ln?|#6 z7tk0`Y_m4qOI>?q1WS9_Rj03Vc(e_#5w04(pH`0(tcO=bt8x%=%fGWmomj{+UPo?G zFE&h-HRuV3xYmQOPQUYmnVV`eW~v9?e7>9i=zqw-o8fv`h%|z09 zX;YjPnqnrB~Q$@y70%lJoyrT-e<;~6)v8O=(ELMLfxP)rp2W>ejIxvwv{c+NuaOw zQZ3Z1=hQBG*Yiz`RVe#U7v2pJGq$n-yG3B-{u@Q zFMCYrFsX8BG$7KqY>e`ddHug3Dx8I5)O;w*JTwL~${^&Y|x22h_Jx2|--_ z-rp|cHzu+*A|CVADllB=Ei|x3Qt8gCoQQql?l2ujJy}rkR#H%!YM?N)S(QZz6cxU& z?BJ&Y7rm9*VE`@ao2}EwM!Mdy>NnS;?%`P3fS~v7*mfz=Iolz*XS@2?+7uj*S8+_8 zeraYbEHB0CL9Or8Do&v@;eDN3LO*{fyh>bor;O9}ODy_)^I{^iYLD*4M@JQee-+2; zZMSd#jfd2Kj`;tt$J#6rc5z7gIf-V0aO(;TCl}n}rwQA{a!W3oY{R~0jV7KH2O8i> z7>8T^pu_8M25zGTIi}}k>Dv{5K;&Hn)VOP<&j0FGc>tG?uPo|emKKZ;T>F2uccnp1 zCTTc`ipW5a`w)~v)QLey5yA~3azx~iLy4e^BLO3)91(@gfZ&J;mjZ$q1i2w1LV`vD zVkC$Nkz`CT9Fc(BM}hGf=Gjz?-wvMb99ZF+Rd&ohad$z< zR(WB&_-L21EnRPPoKuFsFGKth9c_=~b!%ILJM!^*4R}r6weUx&ubW@2Xux*pL1}}Z z*~G(?lybULY0Gf8`}>yg)ry*HZq-w`uq#kPF5ymz!L4rCW}nVpm$8(AjQi5O`+f+1 z=8dp9z;er*Wvs{@{8Hcu;}T2J4%2*l6JrXD?IuAc?sGt2d*sIGCHQ`XbXrNN-`6 z7GJL7=0m3lNUp~VW$brF=d%}Z^ex{5I#<6@BaWH2s2w(;3pm{1;!J!nXL0Q_Ye0He zFiOTc+i0WHpefw|l!r@Wz&bg~>9dl!^dI@p!!!e;xiZWfk6P1}pTLQ2a+oYaZQ_E6 zE1^T!v0M`Ro_F8j#E1Z9u*+@n!A_UV?yKbkRM`zm(b47?JTuQ@5y%4)BR*n9>5K|H zYXy?b2s)kQiI+V*_p4XNt$E4TwwZ5ZnF5tfDn+BdeKEL=?w1c&lOOgqCJe-hKzN-WyUA&T|DK%1h%n_||`eh5e(i z6jfr^PN|@kpA4~iQ#8i}M-@VOaWSvXRE+T-T*Musd4%BQfq!yhet2PB2^A9fMq8yh znu+((L1=L7Wy~kRqzDuTd1J{|1|3I#)f`V!`f#*?THT+<-B@z$qo%z=x7rKs_s+oeI=v?Rvu8cVRJ!suDdeX!vY`O;55f+PD#^Y5vi# z=9?LV1O4!vYiA&zmj6if7p+yc?isiLD^OB>&G8!2D#h!Yb{yqt*jsYyq;A^me@FD%fnwL1gtm8WXxLi1f#0` z&B%?R*mpTcli-^y{kBIs*;Yn<)DUX4=mZzu@!RGqw-R-xsCzpiGp`;$5)}Yd$xEju zJTHo;az$SRGHW-C+wPVNiX~WG@K?~|%5_G3-l`GN;=mHeS3M z%vYtS5)otBvrv=K3NBqqT~WEIHcMt`a0{J5F-=drLI!R{UqSceAc#td*~)g)pA*$@ zSw#T~5dkDrjkM!@@?1fu$+nW z*}W6FgHz3cKlDk?5>B-r?5HvX_BNH;K9g^BNCn z{UB{Od8tpw|Hv3N@)(S6=vUe25+Z3@Z%sTV6t1@!(08-yByywoFHRs14onr2sV3?{ z>M=_CxgovpPRxFnVc}butc2(iwkft8vR5F))L*)7%sNoI(Rb&fS#;7}U=LI)&KG`> z27r#g7jF9#-_783;eD_(GYg$Azj|q|fdfBj6a3SQam z?=F6VnWR;Ogsl-r=Pvu4C+nCP7lhHJo?daUi1x<3KsA)!i_bq0)9^yHKr>D7C7>P* zO*5tx&)6{s1F70pC6}8F(I<(Swx%%Y4Cjuv??jF5kcuJ1qcb$}dQ8!X*5JTWRxHfQNv%991wD&a` zKpyTcF|yGU$1mGvFE=bN81w+oJ{=-*@uo|?^9k(oz9W5;;FFoZ0_0h3$c|+&c|9~B zRmFqUETm8gUqOGI7(aDaMR65oiJ^oRr-%ziWevFDxFUwR7mPYqfm75cKTAnC^LpJsD^O!i%W_q3@A zh4vk+e&e!O7391LZAC~RsJhGmY6JkUc57-Du3=tS<-c-j=cDg=;EZEMv7ub$Ns>*F zQ(1Ef0Vs zBuOW<%~VhDQEGvff{e_l(xzsu;5$ZnyvbL6CE4sCni3=8D8Y<$ pk-nMSWWD^iaKpdS=UX~pKt=+E{`rWK`V&$2|33fQddhtL@K*ykL*)Pf diff --git a/ide/src/figures/OperationSkills/searchskill.jpg b/ide/src/figures/OperationSkills/searchskill.jpg deleted file mode 100644 index 651dbf8a9da0694b63e34f78edb25bc2969451c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11786 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 diff --git a/ide/src/figures/OperationSkills/shellconfig.jpg b/ide/src/figures/OperationSkills/shellconfig.jpg deleted file mode 100644 index 34ed6fffd537dc5dd712c288bba7d5ab30d6e5ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150390 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 diff --git a/ide/src/figures/OperationSkills/sqlselect.jpg b/ide/src/figures/OperationSkills/sqlselect.jpg deleted file mode 100644 index e72d9de77434ec7371e37a6e4b0df8afa2800587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145876 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 z�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 E9}KC7fB*mh diff --git a/ide/src/figures/OperationSkills/threadtree.jpg b/ide/src/figures/OperationSkills/threadtree.jpg deleted file mode 100644 index c5499d1218dca2d87697bed3b0f2863f66f441d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112832 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 diff --git a/ide/src/figures/OperationSkills/tracestop.jpg b/ide/src/figures/OperationSkills/tracestop.jpg deleted file mode 100644 index 4f95cbc47d9567f0ae6e8b799891b1c88ebdb832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89063 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 qyEr979UpBufDWu<0fHRwg(JVu|CPo3->FCW=g = new Map(); private static currentHdcClient: HdcClient; @@ -95,7 +95,7 @@ export class HdcDeviceManager { this.currentHdcClient = hdcClient; this.clientList.set(serialNumber, hdcClient); } - log(`device Usb connected : ${ connected }`); + log(`device Usb connected : ${connected}`); return connected; } else { log('device Usb connected failed: '); @@ -128,7 +128,6 @@ export class HdcDeviceManager { } } - /** * Execute shell on the currently connected device and return the result as a string * @@ -183,8 +182,9 @@ export class HdcDeviceManager { return Promise.reject('not select device'); } - public static startShell(resultCallBack: (res: DataMessage) => void): - ((keyboardEvent: KeyboardEvent | string) => void | undefined) | undefined { + public static startShell( + resultCallBack: (res: DataMessage) => void + ): ((keyboardEvent: KeyboardEvent | string) => void | undefined) | undefined { if (this.currentHdcClient) { const hdcShellStream = new HdcStream(this.currentHdcClient, false); this.shellInit(hdcShellStream, resultCallBack); @@ -240,7 +240,7 @@ export class HdcDeviceManager { } const lines = command.split('\r\n'); let processedCommand = ''; - lines.forEach(line => { + lines.forEach((line) => { if (line.endsWith('\\')) { line = line.slice(0, -1); processedCommand += line; @@ -260,7 +260,7 @@ export class HdcDeviceManager { public static async shellResultAsBlob(cmd: string, isSkipResult: boolean): Promise { if (this.currentHdcClient) { const hdcStream = new HdcStream(this.currentHdcClient, false); - log(`cmd is ${ cmd }`); + log(`cmd is ${cmd}`); await hdcStream.DoCommand(cmd); let finalBuffer; while (true) { @@ -297,10 +297,10 @@ export class HdcDeviceManager { let finalBuffer; if (this.currentHdcClient) { const hdcStream = new HdcStream(this.currentHdcClient, false); - await hdcStream.DoCommand(`${ HdcDeviceManager.FILE_RECV_PREFIX_STRING + filename } ./`); + await hdcStream.DoCommand(`${HdcDeviceManager.FILE_RECV_PREFIX_STRING + filename} ./`); if (!finalBuffer && hdcStream.fileSize > 0) { finalBuffer = new Uint8Array(hdcStream.fileSize); - log(`Uint8Array size is ${ finalBuffer.byteLength }`); + log(`Uint8Array size is ${finalBuffer.byteLength}`); } let offset = 0; while (true) { diff --git a/ide/src/hdc/hdcclient/HdcClient.ts b/ide/src/hdc/hdcclient/HdcClient.ts index 8899896c..241af4c1 100644 --- a/ide/src/hdc/hdcclient/HdcClient.ts +++ b/ide/src/hdc/hdcclient/HdcClient.ts @@ -50,7 +50,7 @@ export class HdcClient implements DataListener { async connectDevice(): Promise { debug('start Connect Device'); this.sessionId = Utils.getSessionId(); - log(`sessionId is ${ this.sessionId }`); + log(`sessionId is ${this.sessionId}`); // @ts-ignore let handShake: SessionHandShake = new SessionHandShake( HANDSHAKE_MESSAGE, @@ -77,9 +77,7 @@ export class HdcClient implements DataListener { this.handShakeSuccess(handBody); return true; } else { - log( - `session is not eq handShake?.sessionId is : ${ handShake?.sessionId } now session is ${ this.sessionId }` - ); + log(`session is not eq handShake?.sessionId is : ${handShake?.sessionId} now session is ${this.sessionId}`); return false; } } else { diff --git a/ide/src/hdc/hdcclient/HdcStream.ts b/ide/src/hdc/hdcclient/HdcStream.ts index 88c5d476..8f224979 100644 --- a/ide/src/hdc/hdcclient/HdcStream.ts +++ b/ide/src/hdc/hdcclient/HdcStream.ts @@ -29,7 +29,6 @@ export class HdcStream { private hdcClient: HdcClient; public fileSize: number = -1; - constructor(hdcClient: HdcClient, isStopCmd: boolean) { this.hdcClient = hdcClient; this.channelId = Utils.getLocalId(); @@ -46,7 +45,6 @@ export class HdcStream { return this.DoCommandRemote(formatCommand); } - public async DoCommandRemote(command: FormatCommand): Promise { switch (command.cmdFlag) { case HdcCommand.CMD_SHELL_INIT: diff --git a/ide/src/hdc/transmission/UsbTransmissionChannel.ts b/ide/src/hdc/transmission/UsbTransmissionChannel.ts index 4d212663..97651791 100644 --- a/ide/src/hdc/transmission/UsbTransmissionChannel.ts +++ b/ide/src/hdc/transmission/UsbTransmissionChannel.ts @@ -74,8 +74,7 @@ export class UsbTransmissionChannel implements TransmissionInterface { try { await this._device?.releaseInterface(this.interfaceNumber); await this._device?.close(); - } catch (e) { - } + } catch (e) {} this._device = null; } diff --git a/ide/src/icon.svg b/ide/src/icon.svg index 1cce6338..cb1ae914 100644 --- a/ide/src/icon.svg +++ b/ide/src/icon.svg @@ -1,1001 +1,1420 @@ - \ No newline at end of file diff --git a/ide/src/img/menu-cut.svg b/ide/src/img/menu-cut.svg index 5614cb11..77bd856f 100644 --- a/ide/src/img/menu-cut.svg +++ b/ide/src/img/menu-cut.svg @@ -1,10 +1,15 @@ - + scissors - - + + \ No newline at end of file diff --git a/ide/src/img/table_no_data.svg b/ide/src/img/table_no_data.svg index 344982cd..8cf80453 100644 --- a/ide/src/img/table_no_data.svg +++ b/ide/src/img/table_no_data.svg @@ -1,5 +1,6 @@ - + table_no_data @@ -93,16 +94,32 @@ - - - - + + + + - + - - - + + + diff --git a/ide/src/trace/SpApplication.ts b/ide/src/trace/SpApplication.ts index a7d37b0a..39d52e4c 100644 --- a/ide/src/trace/SpApplication.ts +++ b/ide/src/trace/SpApplication.ts @@ -61,24 +61,30 @@ export class SpApplication extends BaseElement { private static loadingProgress: number = 0; private static progressStep: number = 2; longTraceHeadMessageList: Array<{ - pageNum: number - data: ArrayBuffer + pageNum: number; + data: ArrayBuffer; }> = []; longTraceDataList: Array<{ - fileType: string - index: number - pageNum: number - startOffsetSize: number - endOffsetSize: number + fileType: string; + index: number; + pageNum: number; + startOffsetSize: number; + endOffsetSize: number; }> = []; - longTraceTypeMessageMap: Map> | undefined | null; + longTraceTypeMessageMap: + | Map< + number, + Array<{ + fileType: string; + startIndex: number; + endIndex: number; + size: number; + }> + > + | undefined + | null; static skinChange: Function | null | undefined = null; static skinChange2: Function | null | undefined = null; skinChangeArray: Array = []; @@ -915,15 +921,17 @@ export class SpApplication extends BaseElement { let headerStr = enc.decode(htraceData); let newFileName = fileName.substring(0, fileName.lastIndexOf('.')) + '.systrace'; let aElement = document.createElement('a'); - let rowTraceStr = Array.from(new Uint8Array(DbPool.sharedBuffer!.slice(0, 2))).map(byte => byte.toString(16).padStart(2, '0')).join(''); + let rowTraceStr = Array.from(new Uint8Array(DbPool.sharedBuffer!.slice(0, 2))) + .map((byte) => byte.toString(16).padStart(2, '0')) + .join(''); if (headerStr.indexOf('OHOSPROF') === 0 || rowTraceStr.indexOf('49df') === 0) { convertPool.submitWithName('getConvertData', (status: boolean, msg: string, results: Blob) => { aElement.href = URL.createObjectURL(results); aElement.download = newFileName; let timeoutId = 0; - aElement.addEventListener('click', ev => { + aElement.addEventListener('click', (ev) => { clearTimeout(timeoutId); - timeoutId = window.setTimeout(()=>{ + timeoutId = window.setTimeout(() => { restoreDownLoadIcons(); }, 2000); }); @@ -934,9 +942,9 @@ export class SpApplication extends BaseElement { aElement.href = URL.createObjectURL(new Blob([DbPool.sharedBuffer!])); aElement.download = newFileName; let txtTimeoutId = 0; - aElement.addEventListener('click', ev => { + aElement.addEventListener('click', (ev) => { clearTimeout(txtTimeoutId); - txtTimeoutId = window.setTimeout(()=>{ + txtTimeoutId = window.setTimeout(() => { restoreDownLoadIcons(); }, 2000); }); @@ -1078,90 +1086,138 @@ export class SpApplication extends BaseElement { threadPool.init('wasm').then(() => { let headUintArray = new Uint8Array(that.longTraceHeadMessageList.length * 1024); let headOffset = 0; - that.longTraceHeadMessageList = that.longTraceHeadMessageList.sort((leftMessage, rightMessage)=> leftMessage.pageNum - rightMessage.pageNum); + that.longTraceHeadMessageList = that.longTraceHeadMessageList.sort( + (leftMessage, rightMessage) => leftMessage.pageNum - rightMessage.pageNum + ); for (let index = 0; index < that.longTraceHeadMessageList.length; index++) { let currentUintArray = new Uint8Array(that.longTraceHeadMessageList[index].data); headUintArray.set(currentUintArray, headOffset); headOffset += currentUintArray.length; } - threadPool.submit('ts-cut-file', '', { - headArray: headUintArray, - timeStamp: timStamp, - splitFileInfo: that.longTraceTypeMessageMap?.get(0), - splitDataList: that.longTraceDataList - }, (res: Array) => { - if (that.longTraceHeadMessageList.length > 0) { - getTraceFileByPage(that.currentPageNum); - litSearch.style.marginLeft = '80px'; - let pageListDiv = that.shadowRoot?.querySelector('.page-number-list') as HTMLDivElement; - that.drawPageNumber(longTracePage, pageListDiv, that.longTraceHeadMessageList.length); - let previewButton: HTMLDivElement | null | undefined = that.shadowRoot?.querySelector('#preview-button'); - let nextButton: HTMLDivElement | null | undefined = that.shadowRoot?.querySelector('#next-button'); - if (previewButton) { - previewButton.style.pointerEvents = 'none'; - previewButton.style.opacity = '0.7'; - previewButton.addEventListener('click', () => { - if (!progressEL.loading) { + threadPool.submit( + 'ts-cut-file', + '', + { + headArray: headUintArray, + timeStamp: timStamp, + splitFileInfo: that.longTraceTypeMessageMap?.get(0), + splitDataList: that.longTraceDataList, + }, + (res: Array) => { + if (that.longTraceHeadMessageList.length > 0) { + getTraceFileByPage(that.currentPageNum); + litSearch.style.marginLeft = '80px'; + let pageListDiv = that.shadowRoot?.querySelector('.page-number-list') as HTMLDivElement; + that.drawPageNumber(longTracePage, pageListDiv, that.longTraceHeadMessageList.length); + let previewButton: HTMLDivElement | null | undefined = + that.shadowRoot?.querySelector('#preview-button'); + let nextButton: HTMLDivElement | null | undefined = + that.shadowRoot?.querySelector('#next-button'); + if (previewButton) { + previewButton.style.pointerEvents = 'none'; + previewButton.style.opacity = '0.7'; + previewButton.addEventListener('click', () => { + if (progressEL.loading) { + return; + } + if (that.currentPageNum > 1) { + that.currentPageNum--; + if (that.currentPageNum === 1) { + previewButton!.style.pointerEvents = 'none'; + nextButton!.style.pointerEvents = 'auto'; + previewButton!.style.opacity = '0.7'; + } else { + previewButton!.style.pointerEvents = 'auto'; + nextButton!.style.pointerEvents = 'none'; + previewButton!.style.opacity = '1'; + } + let previewElement = that.shadowRoot?.querySelector( + `.page-number[title='${that.currentPageNum}']` + ); + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + previewElement!.setAttribute('selected', ''); + progressEL.loading = true; + getTraceFileByPage(that.currentPageNum); + } + }); + } + if (nextButton && that.longTraceHeadMessageList.length === 1) { + nextButton.style.pointerEvents = 'none'; + nextButton.style.opacity = '0.7'; + } + nextButton!.addEventListener('click', () => { + if (progressEL.loading) { return; } - if (that.currentPageNum > 1) { - that.currentPageNum--; - if (that.currentPageNum === 1) { - previewButton!.style.pointerEvents = 'none'; - nextButton!.style.pointerEvents = 'auto'; - previewButton!.style.opacity = '0.7'; + if (that.currentPageNum < that.longTraceHeadMessageList.length) { + that.currentPageNum++; + if (that.currentPageNum === that.longTraceHeadMessageList.length) { + nextButton!.style.pointerEvents = 'none'; + previewButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '0.7'; } else { previewButton!.style.pointerEvents = 'auto'; - nextButton!.style.pointerEvents = 'none'; - previewButton!.style.opacity = '1'; + nextButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '1'; } - let previewElement = that.shadowRoot?.querySelector(`.page-number[title='${that.currentPageNum}']`); + let nextElement = that.shadowRoot?.querySelector( + `.page-number[title='${that.currentPageNum}']` + ); let querySelector = pageListDiv.querySelector('.page-number[selected]'); querySelector?.removeAttribute('selected'); - previewElement!.setAttribute('selected', ''); + nextElement!.setAttribute('selected', ''); progressEL.loading = true; getTraceFileByPage(that.currentPageNum); } }); - } - if (nextButton && that.longTraceHeadMessageList.length === 1) { - nextButton.style.pointerEvents = 'none'; - nextButton.style.opacity = '0.7'; - } - nextButton!.addEventListener('click', () => { - if (!progressEL.loading) { - return; - } - if (that.currentPageNum < that.longTraceHeadMessageList.length) { - that.currentPageNum++; - if (that.currentPageNum === that.longTraceHeadMessageList.length) { - nextButton!.style.pointerEvents = 'none'; - previewButton!.style.pointerEvents = 'auto'; - nextButton!.style.opacity = '0.7'; - } else { - previewButton!.style.pointerEvents = 'auto'; - nextButton!.style.pointerEvents = 'auto'; - nextButton!.style.opacity = '1'; + pageListDiv.querySelectorAll('div').forEach((divEL) => { + divEL.addEventListener('click', () => { + if (progressEL.loading) { + return; + } + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + divEL.setAttribute('selected', ''); + let selectPageNum = Number(divEL.textContent); + if (selectPageNum !== that.currentPageNum) { + that.currentPageNum = selectPageNum; + if (that.currentPageNum === that.longTraceHeadMessageList.length) { + nextButton!.style.pointerEvents = 'none'; + nextButton!.style.opacity = '0.7'; + } else { + nextButton!.style.pointerEvents = 'auto'; + nextButton!.style.opacity = '1'; + } + if (that.currentPageNum === 1) { + previewButton!.style.pointerEvents = 'none'; + previewButton!.style.opacity = '0.7'; + } else { + previewButton!.style.pointerEvents = 'auto'; + previewButton!.style.opacity = '1'; + } + progressEL.loading = true; + getTraceFileByPage(that.currentPageNum); + } + }); + }); + let pageInput = that.shadowRoot?.querySelector('.page-input'); + pageInput!.addEventListener('input', () => { + let value = pageInput!.value; + value = value.replace(/\D/g, ''); + if (value) { + value = Math.min(that.longTraceHeadMessageList.length, parseInt(value)).toString(); } - let nextElement = that.shadowRoot?.querySelector(`.page-number[title='${that.currentPageNum}']`); - let querySelector = pageListDiv.querySelector('.page-number[selected]'); - querySelector?.removeAttribute('selected'); - nextElement!.setAttribute('selected', ''); - progressEL.loading = true; - getTraceFileByPage(that.currentPageNum); - } - }); - pageListDiv.querySelectorAll('div').forEach(divEL => { - divEL.addEventListener('click', () => { - if (!progressEL.loading) { + pageInput!.value = value; + }); + let pageConfirmEl = that.shadowRoot?.querySelector('.confirm-button'); + pageConfirmEl!.addEventListener('click', () => { + if (progressEL.loading) { return; } - let querySelector = pageListDiv.querySelector('.page-number[selected]'); - querySelector?.removeAttribute('selected'); - divEL.setAttribute('selected', ''); - let selectPageNum = Number(divEL.textContent); - if (selectPageNum !== that.currentPageNum) { - that.currentPageNum = selectPageNum; + let pageIndex = Number(pageInput!.value); + if (pageIndex > 0 && pageIndex < that.longTraceHeadMessageList.length) { + that.currentPageNum = pageIndex; if (that.currentPageNum === that.longTraceHeadMessageList.length) { nextButton!.style.pointerEvents = 'none'; nextButton!.style.opacity = '0.7'; @@ -1176,52 +1232,20 @@ export class SpApplication extends BaseElement { previewButton!.style.pointerEvents = 'auto'; previewButton!.style.opacity = '1'; } + let nextElement = that.shadowRoot?.querySelector( + `.page-number[title='${that.currentPageNum}']` + ); + let querySelector = pageListDiv.querySelector('.page-number[selected]'); + querySelector?.removeAttribute('selected'); + nextElement!.setAttribute('selected', ''); progressEL.loading = true; getTraceFileByPage(that.currentPageNum); } }); - }); - let pageInput = that.shadowRoot?.querySelector('.page-input'); - pageInput!.addEventListener('input', () => { - let value = pageInput!.value; - value = value.replace(/\D/g, ''); - if (value) { - value = Math.min(that.longTraceHeadMessageList.length, parseInt(value)).toString(); - } - pageInput!.value = value; - }); - let pageConfirmEl = that.shadowRoot?.querySelector('.confirm-button'); - pageConfirmEl!.addEventListener('click', () => { - if (!progressEL.loading) { - return; - } - let pageIndex = Number(pageInput!.value); - if (pageIndex > 0 && pageIndex < that.longTraceHeadMessageList.length) { - that.currentPageNum = pageIndex; - if (that.currentPageNum === that.longTraceHeadMessageList.length) { - nextButton!.style.pointerEvents = 'none'; - nextButton!.style.opacity = '0.7'; - } else { - nextButton!.style.pointerEvents = 'auto'; - nextButton!.style.opacity = '1'; - } - if (that.currentPageNum === 1) { - previewButton!.style.pointerEvents = 'none'; - previewButton!.style.opacity = '0.7'; - } else { - previewButton!.style.pointerEvents = 'auto'; - previewButton!.style.opacity = '1'; - } - let nextElement = that.shadowRoot?.querySelector(`.page-number[title='${that.currentPageNum}']`); - let querySelector = pageListDiv.querySelector('.page-number[selected]'); - querySelector?.removeAttribute('selected'); - nextElement!.setAttribute('selected', ''); - progressEL.loading = true; - getTraceFileByPage(that.currentPageNum); - } - }); - } - }, 'long_trace'); + } + }, + 'long_trace' + ); }); } @@ -1240,52 +1264,89 @@ export class SpApplication extends BaseElement { } let indexedDbPageNum = pageNumber - 1; let maxTraceFileLength = 400 * 1024 * 1024; - let traceRange = IDBKeyRange.bound([that.pageTimStamp, 'trace', indexedDbPageNum], [that.pageTimStamp, 'trace', indexedDbPageNum], false, false); - LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, traceRange, 'QueryFileByPage').then(result => { - let traceData = indexedDataToBufferData(result); - let traceLength = traceData.byteLength; - let ebpfRange = IDBKeyRange.bound([that.pageTimStamp, 'ebpf_new', indexedDbPageNum], [that.pageTimStamp, 'ebpf_new', indexedDbPageNum], false, false); - let arkTsRange = IDBKeyRange.bound([that.pageTimStamp, 'arkts_new', indexedDbPageNum], [that.pageTimStamp, 'arkts_new', indexedDbPageNum], false, false); - let hiperfRange = IDBKeyRange.bound([that.pageTimStamp, 'hiperf_new', indexedDbPageNum], [that.pageTimStamp, 'hiperf_new', indexedDbPageNum], false, false); - Promise.all([ - LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, ebpfRange, 'QueryFileByPage'), - LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, arkTsRange, 'QueryFileByPage'), - LongTraceDBUtils.getInstance().indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, hiperfRange, 'QueryFileByPage') - ]).then(otherResult => { - let ebpfData = indexedDataToBufferData(otherResult[0]); - let arkTsData = indexedDataToBufferData(otherResult[1]); - let hiperfData = indexedDataToBufferData(otherResult[2]); - let traceArray = new Uint8Array(traceData); - let ebpfArray = new Uint8Array(ebpfData); - let arkTsArray = new Uint8Array(arkTsData); - let hiPerfArray = new Uint8Array(hiperfData); - let allOtherData = [ebpfData, arkTsData, hiperfData]; - let otherDataLength = traceLength + ebpfData.byteLength + arkTsData.byteLength + hiperfData.byteLength; - let fileName = `hiprofiler_long_trace_${indexedDbPageNum}.htrace`; - if (otherDataLength > maxTraceFileLength) { - if (traceLength > maxTraceFileLength) { - console.log('trace File too big'); + let traceRange = IDBKeyRange.bound( + [that.pageTimStamp, 'trace', indexedDbPageNum], + [that.pageTimStamp, 'trace', indexedDbPageNum], + false, + false + ); + LongTraceDBUtils.getInstance() + .indexedDBHelp.get(LongTraceDBUtils.getInstance().tableName, traceRange, 'QueryFileByPage') + .then((result) => { + let traceData = indexedDataToBufferData(result); + let traceLength = traceData.byteLength; + let ebpfRange = IDBKeyRange.bound( + [that.pageTimStamp, 'ebpf_new', indexedDbPageNum], + [that.pageTimStamp, 'ebpf_new', indexedDbPageNum], + false, + false + ); + let arkTsRange = IDBKeyRange.bound( + [that.pageTimStamp, 'arkts_new', indexedDbPageNum], + [that.pageTimStamp, 'arkts_new', indexedDbPageNum], + false, + false + ); + let hiperfRange = IDBKeyRange.bound( + [that.pageTimStamp, 'hiperf_new', indexedDbPageNum], + [that.pageTimStamp, 'hiperf_new', indexedDbPageNum], + false, + false + ); + Promise.all([ + LongTraceDBUtils.getInstance().indexedDBHelp.get( + LongTraceDBUtils.getInstance().tableName, + ebpfRange, + 'QueryFileByPage' + ), + LongTraceDBUtils.getInstance().indexedDBHelp.get( + LongTraceDBUtils.getInstance().tableName, + arkTsRange, + 'QueryFileByPage' + ), + LongTraceDBUtils.getInstance().indexedDBHelp.get( + LongTraceDBUtils.getInstance().tableName, + hiperfRange, + 'QueryFileByPage' + ), + ]).then((otherResult) => { + let ebpfData = indexedDataToBufferData(otherResult[0]); + let arkTsData = indexedDataToBufferData(otherResult[1]); + let hiperfData = indexedDataToBufferData(otherResult[2]); + let traceArray = new Uint8Array(traceData); + let ebpfArray = new Uint8Array(ebpfData); + let arkTsArray = new Uint8Array(arkTsData); + let hiPerfArray = new Uint8Array(hiperfData); + let allOtherData = [ebpfData, arkTsData, hiperfData]; + let otherDataLength = traceLength + ebpfData.byteLength + arkTsData.byteLength + hiperfData.byteLength; + let fileName = `hiprofiler_long_trace_${indexedDbPageNum}.htrace`; + if (otherDataLength > maxTraceFileLength) { + if (traceLength > maxTraceFileLength) { + console.log('trace File too big'); + } else { + let freeDataLength = maxTraceFileLength - traceLength; + let freeDataIndex = findFreeSizeAlgorithm( + [ebpfData.byteLength, arkTsData.byteLength, hiperfData.byteLength], + freeDataLength + ); + let finalData = [traceData]; + freeDataIndex.forEach((dataIndex) => { + finalData.push(allOtherData[dataIndex]); + }); + let fileBlob = new Blob(finalData); + const file = new File([fileBlob], fileName); + let fileSize = (file.size / 1048576).toFixed(1); + handleWasmMode(file, file.name, `${fileSize}M`, fileName); + } } else { - let freeDataLength = maxTraceFileLength - traceLength; - let freeDataIndex = findFreeSizeAlgorithm([ebpfData.byteLength, arkTsData.byteLength, hiperfData.byteLength], freeDataLength); - let finalData = [traceData]; - freeDataIndex.forEach(dataIndex => { - finalData.push(allOtherData[dataIndex]); - }); - let fileBlob = new Blob(finalData); + let fileBlob = new Blob([traceArray, ebpfArray, arkTsArray, hiPerfArray]); const file = new File([fileBlob], fileName); let fileSize = (file.size / 1048576).toFixed(1); - handleWasmMode(file, file.name, `${fileSize}M`, fileName); + handleWasmMode(file, file.name, `${fileSize}M`, file.name); } - } else { - let fileBlob = new Blob([traceArray, ebpfArray, arkTsArray, hiPerfArray]); - const file = new File([fileBlob], fileName); - let fileSize = (file.size / 1048576).toFixed(1); - handleWasmMode(file, file.name, `${fileSize}M`, file.name); - } - that.traceFileName = fileName; + that.traceFileName = fileName; + }); }); - }); } function indexedDataToBufferData(sourceData: any): ArrayBuffer { @@ -1479,7 +1540,7 @@ export class SpApplication extends BaseElement { let timStamp = new Date().getTime(); const readFiles = async (files: FileList) => { const promises = Array.from(files).map((file) => { - let types = that.fileTypeList.filter(type => file.name.toLowerCase().includes(type.toLowerCase())); + let types = that.fileTypeList.filter((type) => file.name.toLowerCase().includes(type.toLowerCase())); return readFile(file, types); }); return Promise.all(promises); @@ -1514,20 +1575,22 @@ export class SpApplication extends BaseElement { fr.onload = function () { let data = fr.result as ArrayBuffer; litSearch.setPercent('downloading file ', 10); - LongTraceDBUtils.getInstance().indexedDBHelp.add(LongTraceDBUtils.getInstance().tableName, { - 'buf': data, - 'id': `${fileType}_${timStamp}_${pageNumber}_${index}`, - 'fileType': fileType, - 'pageNum': pageNumber, - 'startOffset': offset, - 'endOffset': offset + sliceLen, - 'index': index, - 'timStamp': timStamp - }).then(() => { + LongTraceDBUtils.getInstance() + .indexedDBHelp.add(LongTraceDBUtils.getInstance().tableName, { + buf: data, + id: `${fileType}_${timStamp}_${pageNumber}_${index}`, + fileType: fileType, + pageNum: pageNumber, + startOffset: offset, + endOffset: offset + sliceLen, + index: index, + timStamp: timStamp, + }) + .then(() => { if (index === 1 && types.length === 0) { that.longTraceHeadMessageList.push({ pageNum: pageNumber, - data: data.slice(offset, 1024) + data: data.slice(offset, 1024), }); } that.longTraceDataList.push({ @@ -1535,15 +1598,14 @@ export class SpApplication extends BaseElement { fileType: fileType, pageNum: pageNumber, startOffsetSize: offset, - endOffsetSize: offset + sliceLen + endOffsetSize: offset + sliceLen, }); offset += sliceLen; if (offset < file.size) { index++; } continue_reading(); - } - ); + }); }; function continue_reading() { @@ -1898,25 +1960,26 @@ export class SpApplication extends BaseElement { fileName = path.split('/').reverse()[0]; } that.traceFileName = fileName; - showFileName = - fileName.lastIndexOf('.') == -1 ? fileName : fileName.substring(0, fileName.lastIndexOf('.')); + showFileName = fileName.lastIndexOf('.') == -1 ? fileName : fileName.substring(0, fileName.lastIndexOf('.')); TraceRow.rangeSelectObject = undefined; let localUrl = downloadLineFile ? `${window.location.origin}${localPath}` : urlParams.trace; - fetch(localUrl).then((res) => { - res.arrayBuffer().then((arrayBuf) => { - if (urlParams.local) { - URL.revokeObjectURL(localUrl); - } - let fileSize = (arrayBuf.byteLength / 1048576).toFixed(1); - postLog(fileName, fileSize); - document.title = `${showFileName} (${fileSize}M)`; - info('Parse trace using wasm mode '); - handleWasmMode(new File([arrayBuf], fileName), showFileName, fileSize, fileName); + fetch(localUrl) + .then((res) => { + res.arrayBuffer().then((arrayBuf) => { + if (urlParams.local) { + URL.revokeObjectURL(localUrl); + } + let fileSize = (arrayBuf.byteLength / 1048576).toFixed(1); + postLog(fileName, fileSize); + document.title = `${showFileName} (${fileSize}M)`; + info('Parse trace using wasm mode '); + handleWasmMode(new File([arrayBuf], fileName), showFileName, fileSize, fileName); + }); + }) + .catch((e) => { + const firstQuestionMarkIndex = window.location.href.indexOf('?'); + location.replace(window.location.href.substring(0, firstQuestionMarkIndex)); }); - }).catch((e) => { - const firstQuestionMarkIndex = window.location.href.indexOf('?'); - location.replace(window.location.href.substring(0, firstQuestionMarkIndex)); - }); }); } else { openMenu(true); @@ -1936,9 +1999,11 @@ export class SpApplication extends BaseElement { } if (index === 5) { element.textContent = '...'; + element.title = '...' } if (index === 6) { element.textContent = `${maxPageNumber}`; + element.title = `${maxPageNumber}`; } pageListDiv.appendChild(element); } @@ -2101,7 +2166,11 @@ export class SpApplication extends BaseElement { traceName = traceName; } let blobUrl = URL.createObjectURL(new Blob([cutBuffer!])); - window.open(`index.html?link=true&local=true&traceName=${traceName}_cut_${cutLeftTs}${fileType}&trace=${encodeURIComponent(blobUrl)}`); + window.open( + `index.html?link=true&local=true&traceName=${traceName}_cut_${cutLeftTs}${fileType}&trace=${encodeURIComponent( + blobUrl + )}` + ); } else { litSearch.setPercent(msg, -1); window.setTimeout(() => { diff --git a/ide/src/trace/bean/BoxSelection.ts b/ide/src/trace/bean/BoxSelection.ts index e8cc68ca..51141565 100644 --- a/ide/src/trace/bean/BoxSelection.ts +++ b/ide/src/trace/bean/BoxSelection.ts @@ -83,14 +83,14 @@ export class SelectionParam { frameSpacing: Array = []; jsCpuProfilerData: Array = []; gpu: { - gl: boolean, - gpuTotal: boolean, - gpuWindow: boolean + gl: boolean; + gpuTotal: boolean; + gpuWindow: boolean; } = { gl: false, gpuWindow: false, - gpuTotal: false - } + gpuTotal: false, + }; purgeableTotalAbility: Array = []; purgeableTotalVM: Array = []; purgeablePinAbility: Array = []; diff --git a/ide/src/trace/bean/CpuFreqStruct.ts b/ide/src/trace/bean/CpuFreqStruct.ts index 2fa2526a..eb76553d 100644 --- a/ide/src/trace/bean/CpuFreqStruct.ts +++ b/ide/src/trace/bean/CpuFreqStruct.ts @@ -37,8 +37,7 @@ export class CpuFreqStruct extends BaseStruct { freqBeanStructCanvasCtx.lineWidth = 1; freqBeanStructCanvasCtx.globalAlpha = 0.6; let freqBeanStructDrawHeight: number = Math.floor( - ((freqBeanStruct.value || 0) * (freqBeanStruct.frame.height || 0) * 1.0) / - CpuFreqStruct.maxFreq + ((freqBeanStruct.value || 0) * (freqBeanStruct.frame.height || 0) * 1.0) / CpuFreqStruct.maxFreq ); freqBeanStructCanvasCtx.fillRect( freqBeanStruct.frame.x, @@ -73,8 +72,7 @@ export class CpuFreqStruct extends BaseStruct { freqBeanStructCanvasCtx.globalAlpha = 0.6; freqBeanStructCanvasCtx.lineWidth = 1; let drawHeight: number = Math.floor( - ((freqBeanStruct.value || 0) * (freqBeanStruct.frame.height || 0)) / - CpuFreqStruct.maxFreq + ((freqBeanStruct.value || 0) * (freqBeanStruct.frame.height || 0)) / CpuFreqStruct.maxFreq ); freqBeanStructCanvasCtx.fillRect( freqBeanStruct.frame.x, @@ -87,7 +85,6 @@ export class CpuFreqStruct extends BaseStruct { freqBeanStructCanvasCtx.globalAlpha = 1.0; freqBeanStructCanvasCtx.lineWidth = 1; } - } const textPadding = 2; diff --git a/ide/src/trace/bean/CpuStruct.ts b/ide/src/trace/bean/CpuStruct.ts index 365efaec..5a6752cf 100644 --- a/ide/src/trace/bean/CpuStruct.ts +++ b/ide/src/trace/bean/CpuStruct.ts @@ -40,11 +40,18 @@ export class CpuStruct extends BaseStruct { if (cpuBeanStruct.frame) { let cpuBeanStructWidth = cpuBeanStruct.frame.width || 0; if (cpuBeanStruct.processId === CpuStruct.hoverCpuStruct?.processId || !CpuStruct.hoverCpuStruct) { - cpuBeanStructCanvasCtx.fillStyle = ColorUtils.colorForTid((cpuBeanStruct.processId || 0) > 0 ? cpuBeanStruct.processId || 0 : cpuBeanStruct.tid || 0); + cpuBeanStructCanvasCtx.fillStyle = ColorUtils.colorForTid( + (cpuBeanStruct.processId || 0) > 0 ? cpuBeanStruct.processId || 0 : cpuBeanStruct.tid || 0 + ); } else { cpuBeanStructCanvasCtx.fillStyle = '#e0e0e0'; } - cpuBeanStructCanvasCtx.fillRect(cpuBeanStruct.frame.x, cpuBeanStruct.frame.y, cpuBeanStructWidth, cpuBeanStruct.frame.height); + cpuBeanStructCanvasCtx.fillRect( + cpuBeanStruct.frame.x, + cpuBeanStruct.frame.y, + cpuBeanStructWidth, + cpuBeanStruct.frame.height + ); if (cpuBeanStructWidth > textPadding * 2) { let cpuBeanProcess = `${cpuBeanStruct.processName || 'Process'} [${cpuBeanStruct.processId}]`; let cpuBeanThread = `${cpuBeanStruct.name || 'Thread'} [${cpuBeanStruct.tid}]`; @@ -55,30 +62,49 @@ export class CpuStruct extends BaseStruct { cpuBeanStructCanvasCtx.fillStyle = '#ffffff'; let y = cpuBeanStruct.frame.height / 2 + cpuBeanStruct.frame.y; if (cpuBeanProcessMeasure.width < cpuBeanStructWidth - textPadding * 2) { - let x1 = Math.floor(cpuBeanStructWidth / 2 - cpuBeanProcessMeasure.width / 2 + cpuBeanStruct.frame.x + textPadding); + let x1 = Math.floor( + cpuBeanStructWidth / 2 - cpuBeanProcessMeasure.width / 2 + cpuBeanStruct.frame.x + textPadding + ); cpuBeanStructCanvasCtx.textBaseline = 'bottom'; cpuBeanStructCanvasCtx.fillText(cpuBeanProcess, x1, y, cpuBeanStructWidth - textPadding * 2); } else if (cpuBeanStructWidth - textPadding * 2 > cpuBeanProcessCharWidth * 4) { let chatNum = (cpuBeanStructWidth - textPadding * 2) / cpuBeanProcessCharWidth; let x1 = cpuBeanStruct.frame.x + textPadding; cpuBeanStructCanvasCtx.textBaseline = 'bottom'; - cpuBeanStructCanvasCtx.fillText(cpuBeanProcess.substring(0, chatNum - 4) + '...', x1, y, cpuBeanStructWidth - textPadding * 2); + cpuBeanStructCanvasCtx.fillText( + cpuBeanProcess.substring(0, chatNum - 4) + '...', + x1, + y, + cpuBeanStructWidth - textPadding * 2 + ); } if (cpuBeanThreadMeasure.width < cpuBeanStructWidth - textPadding * 2) { cpuBeanStructCanvasCtx.textBaseline = 'top'; - let x2 = Math.floor(cpuBeanStructWidth / 2 - cpuBeanThreadMeasure.width / 2 + cpuBeanStruct.frame.x + textPadding); + let x2 = Math.floor( + cpuBeanStructWidth / 2 - cpuBeanThreadMeasure.width / 2 + cpuBeanStruct.frame.x + textPadding + ); cpuBeanStructCanvasCtx.fillText(cpuBeanThread, x2, y + 2, cpuBeanStructWidth - textPadding * 2); } else if (cpuBeanStructWidth - textPadding * 2 > cpuBeanThreadCharWidth * 4) { let chatNum = (cpuBeanStructWidth - textPadding * 2) / cpuBeanThreadCharWidth; let x1 = cpuBeanStruct.frame.x + textPadding; cpuBeanStructCanvasCtx.textBaseline = 'top'; - cpuBeanStructCanvasCtx.fillText(cpuBeanThread.substring(0, chatNum - 4) + '...', x1, y + 2, cpuBeanStructWidth - textPadding * 2); + cpuBeanStructCanvasCtx.fillText( + cpuBeanThread.substring(0, chatNum - 4) + '...', + x1, + y + 2, + cpuBeanStructWidth - textPadding * 2 + ); } } if (CpuStruct.selectCpuStruct && CpuStruct.equals(CpuStruct.selectCpuStruct, cpuBeanStruct)) { cpuBeanStructCanvasCtx.strokeStyle = '#232c5d'; cpuBeanStructCanvasCtx.lineWidth = 2; - cpuBeanStructCanvasCtx.strokeRect(cpuBeanStruct.frame.x, cpuBeanStruct.frame.y, cpuBeanStructWidth - 2, cpuBeanStruct.frame.height); + cpuBeanStructCanvasCtx.strokeRect( + cpuBeanStruct.frame.x, + cpuBeanStruct.frame.y, + cpuBeanStructWidth - 2, + cpuBeanStruct.frame.height + ); } } } diff --git a/ide/src/trace/bean/FpsStruct.ts b/ide/src/trace/bean/FpsStruct.ts index 793cd20c..bd705aed 100644 --- a/ide/src/trace/bean/FpsStruct.ts +++ b/ide/src/trace/bean/FpsStruct.ts @@ -35,30 +35,62 @@ export class FpsStruct extends BaseStruct { if (fpsBeanStructData.startNS === FpsStruct.hoverFpsStruct?.startNS) { fpsBeanStructCanvasCtx.lineWidth = 1; fpsBeanStructCanvasCtx.globalAlpha = 0.6; - let drawHeight: number = ((fpsBeanStructData.fps || 0) * (fpsBeanStructData.frame.height || 0) * 1.0) / FpsStruct.maxFps; - fpsBeanStructCanvasCtx.fillRect(fpsBeanStructData.frame.x, fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight, fpsBeanWidth, drawHeight); + let drawHeight: number = + ((fpsBeanStructData.fps || 0) * (fpsBeanStructData.frame.height || 0) * 1.0) / FpsStruct.maxFps; + fpsBeanStructCanvasCtx.fillRect( + fpsBeanStructData.frame.x, + fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight, + fpsBeanWidth, + drawHeight + ); fpsBeanStructCanvasCtx.beginPath(); - fpsBeanStructCanvasCtx.arc(fpsBeanStructData.frame.x, fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight, 3, 0, 2 * Math.PI, true); + fpsBeanStructCanvasCtx.arc( + fpsBeanStructData.frame.x, + fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight, + 3, + 0, + 2 * Math.PI, + true + ); fpsBeanStructCanvasCtx.fill(); fpsBeanStructCanvasCtx.globalAlpha = 1.0; fpsBeanStructCanvasCtx.stroke(); fpsBeanStructCanvasCtx.beginPath(); - fpsBeanStructCanvasCtx.moveTo(fpsBeanStructData.frame.x + 3, fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight); + fpsBeanStructCanvasCtx.moveTo( + fpsBeanStructData.frame.x + 3, + fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight + ); fpsBeanStructCanvasCtx.lineWidth = 3; - fpsBeanStructCanvasCtx.lineTo(fpsBeanStructData.frame.x + fpsBeanWidth, fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight); + fpsBeanStructCanvasCtx.lineTo( + fpsBeanStructData.frame.x + fpsBeanWidth, + fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight + ); fpsBeanStructCanvasCtx.stroke(); } else { fpsBeanStructCanvasCtx.globalAlpha = 0.6; fpsBeanStructCanvasCtx.lineWidth = 1; - let drawHeight: number = ((fpsBeanStructData.fps || 0) * (fpsBeanStructData.frame.height || 0) * 1.0) / FpsStruct.maxFps; - fpsBeanStructCanvasCtx.fillRect(fpsBeanStructData.frame.x, fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight, fpsBeanWidth, drawHeight); + let drawHeight: number = + ((fpsBeanStructData.fps || 0) * (fpsBeanStructData.frame.height || 0) * 1.0) / FpsStruct.maxFps; + fpsBeanStructCanvasCtx.fillRect( + fpsBeanStructData.frame.x, + fpsBeanStructData.frame.y + fpsBeanStructData.frame.height - drawHeight, + fpsBeanWidth, + drawHeight + ); } } fpsBeanStructCanvasCtx.globalAlpha = 1.0; fpsBeanStructCanvasCtx.lineWidth = 1; } - static setFrame(fpsBeanStructNode: FpsStruct, fpsBeanFramePadding: number, startNS: number, endNS: number, totalNS: number, frame: Rect) { + static setFrame( + fpsBeanStructNode: FpsStruct, + fpsBeanFramePadding: number, + startNS: number, + endNS: number, + totalNS: number, + frame: Rect + ) { let fpsBeanStructX1: number, fpsBeanStructX2: number; if ((fpsBeanStructNode.startNS || 0) < startNS) { fpsBeanStructX1 = 0; @@ -68,7 +100,13 @@ export class FpsStruct extends BaseStruct { if ((fpsBeanStructNode.startNS || 0) + (fpsBeanStructNode.dur || 0) > endNS) { fpsBeanStructX2 = frame.width; } else { - fpsBeanStructX2 = ns2x((fpsBeanStructNode.startNS || 0) + (fpsBeanStructNode.dur || 0), startNS, endNS, totalNS, frame); + fpsBeanStructX2 = ns2x( + (fpsBeanStructNode.startNS || 0) + (fpsBeanStructNode.dur || 0), + startNS, + endNS, + totalNS, + frame + ); } let getV: number = fpsBeanStructX2 - fpsBeanStructX1 <= 1 ? 1 : fpsBeanStructX2 - fpsBeanStructX1; let rectangle: Rect = new Rect( diff --git a/ide/src/trace/bean/FrameChartStruct.ts b/ide/src/trace/bean/FrameChartStruct.ts index cfaff1d2..cb93632d 100644 --- a/ide/src/trace/bean/FrameChartStruct.ts +++ b/ide/src/trace/bean/FrameChartStruct.ts @@ -168,4 +168,4 @@ function getHeatColor(widthPercentage: number): string { function isHover(data: ChartStruct): boolean { return ChartStruct.hoverFuncStruct === data; -} \ No newline at end of file +} diff --git a/ide/src/trace/bean/FrameComponentBean.ts b/ide/src/trace/bean/FrameComponentBean.ts index fdc9476b..f021f861 100644 --- a/ide/src/trace/bean/FrameComponentBean.ts +++ b/ide/src/trace/bean/FrameComponentBean.ts @@ -36,4 +36,4 @@ export interface DeviceStruct { physicalWidth: number; physicalHeight: number; physicalFrameRate: number; -} \ No newline at end of file +} diff --git a/ide/src/trace/bean/FuncStruct.ts b/ide/src/trace/bean/FuncStruct.ts index 974a4c45..ab073cd3 100644 --- a/ide/src/trace/bean/FuncStruct.ts +++ b/ide/src/trace/bean/FuncStruct.ts @@ -38,17 +38,33 @@ export class FuncStruct extends BaseStruct { static draw(funcBeanStructCanvasCtx: CanvasRenderingContext2D, funcBeanStruct: FuncStruct) { if (funcBeanStruct.frame) { - if (funcBeanStruct.dur == undefined || funcBeanStruct.dur == null || funcBeanStruct.dur == 0 || FuncStruct.isBinder(funcBeanStruct)) { + if ( + funcBeanStruct.dur == undefined || + funcBeanStruct.dur == null || + funcBeanStruct.dur == 0 || + FuncStruct.isBinder(funcBeanStruct) + ) { } else { - funcBeanStructCanvasCtx.fillStyle = ColorUtils.FUNC_COLOR[funcBeanStruct.depth || 0 % ColorUtils.FUNC_COLOR.length]; + funcBeanStructCanvasCtx.fillStyle = + ColorUtils.FUNC_COLOR[funcBeanStruct.depth || 0 % ColorUtils.FUNC_COLOR.length]; let miniHeight = 20; - funcBeanStructCanvasCtx.fillRect(funcBeanStruct.frame.x, funcBeanStruct.frame.y, funcBeanStruct.frame.width, miniHeight - padding * 2); + funcBeanStructCanvasCtx.fillRect( + funcBeanStruct.frame.x, + funcBeanStruct.frame.y, + funcBeanStruct.frame.width, + miniHeight - padding * 2 + ); funcBeanStructCanvasCtx.fillStyle = '#fff'; drawString(funcBeanStructCanvasCtx, funcBeanStruct.funName || '', 5, funcBeanStruct.frame, funcBeanStruct); if (FuncStruct.isSelected(funcBeanStruct)) { funcBeanStructCanvasCtx.strokeStyle = '#000'; funcBeanStructCanvasCtx.lineWidth = 1; - funcBeanStructCanvasCtx.strokeRect(funcBeanStruct.frame.x, funcBeanStruct.frame.y, funcBeanStruct.frame.width, miniHeight - padding * 2); + funcBeanStructCanvasCtx.strokeRect( + funcBeanStruct.frame.x, + funcBeanStruct.frame.y, + funcBeanStruct.frame.width, + miniHeight - padding * 2 + ); } } } diff --git a/ide/src/trace/bean/HeapStruct.ts b/ide/src/trace/bean/HeapStruct.ts index 3705d398..db3d89de 100644 --- a/ide/src/trace/bean/HeapStruct.ts +++ b/ide/src/trace/bean/HeapStruct.ts @@ -35,23 +35,50 @@ export class HeapStruct extends BaseStruct { if (heapBeanData.startTime === HeapStruct.hoverHeapStruct?.startTime) { heapBeanStructCanvasCtx.lineWidth = 1; heapBeanStructCanvasCtx.globalAlpha = 0.6; - let drawHeight: number = Math.ceil(((heapBeanData.heapsize || 0) * (heapBeanData.frame.height || 0)) / heapBeanData.maxHeapSize); - heapBeanStructCanvasCtx.fillRect(heapBeanData.frame.x, heapBeanData.frame.y + heapBeanData.frame.height - drawHeight, width, drawHeight); + let drawHeight: number = Math.ceil( + ((heapBeanData.heapsize || 0) * (heapBeanData.frame.height || 0)) / heapBeanData.maxHeapSize + ); + heapBeanStructCanvasCtx.fillRect( + heapBeanData.frame.x, + heapBeanData.frame.y + heapBeanData.frame.height - drawHeight, + width, + drawHeight + ); heapBeanStructCanvasCtx.beginPath(); - heapBeanStructCanvasCtx.arc(heapBeanData.frame.x, heapBeanData.frame.y + heapBeanData.frame.height - drawHeight, 3, 0, 2 * Math.PI, true); + heapBeanStructCanvasCtx.arc( + heapBeanData.frame.x, + heapBeanData.frame.y + heapBeanData.frame.height - drawHeight, + 3, + 0, + 2 * Math.PI, + true + ); heapBeanStructCanvasCtx.fill(); heapBeanStructCanvasCtx.globalAlpha = 1.0; heapBeanStructCanvasCtx.stroke(); heapBeanStructCanvasCtx.beginPath(); - heapBeanStructCanvasCtx.moveTo(heapBeanData.frame.x + 3, heapBeanData.frame.y + heapBeanData.frame.height - drawHeight); + heapBeanStructCanvasCtx.moveTo( + heapBeanData.frame.x + 3, + heapBeanData.frame.y + heapBeanData.frame.height - drawHeight + ); heapBeanStructCanvasCtx.lineWidth = 3; - heapBeanStructCanvasCtx.lineTo(heapBeanData.frame.x + width, heapBeanData.frame.y + heapBeanData.frame.height - drawHeight); + heapBeanStructCanvasCtx.lineTo( + heapBeanData.frame.x + width, + heapBeanData.frame.y + heapBeanData.frame.height - drawHeight + ); heapBeanStructCanvasCtx.stroke(); } else { heapBeanStructCanvasCtx.globalAlpha = 0.6; heapBeanStructCanvasCtx.lineWidth = 1; - let drawHeight: number = Math.ceil(((heapBeanData.heapsize || 0) * (heapBeanData.frame.height || 0)) / heapBeanData.maxHeapSize); - heapBeanStructCanvasCtx.fillRect(heapBeanData.frame.x, heapBeanData.frame.y + heapBeanData.frame.height - drawHeight, width, drawHeight); + let drawHeight: number = Math.ceil( + ((heapBeanData.heapsize || 0) * (heapBeanData.frame.height || 0)) / heapBeanData.maxHeapSize + ); + heapBeanStructCanvasCtx.fillRect( + heapBeanData.frame.x, + heapBeanData.frame.y + heapBeanData.frame.height - drawHeight, + width, + drawHeight + ); } } heapBeanStructCanvasCtx.globalAlpha = 1.0; diff --git a/ide/src/trace/bean/MemoryConfig.ts b/ide/src/trace/bean/MemoryConfig.ts index 014b1f03..68ad163d 100644 --- a/ide/src/trace/bean/MemoryConfig.ts +++ b/ide/src/trace/bean/MemoryConfig.ts @@ -32,6 +32,6 @@ export class MemoryConfig { this.iPid = iPid; this.processName = processName; this.interval = interval; - this.snapshotDur = (interval * 1000 * 1000) / 5 + this.snapshotDur = (interval * 1000 * 1000) / 5; } } diff --git a/ide/src/trace/bean/PerfProfile.ts b/ide/src/trace/bean/PerfProfile.ts index 2f9dcbed..de3ba331 100644 --- a/ide/src/trace/bean/PerfProfile.ts +++ b/ide/src/trace/bean/PerfProfile.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import { ChartStruct } from "../bean/FrameChartStruct.js"; +import { ChartStruct } from '../bean/FrameChartStruct.js'; export class PerfFile { path: string = ''; diff --git a/ide/src/trace/bean/ProcessMemStruct.ts b/ide/src/trace/bean/ProcessMemStruct.ts index 9d7aa90c..ce71a220 100644 --- a/ide/src/trace/bean/ProcessMemStruct.ts +++ b/ide/src/trace/bean/ProcessMemStruct.ts @@ -38,26 +38,52 @@ export class ProcessMemStruct extends BaseStruct { processMemBeanStructCanvasCtx.lineWidth = 1; processMemBeanStructCanvasCtx.globalAlpha = 0.6; let drawHeight: number = Math.floor( - ((processMemBeanStructData.value || 0) * (processMemBeanStructData.frame.height || 0) * 1.0) / (processMemBeanStructData.maxValue || 0) + ((processMemBeanStructData.value || 0) * (processMemBeanStructData.frame.height || 0) * 1.0) / + (processMemBeanStructData.maxValue || 0) + ); + processMemBeanStructCanvasCtx.fillRect( + processMemBeanStructData.frame.x, + processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight, + width, + drawHeight ); - processMemBeanStructCanvasCtx.fillRect(processMemBeanStructData.frame.x, processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight, width, drawHeight); processMemBeanStructCanvasCtx.beginPath(); - processMemBeanStructCanvasCtx.arc(processMemBeanStructData.frame.x, processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight, 3, 0, 2 * Math.PI, true); + processMemBeanStructCanvasCtx.arc( + processMemBeanStructData.frame.x, + processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight, + 3, + 0, + 2 * Math.PI, + true + ); processMemBeanStructCanvasCtx.fill(); processMemBeanStructCanvasCtx.globalAlpha = 1.0; processMemBeanStructCanvasCtx.stroke(); processMemBeanStructCanvasCtx.beginPath(); - processMemBeanStructCanvasCtx.moveTo(processMemBeanStructData.frame.x + 3, processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight); + processMemBeanStructCanvasCtx.moveTo( + processMemBeanStructData.frame.x + 3, + processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight + ); processMemBeanStructCanvasCtx.lineWidth = 3; - processMemBeanStructCanvasCtx.lineTo(processMemBeanStructData.frame.x + width, processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight); + processMemBeanStructCanvasCtx.lineTo( + processMemBeanStructData.frame.x + width, + processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight + ); processMemBeanStructCanvasCtx.stroke(); } else { processMemBeanStructCanvasCtx.fillStyle = ColorUtils.colorForTid(processMemBeanStructData.maxValue || 0); processMemBeanStructCanvasCtx.strokeStyle = ColorUtils.colorForTid(processMemBeanStructData.maxValue || 0); processMemBeanStructCanvasCtx.globalAlpha = 0.6; processMemBeanStructCanvasCtx.lineWidth = 1; - let drawHeight: number = ((processMemBeanStructData.value || 0) * (processMemBeanStructData.frame.height || 0) * 1.0) / (processMemBeanStructData.maxValue || 1); - processMemBeanStructCanvasCtx.fillRect(processMemBeanStructData.frame.x, processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight, width, drawHeight); + let drawHeight: number = + ((processMemBeanStructData.value || 0) * (processMemBeanStructData.frame.height || 0) * 1.0) / + (processMemBeanStructData.maxValue || 1); + processMemBeanStructCanvasCtx.fillRect( + processMemBeanStructData.frame.x, + processMemBeanStructData.frame.y + processMemBeanStructData.frame.height - drawHeight, + width, + drawHeight + ); } } processMemBeanStructCanvasCtx.globalAlpha = 1.0; diff --git a/ide/src/trace/bean/SearchFuncBean.ts b/ide/src/trace/bean/SearchFuncBean.ts index 34193004..40bfb5ba 100644 --- a/ide/src/trace/bean/SearchFuncBean.ts +++ b/ide/src/trace/bean/SearchFuncBean.ts @@ -40,4 +40,4 @@ export class SearchSdkBean { name: string | undefined; rowType: string | undefined | null; rowParentId: string | undefined | null; -} \ No newline at end of file +} diff --git a/ide/src/trace/bean/SmapsStruct.ts b/ide/src/trace/bean/SmapsStruct.ts index 7c9edd3b..d6936ee3 100644 --- a/ide/src/trace/bean/SmapsStruct.ts +++ b/ide/src/trace/bean/SmapsStruct.ts @@ -1,4 +1,3 @@ - /* * Copyright (C) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -24,17 +23,17 @@ export class Smaps { path: string = ''; size: number = 0; sizeStr: string = ''; - count:number = 0; + count: number = 0; rss: number = 0; rssStr: string = ''; pss: number = 0; pssStr: string = ''; - sharedClean : number = 0; - sharedDirty:number = 0; - privateClean:number = 0; - privateDirty:number = 0; - swap:number = 0; - swapPss:number = 0; + sharedClean: number = 0; + sharedDirty: number = 0; + privateClean: number = 0; + privateDirty: number = 0; + swap: number = 0; + swapPss: number = 0; resideStr: string = ''; } export class SmapsTreeObj { @@ -49,28 +48,28 @@ export class SmapsTreeObj { path: any = ''; size: number = 0; sizeStr: string = ''; - sizePro:number = 0; - sizeProStr :string = ''; - count :number = 0 ; + sizePro: number = 0; + sizeProStr: string = ''; + count: number = 0; rss: number = 0; rssStr: string = ''; pss: number = 0; pssStr: string = ''; - sharedClean : number = 0; - sharedCleanStr:string = ''; - sharedDirty:number = 0; - sharedDirtyStr:string = ''; - privateClean:number = 0; - privateCleanStr:string = ''; - privateDirty:number = 0; - privateDirtyStr:string = ''; - swap:number = 0; - swapStr:string = ''; - swapPss:number = 0; - swapPssStr:string = ''; + sharedClean: number = 0; + sharedCleanStr: string = ''; + sharedDirty: number = 0; + sharedDirtyStr: string = ''; + privateClean: number = 0; + privateCleanStr: string = ''; + privateDirty: number = 0; + privateDirtyStr: string = ''; + swap: number = 0; + swapStr: string = ''; + swapPss: number = 0; + swapPssStr: string = ''; children: Array = []; } -export enum SmapsType{ +export enum SmapsType { TYPE_CODE_SYS, TYPE_CODE_APP, TYPE_DATA_SYS, @@ -82,6 +81,19 @@ export enum SmapsType{ TYPE_NATIVE_HEAP, TYPE_ASHMEM, TYPE_OTHER_SYS, - TYPE_OTHER_APP + TYPE_OTHER_APP, } -export const TYPE_STRING = ['CODE_SYS','CODE_APP','DATA_SYS','DATA_APP','UNKNOWN_ANON','STACK','JS_HEAP','JAVA_VM','NATIVE_HEAP','ASHMEM','OTHER_SYS','OTHER_APP'] \ No newline at end of file +export const TYPE_STRING = [ + 'CODE_SYS', + 'CODE_APP', + 'DATA_SYS', + 'DATA_APP', + 'UNKNOWN_ANON', + 'STACK', + 'JS_HEAP', + 'JAVA_VM', + 'NATIVE_HEAP', + 'ASHMEM', + 'OTHER_SYS', + 'OTHER_APP', +]; diff --git a/ide/src/trace/bean/ThreadStruct.ts b/ide/src/trace/bean/ThreadStruct.ts index a9f69b47..59e8a75f 100644 --- a/ide/src/trace/bean/ThreadStruct.ts +++ b/ide/src/trace/bean/ThreadStruct.ts @@ -51,7 +51,12 @@ export class ThreadStruct extends BaseStruct { if ('S' == threadBeanStructData.state) { threadBeanCanvasCtx.fillStyle = ThreadStruct.sColor; threadBeanCanvasCtx.globalAlpha = 0.2; // transparency - threadBeanCanvasCtx.fillRect(threadBeanStructData.frame.x, threadBeanStructData.frame.y + padding, threadBeanStructData.frame.width, threadBeanStructData.frame.height - padding * 2); + threadBeanCanvasCtx.fillRect( + threadBeanStructData.frame.x, + threadBeanStructData.frame.y + padding, + threadBeanStructData.frame.width, + threadBeanStructData.frame.height - padding * 2 + ); threadBeanCanvasCtx.globalAlpha = 1; // transparency } else if ('R' == threadBeanStructData.state) { threadBeanCanvasCtx.fillStyle = ThreadStruct.rColor; @@ -73,17 +78,33 @@ export class ThreadStruct extends BaseStruct { ) { threadBeanCanvasCtx.strokeStyle = '#232c5d'; threadBeanCanvasCtx.lineWidth = 2; - threadBeanCanvasCtx.strokeRect(threadBeanStructData.frame.x, threadBeanStructData.frame.y + padding, threadBeanStructData.frame.width - 2, threadBeanStructData.frame.height - padding * 2); + threadBeanCanvasCtx.strokeRect( + threadBeanStructData.frame.x, + threadBeanStructData.frame.y + padding, + threadBeanStructData.frame.width - 2, + threadBeanStructData.frame.height - padding * 2 + ); } } } private static drawRectAndString(threadBeanCanvasCtx: CanvasRenderingContext2D, threadBeanStructData: ThreadStruct) { // @ts-ignore - threadBeanCanvasCtx.fillRect(threadBeanStructData.frame.x, threadBeanStructData.frame.y + padding, threadBeanStructData.frame.width, threadBeanStructData.frame.height - padding * 2); + threadBeanCanvasCtx.fillRect( + threadBeanStructData.frame!.x, + threadBeanStructData.frame!.y + padding, + threadBeanStructData.frame!.width, + threadBeanStructData.frame!.height - padding * 2 + ); threadBeanCanvasCtx.fillStyle = '#fff'; // @ts-ignore - drawString(threadBeanCanvasCtx, ThreadStruct.getEndState(threadBeanStructData.state || ''), 2, threadBeanStructData.frame, threadBeanStructData); + drawString( + threadBeanCanvasCtx, + ThreadStruct.getEndState(threadBeanStructData.state || ''), + 2, + threadBeanStructData.frame!, + threadBeanStructData + ); } static getEndState(state: string): string { @@ -99,12 +120,14 @@ export class ThreadStruct extends BaseStruct { } static equals(d1: ThreadStruct, d2: ThreadStruct): boolean { - return d1 && + return ( + d1 && d2 && d1.cpu == d2.cpu && d1.tid == d2.tid && d1.state == d2.state && d1.startTime == d2.startTime && - d1.dur == d2.dur; + d1.dur == d2.dur + ); } } diff --git a/ide/src/trace/bean/WakeupBean.ts b/ide/src/trace/bean/WakeupBean.ts index bea2a968..739be80e 100644 --- a/ide/src/trace/bean/WakeupBean.ts +++ b/ide/src/trace/bean/WakeupBean.ts @@ -17,7 +17,7 @@ export class WakeupBean { thread: string | undefined; wakeupTime: number | undefined; cpu: number | undefined; - dur: number| null | undefined; + dur: number | null | undefined; process: string | undefined; pid: number | undefined; tid: number | undefined; diff --git a/ide/src/trace/component/SpFlags.ts b/ide/src/trace/component/SpFlags.ts index 7e1cb955..8b117349 100644 --- a/ide/src/trace/component/SpFlags.ts +++ b/ide/src/trace/component/SpFlags.ts @@ -13,7 +13,6 @@ * limitations under the License. */ - import { BaseElement, element } from '../../base-ui/BaseElement.js'; @element('sp-flags') @@ -186,7 +185,7 @@ export class SpFlags extends BaseElement { deviceWidthLabelEl.className = 'device_label'; deviceWidthLabelEl.textContent = 'PhysicalWidth :'; let deviceWidthEl = document.createElement('input'); - deviceWidthEl.value = config.addInfo!.physicalWidth; + deviceWidthEl.value = config.addInfo!.physicalWidth; deviceWidthEl.addEventListener('keyup', () => { deviceWidthEl.value = deviceWidthEl.value.replace(/\D/g, ''); }); @@ -201,7 +200,7 @@ export class SpFlags extends BaseElement { deviceHeightLabelEl.className = 'device_label'; let deviceHeightEl = document.createElement('input'); deviceHeightEl.className = 'device_input'; - deviceHeightEl.value = config.addInfo!.physicalHeight; + deviceHeightEl.value = config.addInfo!.physicalHeight; deviceHeightEl.addEventListener('keyup', () => { deviceHeightEl.value = deviceHeightEl.value.replace(/\D/g, ''); }); @@ -237,7 +236,7 @@ export class FlagsConfig { title: 'AnimationAnalysis', switchOptions: [{ option: 'Enabled' }, { option: 'Disabled', selected: true }], describeContent: 'Analyze Animation effect templates', - addInfo: { physicalWidth: 0, physicalHeight: 0 } + addInfo: { physicalWidth: 0, physicalHeight: 0 }, }, { title: 'AppStartup', @@ -305,16 +304,14 @@ export class FlagsConfig { static getSpTraceStreamParseConfig(): string { let parseConfig = {}; - FlagsConfig.getAllFlagConfig().forEach( - configItem => { - let selectedOption = configItem.switchOptions.filter((option) => { - return option.selected; - }); - // @ts-ignore - parseConfig[configItem.title] = selectedOption[0].option === 'Enabled' ? 1 : 0; - } - ); - return JSON.stringify({ 'config': parseConfig }); + FlagsConfig.getAllFlagConfig().forEach((configItem) => { + let selectedOption = configItem.switchOptions.filter((option) => { + return option.selected; + }); + // @ts-ignore + parseConfig[configItem.title] = selectedOption[0].option === 'Enabled' ? 1 : 0; + }); + return JSON.stringify({ config: parseConfig }); } static getFlagsConfig(flagName: string): Params | undefined { diff --git a/ide/src/trace/component/SpInfoAndStas.ts b/ide/src/trace/component/SpInfoAndStas.ts index b2be3ccb..5d312a75 100644 --- a/ide/src/trace/component/SpInfoAndStas.ts +++ b/ide/src/trace/component/SpInfoAndStas.ts @@ -58,14 +58,18 @@ export class SpInfoAndStats extends BaseElement { } }).observe(this.parentElement!); info('infoData(metric) size is: ', this.infoData.length); - let metaDataStyle: HTMLDivElement | undefined | null = this.metaTableEl!.shadowRoot?. - querySelector('div.body') as HTMLDivElement; - let metaDataHeadStyle: HTMLDivElement | undefined | null = this.metaTableEl!.shadowRoot?. - querySelector('div.thead') as HTMLDivElement; - let statsStyle: HTMLDivElement | undefined | null = this.infoTableEl!.shadowRoot?. - querySelector('div.body') as HTMLDivElement; - let statsHeadStyle: HTMLDivElement | undefined | null = this.infoTableEl!.shadowRoot?. - querySelector('div.thead') as HTMLDivElement; + let metaDataStyle: HTMLDivElement | undefined | null = this.metaTableEl!.shadowRoot?.querySelector( + 'div.body' + ) as HTMLDivElement; + let metaDataHeadStyle: HTMLDivElement | undefined | null = this.metaTableEl!.shadowRoot?.querySelector( + 'div.thead' + ) as HTMLDivElement; + let statsStyle: HTMLDivElement | undefined | null = this.infoTableEl!.shadowRoot?.querySelector( + 'div.body' + ) as HTMLDivElement; + let statsHeadStyle: HTMLDivElement | undefined | null = this.infoTableEl!.shadowRoot?.querySelector( + 'div.thead' + ) as HTMLDivElement; let timeOutTs = 20; setTimeout(() => { this.initDataTableStyle(metaDataStyle!); diff --git a/ide/src/trace/component/SpMetrics.ts b/ide/src/trace/component/SpMetrics.ts index f630a2eb..0a412250 100644 --- a/ide/src/trace/component/SpMetrics.ts +++ b/ide/src/trace/component/SpMetrics.ts @@ -15,9 +15,7 @@ import { BaseElement, element } from '../../base-ui/BaseElement.js'; -import { - queryMetric, -} from '../database/SqlLite.js'; +import { queryMetric } from '../database/SqlLite.js'; import '../../base-ui/table/lit-table.js'; import { LitProgressBar } from '../../base-ui/progress-bar/LitProgressBar.js'; @@ -52,7 +50,7 @@ export class SpMetrics extends BaseElement { let index = this.selectMetricEl!.selectedIndex; let optionEl = this.selectMetricEl?.querySelectorAll('option')[index]; if (optionEl && optionEl.value !== '') { - queryMetric(optionEl.value).then((result)=>{ + queryMetric(optionEl.value).then((result) => { this.metricProgressLoad!.loading = false; this.responseJson!.textContent = result.toString(); }); diff --git a/ide/src/trace/component/SpQuerySQL.ts b/ide/src/trace/component/SpQuerySQL.ts index 1e33af71..1b3bbf02 100644 --- a/ide/src/trace/component/SpQuerySQL.ts +++ b/ide/src/trace/component/SpQuerySQL.ts @@ -46,7 +46,7 @@ export class SpQuerySQL extends BaseElement { this.progressLoad = this.shadowRoot?.querySelector('.load-query-sql') as LitProgressBar; this.selector = this.shadowRoot?.querySelector('.sql-select') as HTMLTextAreaElement; this.queryTableEl = this.shadowRoot?.querySelector('lit-table') as LitTable; - this.queryTableEl.setAttribute('data-query-scene',''); + this.queryTableEl.setAttribute('data-query-scene', ''); this.querySize = this.shadowRoot?.querySelector('.query_size') as HTMLElement; this.response = this.shadowRoot?.querySelector('#dataResult') as HTMLDivElement; this.pagination = this.shadowRoot?.querySelector('.pagination-box') as PaginationBox; @@ -70,10 +70,10 @@ export class SpQuerySQL extends BaseElement { this.initCommonList(); } - private initCommonList() : void { + private initCommonList(): void { let commonSqlList = getAllSql(); if (commonSqlList.length > 0) { - for (let i = 0;i < commonSqlList.length; i ++) { + for (let i = 0; i < commonSqlList.length; i++) { let commonSqlDiv = document.createElement('div'); commonSqlDiv.className = 'sql-item'; let sql = document.createElement('div'); @@ -169,15 +169,14 @@ export class SpQuerySQL extends BaseElement { this.keyList = Object.keys(resultList[0]); this.querySize!.textContent = `Query result - ${this.statDataArray.length} counts.`; this.initDataElement(); - this.response!.appendChild(this.queryTableEl!); - this.setPageNationTableEl(); - setTimeout(() => { - if (this.parentElement?.clientHeight !== 0) { + this.response!.appendChild(this.queryTableEl!); + this.setPageNationTableEl(); + setTimeout(() => { + if (this.parentElement?.clientHeight !== 0) { this.queryTableEl!.style.height = '100%'; this.queryTableEl!.reMeauseHeight(); - } - }, 300); - + } + }, 300); } else { this.querySize!.textContent = `Query result - ${this.statDataArray.length} counts.`; this.progressLoad!.loading = false; @@ -229,7 +228,8 @@ export class SpQuerySQL extends BaseElement { return false; } else { let queryNormalLength = 15; - if (this.selector!.value.length < queryNormalLength || + if ( + this.selector!.value.length < queryNormalLength || !this.selector?.value.toLowerCase().trim().startsWith('select') ) { this.querySqlErrorText = `Query result - (Error): @@ -271,10 +271,9 @@ export class SpQuerySQL extends BaseElement { this.selector!.addEventListener('input', this.inputSqlListener); this.selector!.addEventListener('change', this.inputSqlListener); this.selector!.addEventListener('keydown', this.deleteSqlListener); - this.shadowRoot?.querySelectorAll('.runButton'). - forEach((it) => ( - it.addEventListener('click', this.runSqlListener) - )); + this.shadowRoot + ?.querySelectorAll('.runButton') + .forEach((it) => it.addEventListener('click', this.runSqlListener)); } runSqlListener = (e: Event): void => { diff --git a/ide/src/trace/component/SpRecordTrace.ts b/ide/src/trace/component/SpRecordTrace.ts index c84297b9..ce05e76d 100644 --- a/ide/src/trace/component/SpRecordTrace.ts +++ b/ide/src/trace/component/SpRecordTrace.ts @@ -679,14 +679,6 @@ export class SpRecordTrace extends BaseElement { this.appendDeviceVersion(); // @ts-ignore if (navigator.usb) { - // @ts-ignore - navigator.usb.addEventListener( - 'connect', - // @ts-ignore - (ev: USBConnectionEvent) => { - this.usbConnectionListener(ev); - } - ); // @ts-ignore navigator.usb.addEventListener( 'disconnect', @@ -1269,11 +1261,11 @@ export class SpRecordTrace extends BaseElement { HdcDeviceManager.shellResultAsString( CmdConstant.CMD_CLEAR_LONG_FOLD + this.recordSetting!.longOutPath, false - ).then(()=>{ + ).then(() => { HdcDeviceManager.shellResultAsString( CmdConstant.CMD_MKDIR_LONG_FOLD + this.recordSetting!.longOutPath, false - ).then(()=>{ + ).then(() => { this.recordLongTraceCmd(traceCommandStr); }); }); @@ -1296,17 +1288,14 @@ export class SpRecordTrace extends BaseElement { } } - private recordTraceCmd(traceCommandStr: string): void{ - HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then( - (traceResult) => { - let re = this.isSuccess(traceResult); - if (re == 0) { - this.litSearch!.setPercent('tracing htrace down', -1); - HdcDeviceManager.shellResultAsString( - CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.output, - false - ).then((traceFileSize) => { - this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`,-1); + private recordTraceCmd(traceCommandStr: string): void { + HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then((traceResult) => { + let re = this.isSuccess(traceResult); + if (re == 0) { + this.litSearch!.setPercent('tracing htrace down', -1); + HdcDeviceManager.shellResultAsString(CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.output, false).then( + (traceFileSize) => { + this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`, -1); if (traceFileSize.indexOf('No such') != -1) { this.litSearch!.setPercent('No such file or directory', -2); this.buttonDisable(false); @@ -1318,9 +1307,7 @@ export class SpRecordTrace extends BaseElement { }).then((pullRes) => { this.litSearch!.setPercent('downloading Hitrace file ', 101); pullRes.arrayBuffer().then((buffer) => { - let fileName = this.recordSetting!.output.substring( - this.recordSetting!.output.lastIndexOf('/') + 1 - ); + let fileName = this.recordSetting!.output.substring(this.recordSetting!.output.lastIndexOf('/') + 1); let file = new File([buffer], fileName); let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; let children = main.menus as Array; @@ -1347,90 +1334,99 @@ export class SpRecordTrace extends BaseElement { this.freshConfigMenuDisable(false); this.freshMenuDisable(false); } - }); - } else if (re == 2) { - this.recordButtonDisable(false); - this.litSearch!.setPercent('stop tracing htrace ', -1); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } else if (re == -1) { - this.recordButtonDisable(false); - this.litSearch!.setPercent('The device is abnormal', -2); - this.progressEL!.loading = false; - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } else { - this.recordButtonDisable(false); - this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } + } + ); + } else if (re == 2) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('stop tracing htrace ', -1); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else if (re == -1) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('The device is abnormal', -2); + this.progressEL!.loading = false; + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else { + this.recordButtonDisable(false); + this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); } - ); + }); } - private recordLongTraceCmd(traceCommandStr: string): void{ - HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then( - (traceResult) => { - let re = this.isSuccess(traceResult); - if (re === 0) { - this.litSearch!.setPercent('tracing htrace down', -1); - HdcDeviceManager.shellResultAsString( - CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.longOutPath, - false - ).then((traceFileSize) => { - this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`,-1); - if (traceFileSize.indexOf('No such') != -1) { - this.litSearch!.setPercent('No such file or directory', -2); - this.buttonDisable(false); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - } else { - this.recordLongTrace(); - } - }); - } else if (re === 2) { - this.recordButtonDisable(false); - this.litSearch!.setPercent('stop tracing htrace ', -1); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } else if (re === -1) { - this.recordButtonDisable(false); - this.litSearch!.setPercent('The device is abnormal', -2); - this.progressEL!.loading = false; - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } else { - this.recordButtonDisable(false); - this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - } + private recordLongTraceCmd(traceCommandStr: string): void { + HdcDeviceManager.shellResultAsString(CmdConstant.CMD_SHELL + traceCommandStr, false).then((traceResult) => { + let re = this.isSuccess(traceResult); + if (re === 0) { + this.litSearch!.setPercent('tracing htrace down', -1); + HdcDeviceManager.shellResultAsString( + CmdConstant.CMD_TRACE_FILE_SIZE + this.recordSetting!.longOutPath, + false + ).then((traceFileSize) => { + this.litSearch!.setPercent(`traceFileSize is ${traceFileSize}`, -1); + if (traceFileSize.indexOf('No such') != -1) { + this.litSearch!.setPercent('No such file or directory', -2); + this.buttonDisable(false); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + } else { + this.recordLongTrace(); + } + }); + } else if (re === 2) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('stop tracing htrace ', -1); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else if (re === -1) { + this.recordButtonDisable(false); + this.litSearch!.setPercent('The device is abnormal', -2); + this.progressEL!.loading = false; + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + } else { + this.recordButtonDisable(false); + this.litSearch!.setPercent('tracing htrace failed, please check your config ', -2); + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); } - ); + }); } private loadLongTraceFile(timStamp: number) { - return new Promise(async (resolve)=>{ + return new Promise(async (resolve) => { let maxSize = 48 * 1024 * 1024; for (let fileIndex = 0; fileIndex < this.longTraceList.length; fileIndex++) { if (this.longTraceList[fileIndex] !== '') { - let types = this.sp!.fileTypeList.filter(type => this.longTraceList[fileIndex].toLowerCase().includes(type.toLowerCase())); + let types = this.sp!.fileTypeList.filter((type) => + this.longTraceList[fileIndex].toLowerCase().includes(type.toLowerCase()) + ); let pageNumber = 0; let fileType = types[0]; if (types.length === 0) { fileType = 'trace'; - pageNumber = Number(this.longTraceList[fileIndex].substring(this.longTraceList[fileIndex].lastIndexOf('_') + 1, this.longTraceList[fileIndex].lastIndexOf('.'))) - 1; + pageNumber = + Number( + this.longTraceList[fileIndex].substring( + this.longTraceList[fileIndex].lastIndexOf('_') + 1, + this.longTraceList[fileIndex].lastIndexOf('.') + ) + ) - 1; } - let pullRes = await HdcDeviceManager.fileRecv(this.recordSetting!.longOutPath + this.longTraceList[fileIndex], (perNumber: number) => { - this.litSearch!.setPercent(`downloading ${fileType} file `, perNumber); - }); + let pullRes = await HdcDeviceManager.fileRecv( + this.recordSetting!.longOutPath + this.longTraceList[fileIndex], + (perNumber: number) => { + this.litSearch!.setPercent(`downloading ${fileType} file `, perNumber); + } + ); this.litSearch!.setPercent(`downloading ${fileType} file `, 101); let buffer = await pullRes.arrayBuffer(); let chunks = Math.ceil(buffer.byteLength / maxSize); @@ -1454,7 +1450,7 @@ export class SpRecordTrace extends BaseElement { if (chunkIndex === 0 && fileType === 'trace') { this.sp!.longTraceHeadMessageList.push({ pageNum: pageNumber, - data: buffer.slice(offset, 1024) + data: buffer.slice(offset, 1024), }); } this.sp!.longTraceDataList.push({ @@ -1462,17 +1458,17 @@ export class SpRecordTrace extends BaseElement { fileType: fileType, pageNum: pageNumber, startOffsetSize: offset, - endOffsetSize: offset + sliceLen + endOffsetSize: offset + sliceLen, }); await LongTraceDBUtils.getInstance().indexedDBHelp.add(LongTraceDBUtils.getInstance().tableName, { - 'buf': chunk, - 'id': `${fileType}_${timStamp}_${pageNumber}_${chunkIndex}`, - 'fileType': fileType, - 'pageNum': pageNumber, - 'startOffset': offset, - 'endOffset': offset + sliceLen, - 'index': chunkIndex, - 'timStamp': timStamp + buf: chunk, + id: `${fileType}_${timStamp}_${pageNumber}_${chunkIndex}`, + fileType: fileType, + pageNum: pageNumber, + startOffset: offset, + endOffset: offset + sliceLen, + index: chunkIndex, + timStamp: timStamp, }); offset += sliceLen; if (offset >= buffer.byteLength) { @@ -1498,42 +1494,44 @@ export class SpRecordTrace extends BaseElement { }); } - private recordLongTrace(): void{ + private recordLongTrace(): void { let querySelector = this.sp!.shadowRoot?.querySelector('.long_trace_page') as HTMLDivElement; if (querySelector) { querySelector.style.display = 'none'; } - HdcDeviceManager.shellResultAsString( - CmdConstant.CMD_GET_LONG_FILES + this.recordSetting!.longOutPath, - false - ).then((result)=>{ - this.longTraceList = result.split('\n').filter(fileName => Boolean(fileName)); - if (this.longTraceList.length > 0) { - this.sp!.longTraceHeadMessageList = []; - this.sp!.longTraceDataList = []; - this.sp!.longTraceTypeMessageMap = undefined; - let timStamp = new Date().getTime(); - this.loadLongTraceFile(timStamp).then(()=>{ - let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; - let children = main.menus as Array; - let child = children[0].children as Array; - let fileHandler = child[1].clickHandler; - if (fileHandler && !SpRecordTrace.cancelRecord) { - this.freshConfigMenuDisable(false); - this.freshMenuDisable(false); - this.buttonDisable(false); - this.recordButtonDisable(false); - fileHandler({ - detail: { - timeStamp: timStamp - }, - }, true); - } else { - SpRecordTrace.cancelRecord = false; - } - }); + HdcDeviceManager.shellResultAsString(CmdConstant.CMD_GET_LONG_FILES + this.recordSetting!.longOutPath, false).then( + (result) => { + this.longTraceList = result.split('\n').filter((fileName) => Boolean(fileName)); + if (this.longTraceList.length > 0) { + this.sp!.longTraceHeadMessageList = []; + this.sp!.longTraceDataList = []; + this.sp!.longTraceTypeMessageMap = undefined; + let timStamp = new Date().getTime(); + this.loadLongTraceFile(timStamp).then(() => { + let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; + let children = main.menus as Array; + let child = children[0].children as Array; + let fileHandler = child[1].clickHandler; + if (fileHandler && !SpRecordTrace.cancelRecord) { + this.freshConfigMenuDisable(false); + this.freshMenuDisable(false); + this.buttonDisable(false); + this.recordButtonDisable(false); + fileHandler( + { + detail: { + timeStamp: timStamp, + }, + }, + true + ); + } else { + SpRecordTrace.cancelRecord = false; + } + }); + } } - }); + ); } private initRecordUIState(): void { @@ -2014,7 +2012,7 @@ export class SpRecordTrace extends BaseElement { recordArgs: recordArgs, }; if (SpApplication.isLongTrace) { - hiPerf.splitOutfileName = `${this.recordSetting!.longOutPath }hiprofiler_data_hiperf.htrace`; + hiPerf.splitOutfileName = `${this.recordSetting!.longOutPath}hiprofiler_data_hiperf.htrace`; } let hiPerfPluginConfig: ProfilerPluginConfig = { pluginName: 'hiperf-plugin', @@ -2200,7 +2198,7 @@ export class SpRecordTrace extends BaseElement { cpu_profiler_interval: this.spArkTs!.intervalCpuValue, }; if (SpApplication.isLongTrace) { - arkTSConfig.splitOutfileName = `${this.recordSetting?.longOutPath }hiprofiler_data_arkts.htrace`; + arkTSConfig.splitOutfileName = `${this.recordSetting?.longOutPath}hiprofiler_data_arkts.htrace`; } let arkTSPluginConfig: ProfilerPluginConfig = { pluginName: 'arkts-plugin', diff --git a/ide/src/trace/component/SpRecyclerSystemTrace.ts b/ide/src/trace/component/SpRecyclerSystemTrace.ts index b7d4e336..3dcd2332 100644 --- a/ide/src/trace/component/SpRecyclerSystemTrace.ts +++ b/ide/src/trace/component/SpRecyclerSystemTrace.ts @@ -296,7 +296,10 @@ export class SpRecyclerSystemTrace extends BaseElement { let scrollHeight = this.rowsEL?.clientHeight || 0; this.rowsEL?.querySelectorAll('trace-row').forEach((rowItem: any) => { let top = rowItem.offsetTop - (this.rowsEL?.offsetTop || 0); - if (top + rowItem.clientHeight > scrollTop && top + rowItem.clientHeight < scrollTop + scrollHeight + rowItem.clientHeight) { + if ( + top + rowItem.clientHeight > scrollTop && + top + rowItem.clientHeight < scrollTop + scrollHeight + rowItem.clientHeight + ) { (rowItem as TraceRow).dataListCache.length = 0; } }); @@ -312,7 +315,10 @@ export class SpRecyclerSystemTrace extends BaseElement { let scrollHeight = this.rowsEL?.clientHeight || 0; this.rowsEL?.querySelectorAll('trace-row').forEach((item: any) => { let top = item.offsetTop - (this.rowsEL?.offsetTop || 0); - if (top + item.clientHeight > scrollTop && top + item.clientHeight < scrollTop + scrollHeight + item.clientHeight) { + if ( + top + item.clientHeight > scrollTop && + top + item.clientHeight < scrollTop + scrollHeight + item.clientHeight + ) { (item as TraceRow).dataListCache.length = 0; } }); diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index 07c18046..970226f5 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -295,7 +295,7 @@ export class SpSystemTrace extends BaseElement { let cpuFavoriteRow: any = this.shadowRoot?.querySelector>( `trace-row[row-type='cpu-data'][row-id='${wakeupCpuLists[i]}']` ); - if (!cpuFavoriteRow){ + if (!cpuFavoriteRow) { return; } cpuFavoriteRow!.setAttribute('collect-type', ''); @@ -436,10 +436,10 @@ export class SpSystemTrace extends BaseElement { replaceRow.setAttribute('type', 'replaceRow'); replaceRow.setAttribute('row-parent-id', currentRow.rowParentId); replaceRow.style.display = 'none'; - if (!currentRow.hasAttribute('scene')){ - currentRow.setAttribute('row-hidden','') + if (!currentRow.hasAttribute('scene')) { + currentRow.setAttribute('row-hidden', ''); } else { - currentRow.removeAttribute('row-hidden') + currentRow.removeAttribute('row-hidden'); } // 添加收藏时,在线程名前面追加父亲ID let rowParentId = currentRow.rowParentId; @@ -1322,11 +1322,12 @@ export class SpSystemTrace extends BaseElement { window.subscribe(window.SmartEvent.UI.CollapseAllLane, (collapse: boolean) => { if (!collapse) { // 一键折叠之前,记录当前打开的泳道图 - this.expandRowList = Array.from(this.rowsEL!.querySelectorAll>(`trace-row[folder][expansion]`)) || []; + this.expandRowList = + Array.from(this.rowsEL!.querySelectorAll>(`trace-row[folder][expansion]`)) || []; } this.collapseAll = true; this.setAttribute('disable', ''); - this.expandRowList!.forEach((it) => it.expansion = collapse); + this.expandRowList!.forEach((it) => (it.expansion = collapse)); this.collapseAll = false; this.removeAttribute('disable'); this.refreshCanvas(true); @@ -1365,11 +1366,11 @@ export class SpSystemTrace extends BaseElement { return this.favoriteChartListEL!.getCollectRows(condition); } - getAllCollectRows(){ + getAllCollectRows() { return this.favoriteChartListEL!.getCollectRows('trace-row'); } - getAllSelectCollectRows(){ + getAllSelectCollectRows() { return this.favoriteChartListEL!.getCollectRows("trace-row[check-type='2']"); } @@ -1665,8 +1666,19 @@ export class SpSystemTrace extends BaseElement { // Draw the connection curve if (this.linkNodes) { - drawLinkLines(this.canvasPanelCtx!, this.linkNodes, this.timerShaftEL!, false, this.favoriteChartListEL!.clientHeight); - this.favoriteChartListEL?.drawLinkLines(this.linkNodes, this.timerShaftEL!, true, this.favoriteChartListEL!.clientHeight); + drawLinkLines( + this.canvasPanelCtx!, + this.linkNodes, + this.timerShaftEL!, + false, + this.favoriteChartListEL!.clientHeight + ); + this.favoriteChartListEL?.drawLinkLines( + this.linkNodes, + this.timerShaftEL!, + true, + this.favoriteChartListEL!.clientHeight + ); } } diff --git a/ide/src/trace/component/Utils.ts b/ide/src/trace/component/Utils.ts index bd5854ea..8433cfd5 100644 --- a/ide/src/trace/component/Utils.ts +++ b/ide/src/trace/component/Utils.ts @@ -51,9 +51,10 @@ export function setSelectState( } } -export function intersectData(row:TraceRow) { +export function intersectData(row: TraceRow) { let isIntersect = (snapshotStruct: SnapshotStruct, rangeSelectStruct: RangeSelectStruct) => - Math.max(snapshotStruct.startNs! + snapshotStruct.dur!, rangeSelectStruct!.endNS || 0) - Math.min(snapshotStruct.startNs!, rangeSelectStruct!.startNS || 0) < + Math.max(snapshotStruct.startNs! + snapshotStruct.dur!, rangeSelectStruct!.endNS || 0) - + Math.min(snapshotStruct.startNs!, rangeSelectStruct!.startNS || 0) < snapshotStruct.dur! + (rangeSelectStruct!.endNS || 0) - (rangeSelectStruct!.startNS || 0); let intersectData = row.dataList.filter((struct: SnapshotStruct) => { return isIntersect(struct, TraceRow.rangeSelectObject!); diff --git a/ide/src/trace/component/chart/SpArkTsChart.ts b/ide/src/trace/component/chart/SpArkTsChart.ts index d2f74534..15de2e83 100644 --- a/ide/src/trace/component/chart/SpArkTsChart.ts +++ b/ide/src/trace/component/chart/SpArkTsChart.ts @@ -173,9 +173,9 @@ export class SpArkTsChart implements ParseListener { this.heapTimelineRow!.supplier = (): Promise => new Promise((resolve) => resolve(samples)); this.heapTimelineRow!.onThreadHandler = (useCache): void => { let context: CanvasRenderingContext2D; - if(this.heapTimelineRow?.currentContext){ + if (this.heapTimelineRow?.currentContext) { context = this.heapTimelineRow!.currentContext; - }else{ + } else { context = this.heapTimelineRow!.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } this.heapTimelineRow!.canvasSave(context); @@ -195,9 +195,9 @@ export class SpArkTsChart implements ParseListener { new Promise>((resolve) => resolve(heapFile)); this.heapSnapshotRow!.onThreadHandler = (useCache): void => { let context: CanvasRenderingContext2D; - if(this.heapSnapshotRow?.currentContext){ + if (this.heapSnapshotRow?.currentContext) { context = this.heapSnapshotRow!.currentContext; - }else{ + } else { context = this.heapSnapshotRow!.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } this.heapSnapshotRow!.canvasSave(context); @@ -267,10 +267,10 @@ export class SpArkTsChart implements ParseListener { JsCpuProfilerStruct.hoverJsCpuProfilerStruct = this.jsCpuProfilerRow!.getHoverStruct(); }; this.jsCpuProfilerRow.onThreadHandler = (useCache): void => { - let context:CanvasRenderingContext2D; - if(this.jsCpuProfilerRow?.currentContext){ + let context: CanvasRenderingContext2D; + if (this.jsCpuProfilerRow?.currentContext) { context = this.jsCpuProfilerRow!.currentContext; - }else{ + } else { context = this.jsCpuProfilerRow!.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } this.jsCpuProfilerRow!.canvasSave(context); diff --git a/ide/src/trace/component/chart/SpChartManager.ts b/ide/src/trace/component/chart/SpChartManager.ts index cf5b22a5..122a1180 100644 --- a/ide/src/trace/component/chart/SpChartManager.ts +++ b/ide/src/trace/component/chart/SpChartManager.ts @@ -99,7 +99,7 @@ export class SpChartManager { let dict = await queryDataDICT(); if (FlagsConfig.getFlagsConfigEnableStatus('AppStartup')) { let appStartUpPids = await queryAppStartupProcessIds(); - appStartUpPids.forEach(it => SpChartManager.APP_STARTUP_PID_ARR.push(it.pid)); + appStartUpPids.forEach((it) => SpChartManager.APP_STARTUP_PID_ARR.push(it.pid)); } await this.initTraceConfig(); dict.map((d) => SpSystemTrace.DATA_DICT.set(d['id'], d['data'])); diff --git a/ide/src/trace/component/chart/SpClockChart.ts b/ide/src/trace/component/chart/SpClockChart.ts index 036bf421..2da72725 100644 --- a/ide/src/trace/component/chart/SpClockChart.ts +++ b/ide/src/trace/component/chart/SpClockChart.ts @@ -104,11 +104,11 @@ export class SpClockChart { ClockStruct.hoverClockStruct = traceRow.getHoverStruct(); }; traceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(traceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (traceRow.currentContext) { context = traceRow.currentContext; - } else{ - context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); (renders['clock'] as ClockRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpCpuChart.ts b/ide/src/trace/component/chart/SpCpuChart.ts index 6f9392af..995c3849 100644 --- a/ide/src/trace/component/chart/SpCpuChart.ts +++ b/ide/src/trace/component/chart/SpCpuChart.ts @@ -105,11 +105,11 @@ export class SpCpuChart { CpuStruct.hoverCpuStruct = traceRow.getHoverStruct(); }; traceRow.onThreadHandler = (useCache: boolean, buf: ArrayBuffer | undefined | null) => { - let context:CanvasRenderingContext2D; - if(traceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (traceRow.currentContext) { context = traceRow.currentContext; - } else{ - context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); (renders['cpu-data'] as CpuRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpFileSystemChart.ts b/ide/src/trace/component/chart/SpFileSystemChart.ts index 5888ad38..ff93ab4a 100644 --- a/ide/src/trace/component/chart/SpFileSystemChart.ts +++ b/ide/src/trace/component/chart/SpFileSystemChart.ts @@ -116,14 +116,14 @@ export class SpFileSystemChart { logicalReadRow.selectChangeHandler = this.trace.selectChangeHandler; logicalReadRow.focusHandler = () => this.focusHandler(logicalReadRow); logicalReadRow.findHoverStruct = () => { - FileSysChartStruct.hoverFileSysStruct = logicalReadRow.getHoverStruct() + FileSysChartStruct.hoverFileSysStruct = logicalReadRow.getHoverStruct(); }; logicalReadRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(logicalReadRow.currentContext){ + let context: CanvasRenderingContext2D; + if (logicalReadRow.currentContext) { context = logicalReadRow.currentContext; - } else{ - context = logicalReadRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = logicalReadRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } logicalReadRow.canvasSave(context); (renders[TraceRow.ROW_TYPE_FILE_SYSTEM] as FileSystemRender).renderMainThread( @@ -155,14 +155,14 @@ export class SpFileSystemChart { logicalWriteRow.selectChangeHandler = this.trace.selectChangeHandler; logicalWriteRow.focusHandler = () => this.focusHandler(logicalWriteRow); logicalWriteRow.findHoverStruct = () => { - FileSysChartStruct.hoverFileSysStruct = logicalWriteRow.getHoverStruct() + FileSysChartStruct.hoverFileSysStruct = logicalWriteRow.getHoverStruct(); }; logicalWriteRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(logicalWriteRow.currentContext){ + let context: CanvasRenderingContext2D; + if (logicalWriteRow.currentContext) { context = logicalWriteRow.currentContext; - } else{ - context = logicalWriteRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = logicalWriteRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } logicalWriteRow.canvasSave(context); (renders[TraceRow.ROW_TYPE_FILE_SYSTEM] as FileSystemRender).renderMainThread( @@ -195,14 +195,14 @@ export class SpFileSystemChart { diskIoRow.selectChangeHandler = this.trace.selectChangeHandler; diskIoRow.focusHandler = () => this.focusHandler(diskIoRow); diskIoRow.findHoverStruct = () => { - FileSysChartStruct.hoverFileSysStruct = diskIoRow.getHoverStruct() + FileSysChartStruct.hoverFileSysStruct = diskIoRow.getHoverStruct(); }; diskIoRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(diskIoRow.currentContext){ + let context: CanvasRenderingContext2D; + if (diskIoRow.currentContext) { context = diskIoRow.currentContext; - } else{ - context = diskIoRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = diskIoRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } diskIoRow.canvasSave(context); (renders[TraceRow.ROW_TYPE_FILE_SYSTEM] as FileSystemRender).renderMainThread( @@ -238,14 +238,14 @@ export class SpFileSystemChart { rowRead.selectChangeHandler = this.trace.selectChangeHandler; rowRead.focusHandler = () => this.focusHandler(rowRead); rowRead.findHoverStruct = () => { - FileSysChartStruct.hoverFileSysStruct = rowRead.getHoverStruct() + FileSysChartStruct.hoverFileSysStruct = rowRead.getHoverStruct(); }; rowRead.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(rowRead.currentContext){ + let context: CanvasRenderingContext2D; + if (rowRead.currentContext) { context = rowRead.currentContext; - } else{ - context = rowRead.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = rowRead.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } rowRead.canvasSave(context); (renders[TraceRow.ROW_TYPE_FILE_SYSTEM] as FileSystemRender).renderMainThread( @@ -275,14 +275,14 @@ export class SpFileSystemChart { rowWrite.selectChangeHandler = this.trace.selectChangeHandler; rowWrite.focusHandler = () => this.focusHandler(rowWrite); rowWrite.findHoverStruct = () => { - FileSysChartStruct.hoverFileSysStruct = rowWrite.getHoverStruct() + FileSysChartStruct.hoverFileSysStruct = rowWrite.getHoverStruct(); }; rowWrite.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(rowWrite.currentContext){ + let context: CanvasRenderingContext2D; + if (rowWrite.currentContext) { context = rowWrite.currentContext; - } else{ - context = rowWrite.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = rowWrite.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } rowWrite.canvasSave(context); (renders[TraceRow.ROW_TYPE_FILE_SYSTEM] as FileSystemRender).renderMainThread( @@ -317,14 +317,14 @@ export class SpFileSystemChart { vmTraceRow.selectChangeHandler = this.trace.selectChangeHandler; vmTraceRow.focusHandler = () => this.focusHandler(vmTraceRow); vmTraceRow.findHoverStruct = () => { - FileSysChartStruct.hoverFileSysStruct = vmTraceRow.getHoverStruct() + FileSysChartStruct.hoverFileSysStruct = vmTraceRow.getHoverStruct(); }; vmTraceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(vmTraceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (vmTraceRow.currentContext) { context = vmTraceRow.currentContext; - } else{ - context = vmTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = vmTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } vmTraceRow.canvasSave(context); (renders[TraceRow.ROW_TYPE_FILE_SYSTEM] as FileSystemRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpFpsChart.ts b/ide/src/trace/component/chart/SpFpsChart.ts index cf77b8f8..3a403662 100644 --- a/ide/src/trace/component/chart/SpFpsChart.ts +++ b/ide/src/trace/component/chart/SpFpsChart.ts @@ -51,14 +51,14 @@ export class SpFpsChart { this.trace?.displayTip(fpsRow, FpsStruct.hoverFpsStruct, tip); }; fpsRow.findHoverStruct = () => { - FpsStruct.hoverFpsStruct = fpsRow.getHoverStruct() + FpsStruct.hoverFpsStruct = fpsRow.getHoverStruct(); }; fpsRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(fpsRow.currentContext){ + let context: CanvasRenderingContext2D; + if (fpsRow.currentContext) { context = fpsRow.currentContext; - } else{ - context = fpsRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = fpsRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } fpsRow.canvasSave(context); (renders['fps'] as FpsRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpFrameTimeChart.ts b/ide/src/trace/component/chart/SpFrameTimeChart.ts index 849ec9c6..676e2361 100644 --- a/ide/src/trace/component/chart/SpFrameTimeChart.ts +++ b/ide/src/trace/component/chart/SpFrameTimeChart.ts @@ -25,24 +25,15 @@ import { queryFrameDynamicData, queryFrameSpacing, queryFrameTimeData, - queryPhysicalData + queryPhysicalData, } from '../../database/SqlLite.js'; import { JanksStruct } from '../../bean/JanksStruct.js'; import { ns2xByTimeShaft, PairPoint } from '../../database/ui-worker/ProcedureWorkerCommon.js'; import { LitPopover } from '../../../base-ui/popover/LitPopoverV.js'; -import { - FrameDynamicRender, - FrameDynamicStruct -} from '../../database/ui-worker/ProcedureWorkerFrameDynamic.js'; -import { - FrameAnimationRender, - FrameAnimationStruct -} from '../../database/ui-worker/ProcedureWorkerFrameAnimation.js'; +import { FrameDynamicRender, FrameDynamicStruct } from '../../database/ui-worker/ProcedureWorkerFrameDynamic.js'; +import { FrameAnimationRender, FrameAnimationStruct } from '../../database/ui-worker/ProcedureWorkerFrameAnimation.js'; import { BaseStruct } from '../../bean/BaseStruct.js'; -import { - FrameSpacingRender, - FrameSpacingStruct -} from '../../database/ui-worker/ProcedureWorkerFrameSpacing.js'; +import { FrameSpacingRender, FrameSpacingStruct } from '../../database/ui-worker/ProcedureWorkerFrameSpacing.js'; import { FlagsConfig, Params } from '../SpFlags.js'; import { AnimationRanges, DeviceStruct } from '../../bean/FrameComponentBean.js'; import { EmptyRender } from '../../database/ui-worker/ProcedureWorkerCPU.js'; @@ -74,32 +65,36 @@ export class SpFrameTimeChart { frameTimeLineRow.folder = true; frameTimeLineRow.name = 'FrameTimeline'; frameTimeLineRow.setAttribute('children', ''); - frameTimeLineRow.supplier = (): Promise => new Promise((resolve) => { - resolve([]); - }); + frameTimeLineRow.supplier = (): Promise => + new Promise((resolve) => { + resolve([]); + }); frameTimeLineRow.addTemplateTypes('AppStartup'); frameTimeLineRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; frameTimeLineRow.selectChangeHandler = this.trace.selectChangeHandler; frameTimeLineRow.onThreadHandler = (useCache: boolean): void => { - let context:CanvasRenderingContext2D; - if(frameTimeLineRow.currentContext){ + let context: CanvasRenderingContext2D; + if (frameTimeLineRow.currentContext) { context = frameTimeLineRow.currentContext; - } else{ - context = frameTimeLineRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = frameTimeLineRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } frameTimeLineRow!.canvasSave(context); - (renders.jank as JankRender).renderMainThread({ - context: context, useCache: useCache, type: 'expected_frame_timeline_slice' - }, frameTimeLineRow!); + (renders.jank as JankRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'expected_frame_timeline_slice', + }, + frameTimeLineRow! + ); frameTimeLineRow!.canvasRestore(context); }; this.trace.rowsEL?.appendChild(frameTimeLineRow); return frameTimeLineRow; } - async initExpectedChart( - frameTimeLineRow: TraceRow - ): Promise { + async initExpectedChart(frameTimeLineRow: TraceRow): Promise { let frameExpectedData = await this.getExpectedFrameDate(); let unitIndex: number = 1; let unitHeight: number = 20; @@ -117,30 +112,34 @@ export class SpFrameTimeChart { expectedTimeLineRow.addTemplateTypes('FrameTimeline'); expectedTimeLineRow.setAttribute('height', `${maxHeight}`); expectedTimeLineRow.setAttribute('children', ''); - expectedTimeLineRow.supplier = (): Promise => new Promise((resolve): void => { - resolve(frameExpectedData); - }); + expectedTimeLineRow.supplier = (): Promise => + new Promise((resolve): void => { + resolve(frameExpectedData); + }); expectedTimeLineRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; expectedTimeLineRow.selectChangeHandler = this.trace.selectChangeHandler; expectedTimeLineRow.onThreadHandler = (useCache: boolean): void => { - let context:CanvasRenderingContext2D; - if(expectedTimeLineRow.currentContext){ + let context: CanvasRenderingContext2D; + if (expectedTimeLineRow.currentContext) { context = expectedTimeLineRow.currentContext; - } else{ - context = expectedTimeLineRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = expectedTimeLineRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } expectedTimeLineRow!.canvasSave(context); - (renders.jank as JankRender).renderMainThread({ - context: context, useCache: useCache, type: 'expected_frame_timeline_slice' - }, expectedTimeLineRow!); + (renders.jank as JankRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'expected_frame_timeline_slice', + }, + expectedTimeLineRow! + ); expectedTimeLineRow!.canvasRestore(context); }; frameTimeLineRow.addChildTraceRow(expectedTimeLineRow); } - async initActualChart( - frameTimeLineRow: TraceRow - ): Promise { + async initActualChart(frameTimeLineRow: TraceRow): Promise { let frameActualData = await this.getActualFrameDate(); let unitIndex: number = 1; let unitHeight: number = 20; @@ -157,22 +156,28 @@ export class SpFrameTimeChart { actualTimeLineRow.setAttribute('height', `${maxHeight}`); actualTimeLineRow.setAttribute('children', ''); actualTimeLineRow.dataList = frameActualData; - actualTimeLineRow.supplier = (): Promise => new Promise((resolve): void => { - resolve(frameActualData); - }); + actualTimeLineRow.supplier = (): Promise => + new Promise((resolve): void => { + resolve(frameActualData); + }); actualTimeLineRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; actualTimeLineRow.selectChangeHandler = this.trace.selectChangeHandler; actualTimeLineRow.onThreadHandler = (useCache: boolean): void => { - let context:CanvasRenderingContext2D; - if(actualTimeLineRow.currentContext){ + let context: CanvasRenderingContext2D; + if (actualTimeLineRow.currentContext) { context = actualTimeLineRow.currentContext; - } else{ - context = actualTimeLineRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = actualTimeLineRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } actualTimeLineRow!.canvasSave(context); - (renders.jank as JankRender).renderMainThread({ - context: context, useCache: useCache, type: 'expected_frame_timeline_slice' - }, actualTimeLineRow!); + (renders.jank as JankRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'expected_frame_timeline_slice', + }, + actualTimeLineRow! + ); actualTimeLineRow!.canvasRestore(context); }; frameTimeLineRow.addChildTraceRow(actualTimeLineRow); @@ -192,14 +197,15 @@ export class SpFrameTimeChart { async initAnimatedScenesChart( processRow: TraceRow, - process: { pid: number | null; processName: string | null; }, + process: { pid: number | null; processName: string | null }, firstRow: TraceRow ): Promise { this.flagConfig = FlagsConfig.getFlagsConfig('AnimationAnalysis'); if (this.flagConfig?.AnimationAnalysis === 'Enabled') { if (process.processName?.startsWith('render_service')) { - let targetRowList = processRow.childrenList.filter(childRow => - childRow.rowType === 'thread' && childRow.name.startsWith('render_service')); + let targetRowList = processRow.childrenList.filter( + (childRow) => childRow.rowType === 'thread' && childRow.name.startsWith('render_service') + ); let nameArr: { name: string }[] = await queryFrameApp(); if (nameArr && nameArr.length > 0) { let currentName = nameArr[0].name; @@ -230,7 +236,7 @@ export class SpFrameTimeChart { if (radioList[index]) { radioList[index].checked = true; frameChart.name = radioList[index].value; - frameChart.childrenList.forEach(childrenRow => { + frameChart.childrenList.forEach((childrenRow) => { childrenRow.setAttribute('model-name', `${radioList[index].value}`); }); systemPopover.blur(); @@ -249,18 +255,25 @@ export class SpFrameTimeChart { frameChart.folder = true; frameChart.name = nameArr[0].name; frameChart.setAttribute('children', ''); - frameChart.supplier = (): Promise => new Promise((resolve) => { - resolve([]); - }); + frameChart.supplier = (): Promise => + new Promise((resolve) => { + resolve([]); + }); frameChart.favoriteChangeHandler = this.trace.favoriteChangeHandler; frameChart.selectChangeHandler = this.trace.selectChangeHandler; frameChart.onThreadHandler = (useCache: boolean): void => { - let context: CanvasRenderingContext2D = frameChart!.collect ? this.trace.canvasFavoritePanelCtx! : - this.trace.canvasPanelCtx!; + let context: CanvasRenderingContext2D = frameChart!.collect + ? this.trace.canvasFavoritePanelCtx! + : this.trace.canvasPanelCtx!; frameChart!.canvasSave(context); - (renders.empty as EmptyRender).renderMainThread({ - context: context, useCache: useCache, type: 'frame' - }, frameChart!); + (renders.empty as EmptyRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'frame', + }, + frameChart! + ); frameChart!.canvasRestore(context); }; this.trace.rowsEL?.appendChild(frameChart); @@ -274,17 +287,18 @@ export class SpFrameTimeChart { let frameAnimationData: FrameAnimationStruct[] = await queryFrameAnimationData(); let animationRanges: AnimationRanges[] = []; if (frameAnimationData.length > 0) { - frameAnimationData.forEach(data => { + frameAnimationData.forEach((data) => { if (data.status === 'Completion delay') { animationRanges.push({ - start: data.startTs, end: data.endTs + start: data.startTs, + end: data.endTs, }); } data.dur = data.endTs - data.startTs; }); let unitIndex: number = 1; - let isIntersect = (a: FrameAnimationStruct, b: FrameAnimationStruct): boolean => Math.max(a.startTs! + a.dur!, b.startTs! + b.dur!) - - Math.min(a.startTs!, b.startTs!) < a.dur! + b.dur!; + let isIntersect = (a: FrameAnimationStruct, b: FrameAnimationStruct): boolean => + Math.max(a.startTs! + a.dur!, b.startTs! + b.dur!) - Math.min(a.startTs!, b.startTs!) < a.dur! + b.dur!; let depths = []; for (let i: number = 0; i < frameAnimationData.length; i++) { if (!frameAnimationData[i].dur || frameAnimationData[i].dur < 0) { @@ -328,18 +342,25 @@ export class SpFrameTimeChart { frameAnimationRow.setAttribute('height', `${maxHeight}`); frameAnimationRow.addTemplateTypes('Animation Effect'); frameAnimationRow.setAttribute('children', ''); - frameAnimationRow.supplier = (): Promise => new Promise((resolve) => { - resolve(frameAnimationData); - }); + frameAnimationRow.supplier = (): Promise => + new Promise((resolve) => { + resolve(frameAnimationData); + }); frameAnimationRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; frameAnimationRow.selectChangeHandler = this.trace.selectChangeHandler; frameAnimationRow.onThreadHandler = (useCache): void => { - let context: CanvasRenderingContext2D = frameAnimationRow!.collect ? this.trace.canvasFavoritePanelCtx! : - this.trace.canvasPanelCtx!; + let context: CanvasRenderingContext2D = frameAnimationRow!.collect + ? this.trace.canvasFavoritePanelCtx! + : this.trace.canvasPanelCtx!; frameAnimationRow!.canvasSave(context); - (renders.frameAnimation as FrameAnimationRender).renderMainThread({ - context: context, useCache: useCache, type: 'frameAnimation' - }, frameAnimationRow!); + (renders.frameAnimation as FrameAnimationRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'frameAnimation', + }, + frameAnimationRow! + ); frameAnimationRow!.canvasRestore(context); }; processRow.addChildTraceRowBefore(frameAnimationRow, firstRow); @@ -353,8 +374,8 @@ export class SpFrameTimeChart { ): Promise { let frameDynamicCurveData: FrameDynamicStruct[] = await queryFrameDynamicData(); let systemConfigList: { - name: string - }[] = [{name: 'x'}, {name: 'y'}, {name: 'width'}, {name: 'height'}, {name: 'alpha'}]; + name: string; + }[] = [{ name: 'x' }, { name: 'y' }, { name: 'width' }, { name: 'height' }, { name: 'alpha' }]; let dynamicCurveRow: TraceRow = TraceRow.skeleton(); let systemPopover = this.addSystemConfigButton(dynamicCurveRow, systemConfigList); this.initSystemConfig(systemPopover, dynamicCurveRow); @@ -373,32 +394,34 @@ export class SpFrameTimeChart { dynamicCurveRow.setAttribute('children', ''); dynamicCurveRow.setAttribute('model-type', systemConfigList[0].name); dynamicCurveRow.setAttribute('model-name', name); - dynamicCurveRow.supplier = (): Promise => new Promise((resolve): void => { - resolve(frameDynamicCurveData); - }); + dynamicCurveRow.supplier = (): Promise => + new Promise((resolve): void => { + resolve(frameDynamicCurveData); + }); dynamicCurveRow.favoriteChangeHandler = (): void => { this.favoriteSelect(systemPopover, dynamicCurveRow); }; dynamicCurveRow.selectChangeHandler = this.trace.selectChangeHandler; dynamicCurveRow.onThreadHandler = (useCache: boolean): void => { - let context: CanvasRenderingContext2D = dynamicCurveRow!.collect ? this.trace.canvasFavoritePanelCtx! : - this.trace.canvasPanelCtx!; + let context: CanvasRenderingContext2D = dynamicCurveRow!.collect + ? this.trace.canvasFavoritePanelCtx! + : this.trace.canvasPanelCtx!; dynamicCurveRow!.canvasSave(context); - (renders.frameDynamicCurve as FrameDynamicRender).renderMainThread({ - context: context, - useCache: useCache, - type: 'dynamicEffectCurve', - animationRanges: animationRanges - }, dynamicCurveRow!); + (renders.frameDynamicCurve as FrameDynamicRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'dynamicEffectCurve', + animationRanges: animationRanges, + }, + dynamicCurveRow! + ); dynamicCurveRow!.canvasRestore(context); }; frameChart.addChildTraceRow(dynamicCurveRow); } - private initSystemConfig( - systemPopover: LitPopover, - dynamicCurveRow: TraceRow - ): void { + private initSystemConfig(systemPopover: LitPopover, dynamicCurveRow: TraceRow): void { let radioList = systemPopover.querySelectorAll('.radio'); let divElement = systemPopover.querySelectorAll('.option'); radioList[0].checked = true; @@ -417,10 +440,7 @@ export class SpFrameTimeChart { }); } - private favoriteSelect( - systemPopover: LitPopover, - dynamicCurveRow: TraceRow - ): void { + private favoriteSelect(systemPopover: LitPopover, dynamicCurveRow: TraceRow): void { let popover = systemPopover.querySelector('.dynamicPopover') as HTMLDivElement; if (dynamicCurveRow.collect) { systemPopover.setAttribute('placement', 'right'); @@ -443,7 +463,7 @@ export class SpFrameTimeChart { let frameResultData: FrameSpacingStruct[] = []; for (let index = 0; index < nameArr.length; index++) { let appName: string = nameArr[index].name; - let filterData = frameData.filter(spacingData => spacingData.nameId === appName); + let filterData = frameData.filter((spacingData) => spacingData.nameId === appName); this.dataProcessing(filterData, deviceStruct); frameResultData.push(...filterData); } @@ -459,30 +479,31 @@ export class SpFrameTimeChart { frameSpacingRow.setAttribute('height', '140'); frameSpacingRow.setAttribute('children', ''); frameSpacingRow.setAttribute('model-name', name); - frameSpacingRow.supplier = (): Promise => new Promise((resolve): void => { - resolve(frameResultData); - }); + frameSpacingRow.supplier = (): Promise => + new Promise((resolve): void => { + resolve(frameResultData); + }); frameSpacingRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; frameSpacingRow.selectChangeHandler = this.trace.selectChangeHandler; frameSpacingRow.onThreadHandler = (useCache: boolean): void => { let context = frameSpacingRow!.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; frameSpacingRow!.canvasSave(context); - (renders.frameSpacing as FrameSpacingRender).renderMainThread({ - context: context, - useCache: useCache, - type: 'frame_spacing_slice', - frameRate: deviceStruct.physicalFrameRate, - animationRanges: animationRanges - }, frameSpacingRow!); + (renders.frameSpacing as FrameSpacingRender).renderMainThread( + { + context: context, + useCache: useCache, + type: 'frame_spacing_slice', + frameRate: deviceStruct.physicalFrameRate, + animationRanges: animationRanges, + }, + frameSpacingRow! + ); frameSpacingRow!.canvasRestore(context); }; frameChart.addChildTraceRow(frameSpacingRow); } - dataProcessing( - frameData: FrameSpacingStruct[], - deviceStruct: DeviceStruct - ): void { + dataProcessing(frameData: FrameSpacingStruct[], deviceStruct: DeviceStruct): void { let unitIndex: number = 1; let secondToNanosecond: number = 1000_000_000; let physicalWidth = Number(this.flagConfig!.physicalWidth); @@ -518,10 +539,7 @@ export class SpFrameTimeChart { } } - addSystemConfigButton( - systemTraceRow: TraceRow, - systemConfigList: { name: string }[] - ): LitPopover { + addSystemConfigButton(systemTraceRow: TraceRow, systemConfigList: { name: string }[]): LitPopover { let rowContent: HTMLDivElement = systemTraceRow.shadowRoot?.querySelector('.describe') as HTMLDivElement; let systemPopover: LitPopover = document.createElement('lit-popover') as LitPopover; systemPopover.style.zIndex = '100'; @@ -533,10 +551,14 @@ export class SpFrameTimeChart { systemPopover.setAttribute('haveRadio', 'true'); systemPopover.innerHTML = `

` + ) + .join('')}

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�`V2SilYL0o+HQqVGp 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 NMRWqoG0iVu{s-#{yK(>k diff --git a/ide/src/figures/OperationSkills/Tabskilltemple.jpg b/ide/src/figures/OperationSkills/Tabskilltemple.jpg deleted file mode 100644 index 184e1ff8e7fe3d91e0bcd86c028f22e96d52e130..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136725 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 diff --git a/ide/src/figures/OperationSkills/collectskilldrag.jpg b/ide/src/figures/OperationSkills/collectskilldrag.jpg deleted file mode 100644 index ae18dce8807d32d9e1ceab75d2f2dcf58ff999bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153430 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 O$ES$oPg(=}AN~(nDm`uh diff --git a/ide/src/figures/OperationSkills/collectskillg.jpg b/ide/src/figures/OperationSkills/collectskillg.jpg deleted file mode 100644 index c4bdf5183c7aa3aa6c24dea3ca46a863915a04f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115704 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

`; rowContent.appendChild(systemPopover); @@ -545,10 +567,10 @@ export class SpFrameTimeChart { private frameNoExpandTimeOut( event: CustomEventInit<{ - expansion: boolean, - rowType: string, - rowId: string, - rowParentId: string + expansion: boolean; + rowType: string; + rowId: string; + rowParentId: string; }>, frameTimeLineRow: TraceRow ): number { @@ -594,7 +616,7 @@ export class SpFrameTimeChart { } private frameExpandTimeOut( - event: CustomEventInit<{ expansion: boolean, rowType: string, rowId: string, rowParentId: string }>, + event: CustomEventInit<{ expansion: boolean; rowType: string; rowId: string; rowParentId: string }>, actualTimeLineRow: TraceRow ): number { let topPadding: number = 195; @@ -645,8 +667,8 @@ export class SpFrameTimeChart { let frameExpectedData = await queryExpectedFrameDate(); if (frameExpectedData.length > 0) { let unitIndex: number = 1; - let isIntersect = (a: JanksStruct, b: JanksStruct): boolean => Math.max(a.ts! + a.dur!, b.ts! + b.dur!) - - Math.min(a.ts!, b.ts!) < a.dur! + b.dur!; + let isIntersect = (a: JanksStruct, b: JanksStruct): boolean => + Math.max(a.ts! + a.dur!, b.ts! + b.dur!) - Math.min(a.ts!, b.ts!) < a.dur! + b.dur!; let depths = []; for (let i: number = 0; i < frameExpectedData.length; i++) { let it = frameExpectedData[i]; @@ -685,7 +707,8 @@ export class SpFrameTimeChart { let unitIndex: number = 1; let isIntersect = (leftStruct: JanksStruct, rightStruct: JanksStruct): boolean => Math.max(leftStruct.ts! + leftStruct.dur!, rightStruct.ts! + rightStruct.dur!) - - Math.min(leftStruct.ts!, rightStruct.ts!) < leftStruct.dur! + rightStruct.dur!; + Math.min(leftStruct.ts!, rightStruct.ts!) < + leftStruct.dur! + rightStruct.dur!; let depthArray = []; for (let index: number = 0; index < frameActualData.length; index++) { let it = frameActualData[index]; diff --git a/ide/src/trace/component/chart/SpFreqChart.ts b/ide/src/trace/component/chart/SpFreqChart.ts index 41298338..7836fb63 100644 --- a/ide/src/trace/component/chart/SpFreqChart.ts +++ b/ide/src/trace/component/chart/SpFreqChart.ts @@ -80,11 +80,11 @@ export class SpFreqChart { CpuFreqStruct.hoverCpuFreqStruct = traceRow.getHoverStruct(); }; traceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(traceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (traceRow.currentContext) { context = traceRow.currentContext; - } else{ - context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); (renders['freq'] as FreqRender).renderMainThread( @@ -129,11 +129,11 @@ export class SpFreqChart { CpuStateStruct.hoverStateStruct = cpuStateRow.getHoverStruct(); }; cpuStateRow.onThreadHandler = (useCache: boolean) => { - let context:CanvasRenderingContext2D; - if(cpuStateRow.currentContext){ + let context: CanvasRenderingContext2D; + if (cpuStateRow.currentContext) { context = cpuStateRow.currentContext; - } else{ - context = cpuStateRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = cpuStateRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } cpuStateRow.canvasSave(context); (renders['cpu-state'] as CpuStateRender).renderMainThread( @@ -182,11 +182,11 @@ export class SpFreqChart { CpuFreqLimitsStruct.hoverCpuFreqLimitsStruct = cpuFreqLimitRow.getHoverStruct(); }; cpuFreqLimitRow.onThreadHandler = (useCache: boolean) => { - let context:CanvasRenderingContext2D; - if(cpuFreqLimitRow.currentContext){ + let context: CanvasRenderingContext2D; + if (cpuFreqLimitRow.currentContext) { context = cpuFreqLimitRow.currentContext; - } else{ - context = cpuFreqLimitRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = cpuFreqLimitRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } cpuFreqLimitRow.canvasSave(context); (renders['cpu-limit-freq'] as CpuFreqLimitRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpHiPerf.ts b/ide/src/trace/component/chart/SpHiPerf.ts index d5d4483c..69493896 100644 --- a/ide/src/trace/component/chart/SpHiPerf.ts +++ b/ide/src/trace/component/chart/SpHiPerf.ts @@ -166,11 +166,11 @@ export class SpHiPerf { HiPerfCpuStruct.hoverStruct = cpuMergeRow.getHoverStruct(); }; cpuMergeRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(cpuMergeRow.currentContext){ + let context: CanvasRenderingContext2D; + if (cpuMergeRow.currentContext) { context = cpuMergeRow.currentContext; - } else{ - context = cpuMergeRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = cpuMergeRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } cpuMergeRow.canvasSave(context); (renders['HiPerf-Cpu'] as HiperfCpuRender).renderMainThread( @@ -211,11 +211,11 @@ export class SpHiPerf { HiPerfCpuStruct.hoverStruct = perfCpuRow.getHoverStruct(); }; perfCpuRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(perfCpuRow.currentContext){ + let context: CanvasRenderingContext2D; + if (perfCpuRow.currentContext) { context = perfCpuRow.currentContext; - } else{ - context = perfCpuRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = perfCpuRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } perfCpuRow.canvasSave(context); (renders['HiPerf-Cpu'] as HiperfCpuRender).renderMainThread( @@ -248,7 +248,7 @@ export class SpHiPerf { row.rowParentId = 'HiPerf'; row.rowHidden = !this.rowFolder.expansion; row.folder = true; - if (SpChartManager.APP_STARTUP_PID_ARR.find(pid => pid === process.pid) !== undefined) { + if (SpChartManager.APP_STARTUP_PID_ARR.find((pid) => pid === process.pid) !== undefined) { row.addTemplateTypes('AppStartup'); } row.addTemplateTypes('HiPerf'); @@ -263,11 +263,11 @@ export class SpHiPerf { HiPerfProcessStruct.hoverStruct = row.getHoverStruct(); }; row.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(row.currentContext){ + let context: CanvasRenderingContext2D; + if (row.currentContext) { context = row.currentContext; - } else{ - context = row.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = row.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } row.canvasSave(context); if (row.expansion) { @@ -309,11 +309,11 @@ export class SpHiPerf { HiPerfThreadStruct.hoverStruct = thread.getHoverStruct(); }; thread.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(thread.currentContext){ + let context: CanvasRenderingContext2D; + if (thread.currentContext) { context = thread.currentContext; - } else{ - context = thread.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = thread.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } thread.canvasSave(context); (renders['HiPerf-Thread'] as HiperfThreadRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpHiSysEventChart.ts b/ide/src/trace/component/chart/SpHiSysEventChart.ts index d5614239..f3dc1727 100644 --- a/ide/src/trace/component/chart/SpHiSysEventChart.ts +++ b/ide/src/trace/component/chart/SpHiSysEventChart.ts @@ -191,11 +191,11 @@ export class SpHiSysEventChart { EnergyAnomalyStruct.hoverEnergyAnomalyStruct = anomalyTraceRow.getHoverStruct(); }; anomalyTraceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(anomalyTraceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (anomalyTraceRow.currentContext) { context = anomalyTraceRow.currentContext; - } else{ - context = anomalyTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = anomalyTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } anomalyTraceRow.canvasSave(context); (renders['energyAnomaly'] as EnergyAnomalyRender).renderMainThread( @@ -255,11 +255,11 @@ export class SpHiSysEventChart { EnergySystemStruct.hoverEnergySystemStruct = systemTraceRow.getHoverStruct(); }; systemTraceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(systemTraceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (systemTraceRow.currentContext) { context = systemTraceRow.currentContext; - } else{ - context = systemTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = systemTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } systemTraceRow.canvasSave(context); (renders['energySystem'] as EnergySystemRender).renderMainThread( @@ -469,11 +469,11 @@ export class SpHiSysEventChart { ); }; powerTraceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(powerTraceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (powerTraceRow.currentContext) { context = powerTraceRow.currentContext; - } else{ - context = powerTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = powerTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } powerTraceRow.canvasSave(context); (renders['energyPower'] as EnergyPowerRender).renderMainThread( @@ -636,11 +636,11 @@ export class SpHiSysEventChart { this.trace?.displayTip(stateTraceRow, EnergyStateStruct.hoverEnergyStateStruct, tip); }; stateTraceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(stateTraceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (stateTraceRow.currentContext) { context = stateTraceRow.currentContext; - } else{ - context = stateTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = stateTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } stateTraceRow.canvasSave(context); (renders['energyState'] as EnergyStateRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpIrqChart.ts b/ide/src/trace/component/chart/SpIrqChart.ts index 4b468d77..b2800193 100644 --- a/ide/src/trace/component/chart/SpIrqChart.ts +++ b/ide/src/trace/component/chart/SpIrqChart.ts @@ -65,11 +65,11 @@ export class SpIrqChart { IrqStruct.hoverIrqStruct = traceRow.getHoverStruct(); }; traceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(traceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (traceRow.currentContext) { context = traceRow.currentContext; - } else{ - context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); (renders['irq'] as IrqRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpLogChart.ts b/ide/src/trace/component/chart/SpLogChart.ts index b73ba522..b59ae398 100644 --- a/ide/src/trace/component/chart/SpLogChart.ts +++ b/ide/src/trace/component/chart/SpLogChart.ts @@ -54,11 +54,11 @@ export class SpLogChart { resolve(dataArray); }); logsRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(logsRow.currentContext){ + let context: CanvasRenderingContext2D; + if (logsRow.currentContext) { context = logsRow.currentContext; - } else{ - context = logsRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = logsRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } logsRow.canvasSave(context); (renders.logs as LogRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpNativeMemoryChart.ts b/ide/src/trace/component/chart/SpNativeMemoryChart.ts index da2778a0..334bb485 100644 --- a/ide/src/trace/component/chart/SpNativeMemoryChart.ts +++ b/ide/src/trace/component/chart/SpNativeMemoryChart.ts @@ -80,16 +80,16 @@ export class SpNativeMemoryChart { }, { key: '1', - title: 'Native Memory Density' - } - ] + title: 'Native Memory Density', + }, + ]; nativeRow.onRowSettingChangeHandler = (value) => { nativeRow.childrenList.forEach((row) => (row.drawType = parseInt(value[0]))); this.trace.getCollectRows(`trace-row[row-type='heap']`).forEach((it) => { it.drawType = parseInt(value[0]); }); this.trace.refreshCanvas(false); - } + }; nativeRow.supplier = () => new Promise>((resolve) => resolve([])); nativeRow.onThreadHandler = (useCache) => { nativeRow.canvasSave(this.trace.canvasPanelCtx!); @@ -149,11 +149,11 @@ export class SpNativeMemoryChart { : this.getNativeMemoryStatisticByChartType(i - 1); }; allHeapRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(allHeapRow.currentContext){ + let context: CanvasRenderingContext2D; + if (allHeapRow.currentContext) { context = allHeapRow.currentContext; - } else{ - context = allHeapRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = allHeapRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } allHeapRow.canvasSave(context); (renders['heap'] as HeapRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpProcessChart.ts b/ide/src/trace/component/chart/SpProcessChart.ts index 8066dd4b..fb151dc6 100644 --- a/ide/src/trace/component/chart/SpProcessChart.ts +++ b/ide/src/trace/component/chart/SpProcessChart.ts @@ -35,7 +35,7 @@ import { queryProcessThreads, queryProcessThreadsByTable, queryStartupPidArray, - queryThreadData + queryThreadData, } from '../../database/SqlLite.js'; import { Utils } from '../trace/base/Utils.js'; import { info } from '../../../log/Log.js'; @@ -293,7 +293,7 @@ export class SpProcessChart { let isIntersect = (a: JanksStruct, b: JanksStruct): boolean => Math.max(a.ts! + a.dur!, b.ts! + b.dur!) - Math.min(a.ts!, b.ts!) < a.dur! + b.dur!; let depthArray: any = []; - for (let j = 0 ; j < expectedData.length ; j++) { + for (let j = 0; j < expectedData.length; j++) { let expectedItem = expectedData[j]; if (expectedItem.cmdline != 'render_service') { expectedItem.frame_type = 'app'; @@ -322,15 +322,15 @@ export class SpProcessChart { let maxHeight = max * 20; expectedRow = TraceRow.skeleton(); let timeLineType = expectedData[0].type; - expectedRow.rowId = `${ timeLineType }-${ it.pid }`; + expectedRow.rowId = `${timeLineType}-${it.pid}`; expectedRow.asyncFuncName = it.processName; expectedRow.asyncFuncNamePID = it.pid; expectedRow.rowType = TraceRow.ROW_TYPE_JANK; - expectedRow.rowParentId = `${ it.pid }`; + expectedRow.rowParentId = `${it.pid}`; expectedRow.rowHidden = !processRow.expansion; expectedRow.style.width = '100%'; - expectedRow.style.height = `${ maxHeight }px`; - expectedRow.setAttribute('height', `${ maxHeight }`); + expectedRow.style.height = `${maxHeight}px`; + expectedRow.setAttribute('height', `${maxHeight}`); expectedRow.setAttribute('frame_type', expectedData[0].frame_type); expectedRow.name = 'Expected Timeline'; expectedRow.addTemplateTypes('FrameTimeline'); @@ -360,7 +360,7 @@ export class SpProcessChart { let isIntersect = (a: any, b: any): boolean => Math.max(a.ts + a.dur, b.ts + b.dur) - Math.min(a.ts, b.ts) < a.dur + b.dur; let depthArray: any = []; - for (let j = 0 ; j < actualData.length ; j++) { + for (let j = 0; j < actualData.length; j++) { let actualItem = actualData[j]; if (actualItem.cmdline != 'render_service') { actualItem.frame_type = 'app'; @@ -392,13 +392,13 @@ export class SpProcessChart { let maxHeight = max * 20; actualRow = TraceRow.skeleton(); let timeLineType = actualData[0].type; - actualRow.rowId = `${ timeLineType }-${ it.pid }`; + actualRow.rowId = `${timeLineType}-${it.pid}`; actualRow.rowType = TraceRow.ROW_TYPE_JANK; - actualRow.rowParentId = `${ it.pid }`; + actualRow.rowParentId = `${it.pid}`; actualRow.rowHidden = !processRow.expansion; actualRow.style.width = '100%'; - actualRow.style.height = `${ maxHeight }px`; - actualRow.setAttribute('height', `${ maxHeight }`); + actualRow.style.height = `${maxHeight}px`; + actualRow.setAttribute('height', `${maxHeight}`); actualRow.name = 'Actual Timeline'; actualRow.addTemplateTypes('FrameTimeline'); actualRow.setAttribute('frame_type', actualData[0].frame_type); diff --git a/ide/src/trace/component/chart/SpSdkChart.ts b/ide/src/trace/component/chart/SpSdkChart.ts index 0b9f8bbe..7a04c1b5 100644 --- a/ide/src/trace/component/chart/SpSdkChart.ts +++ b/ide/src/trace/component/chart/SpSdkChart.ts @@ -248,11 +248,11 @@ export class SpSdkChart { let maxList = await queryCounterMax(sqlMap.maxSql, result.counter_id, componentId); let maxCounter = maxList[0].max_value; traceRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(traceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (traceRow.currentContext) { context = traceRow.currentContext; - } else{ - context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); (renders[TraceRow.ROW_TYPE_SDK_COUNTER] as SdkCounterRender).renderMainThread( @@ -374,11 +374,11 @@ export class SpSdkChart { SdkSliceStruct.hoverSdkSliceStruct = traceRow.getHoverStruct(); }; traceRow.onThreadHandler = (useCache: boolean) => { - let context:CanvasRenderingContext2D; - if(traceRow.currentContext){ + let context: CanvasRenderingContext2D; + if (traceRow.currentContext) { context = traceRow.currentContext; - } else{ - context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); (renders[TraceRow.ROW_TYPE_SDK_SLICE] as SdkSliceRender).renderMainThread( diff --git a/ide/src/trace/component/chart/SpVirtualMemChart.ts b/ide/src/trace/component/chart/SpVirtualMemChart.ts index fb1e22ee..5a2bab89 100644 --- a/ide/src/trace/component/chart/SpVirtualMemChart.ts +++ b/ide/src/trace/component/chart/SpVirtualMemChart.ts @@ -103,11 +103,11 @@ export class SpVirtualMemChart { VirtualMemoryStruct.hoverStruct = virtualMemoryRow.getHoverStruct(); }; virtualMemoryRow.onThreadHandler = (useCache) => { - let context:CanvasRenderingContext2D; - if(virtualMemoryRow.currentContext){ + let context: CanvasRenderingContext2D; + if (virtualMemoryRow.currentContext) { context = virtualMemoryRow.currentContext; - } else{ - context = virtualMemoryRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; + } else { + context = virtualMemoryRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } virtualMemoryRow.canvasSave(context); (renders['virtual-memory-cell'] as VirtualMemoryRender).renderMainThread( diff --git a/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts b/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts index 9df7992e..cdfa3eaf 100644 --- a/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts +++ b/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts @@ -76,7 +76,8 @@ export class TabCpuDetailsThreads extends BaseElement { } init(cpu: number, it: any) { - this.shadowRoot!.querySelector('.cpu-thread-subheading')!.textContent = 'Threads in Freq ' + it.value; + this.shadowRoot!.querySelector('.cpu-thread-subheading')!.textContent = + 'Threads in Freq ' + it.value; this.progress!.loading = true; procedurePool.submitWithName( 'logic1', diff --git a/ide/src/trace/component/schedulingAnalysis/Top20FrequencyThread.ts b/ide/src/trace/component/schedulingAnalysis/Top20FrequencyThread.ts index a73b6f56..355a2ac6 100644 --- a/ide/src/trace/component/schedulingAnalysis/Top20FrequencyThread.ts +++ b/ide/src/trace/component/schedulingAnalysis/Top20FrequencyThread.ts @@ -82,7 +82,7 @@ export class Top20FrequencyThread extends BaseElement { } this.frequencyThreadPie?.showHover(); }); - this.frequencyThreadTbl!.itemTextHandleMap.set('freq',(value) => value === -1 ? 'unknown' : value); + this.frequencyThreadTbl!.itemTextHandleMap.set('freq', (value) => (value === -1 ? 'unknown' : value)); } sortByColumn(detail: any) { @@ -168,14 +168,14 @@ export class Top20FrequencyThread extends BaseElement { data: this.getPieChartData(res), angleField: 'time', colorField: 'freq', - colorFieldTransferHandler: (value) => value === -1 ? 'unknown' : value, + colorFieldTransferHandler: (value) => (value === -1 ? 'unknown' : value), radius: 0.8, label: { type: 'outer', }, tip: (obj) => { return `
-
freq:${obj.obj.freq===-1 ? 'unknown' : obj.obj.freq}
+
freq:${obj.obj.freq === -1 ? 'unknown' : obj.obj.freq}
cpu:${obj.obj.cpu}
time:${obj.obj.timeStr}
ratio:${obj.obj.ratio}%
diff --git a/ide/src/trace/component/setting/SpAllocations.ts b/ide/src/trace/component/setting/SpAllocations.ts index 417fb833..8e73fd96 100644 --- a/ide/src/trace/component/setting/SpAllocations.ts +++ b/ide/src/trace/component/setting/SpAllocations.ts @@ -299,9 +299,9 @@ export class SpAllocations extends BaseElement { } this.processId!.removeAttribute('disabled'); let inputBoxes = this.shadowRoot?.querySelectorAll('.inputBoxes'); - inputBoxes!.forEach((item) =>{ + inputBoxes!.forEach((item) => { item.disabled = false; - }) + }); this.statisticsSlider!.disabled = false; } @@ -319,11 +319,11 @@ export class SpAllocations extends BaseElement { if (this.offlineSymbol) { this.offlineSymbol.disabled = true; } - this.processId!.setAttribute('disabled',''); + this.processId!.setAttribute('disabled', ''); let inputBoxes = this.shadowRoot?.querySelectorAll('.inputBoxes'); - inputBoxes!.forEach((item) =>{ + inputBoxes!.forEach((item) => { item.disabled = true; - }) + }); this.statisticsSlider!.disabled = true; } diff --git a/ide/src/trace/component/setting/SpHilogRecord.ts b/ide/src/trace/component/setting/SpHilogRecord.ts index c18badb3..91ab78dd 100644 --- a/ide/src/trace/component/setting/SpHilogRecord.ts +++ b/ide/src/trace/component/setting/SpHilogRecord.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import {BaseElement, element} from '../../../base-ui/BaseElement.js'; +import { BaseElement, element } from '../../../base-ui/BaseElement.js'; import LitSwitch from '../../../base-ui/switch/lit-switch.js'; import '../../../base-ui/select/LitAllocationSelect.js'; diff --git a/ide/src/trace/component/setting/SpProbesConfig.ts b/ide/src/trace/component/setting/SpProbesConfig.ts index f7192cfe..a3c86def 100644 --- a/ide/src/trace/component/setting/SpProbesConfig.ts +++ b/ide/src/trace/component/setting/SpProbesConfig.ts @@ -233,13 +233,13 @@ export class SpProbesConfig extends BaseElement { { value: 'usb', isSelect: false }, { value: 'ufs', isSelect: false }, { value: 'useriam', isSelect: false }, + { value: 'virse', isSelect: false }, { value: 'window', isSelect: true }, { value: 'workq', isSelect: true }, { value: 'zaudio', isSelect: true }, { value: 'zcamera', isSelect: true }, { value: 'zimage', isSelect: true }, { value: 'zmedia', isSelect: true }, - { value: 'virse', isSelect: false } ]; this.hitrace = this.shadowRoot?.getElementById('hitrace') as SpCheckDesBox; let parent = this.shadowRoot?.querySelector('.user-events') as Element; diff --git a/ide/src/trace/component/setting/SpRecordSetting.ts b/ide/src/trace/component/setting/SpRecordSetting.ts index dc5caeb3..f2f36f84 100644 --- a/ide/src/trace/component/setting/SpRecordSetting.ts +++ b/ide/src/trace/component/setting/SpRecordSetting.ts @@ -35,7 +35,7 @@ export class SpRecordSetting extends BaseElement { private lastDurationValue: string | undefined; isRecordTemplate: boolean = false; - get longTraceSingleFileMaxSize(): number{ + get longTraceSingleFileMaxSize(): number { let maxFileSizeEl = this.shadowRoot?.querySelector('.max_size_result'); if (maxFileSizeEl) { return Number(maxFileSizeEl.value); @@ -52,7 +52,7 @@ export class SpRecordSetting extends BaseElement { get longOutPath(): string { if (this.outputPath && this.outputPath.value !== '' && this.outputPath.value !== 'long_trace/') { - return `/data/local/tmp/${ this.outputPath.value}/`; + return `/data/local/tmp/${this.outputPath.value}/`; } return '/data/local/tmp/long_trace/'; } @@ -60,18 +60,17 @@ export class SpRecordSetting extends BaseElement { get output(): string { if (SpApplication.isLongTrace && !this.isRecordTemplate) { if (this.outputPath && this.outputPath.value !== 'long_trace/' && this.outputPath.value !== '') { - return `/data/local/tmp/${ this.outputPath.value}/hiprofiler_data.htrace`; + return `/data/local/tmp/${this.outputPath.value}/hiprofiler_data.htrace`; } return '/data/local/tmp/long_trace/hiprofiler_data.htrace'; } else { if (this.outputPath && this.outputPath.value !== '') { - return `/data/local/tmp/${ this.outputPath.value}`; + return `/data/local/tmp/${this.outputPath.value}`; } return '/data/local/tmp/hiprofiler_data.htrace'; } } - get bufferSize(): number { if (this.bufferNumber?.hasAttribute('percent')) { info('bufferSize is : ', this.bufferNumber!.getAttribute('percent')); @@ -92,19 +91,19 @@ export class SpRecordSetting extends BaseElement { let bufferInput = this.shadowRoot?.querySelector('.memory_buffer_result') as HTMLInputElement; let parentElement = this.memoryBufferSlider!.parentNode as Element; if (bufferInput.style.color != 'var(--dark-color1,#000000)' && this.lastMemoryValue) { - bufferInput.value = `${this.lastMemoryValue }`; - this.memoryBufferSlider!.percent = `${this.lastMemoryValue }`; + bufferInput.value = `${this.lastMemoryValue}`; + this.memoryBufferSlider!.percent = `${this.lastMemoryValue}`; this.memoryBufferSlider!.sliderStyle = { minRange: 4, maxRange: 512, - defaultValue: `${this.lastMemoryValue }`, + defaultValue: `${this.lastMemoryValue}`, resultUnit: 'MB', stepSize: 2, lineColor: 'var(--dark-color3,#46B1E3)', buttonColor: '#999999', }; - parentElement.setAttribute('percent', `${this.lastMemoryValue }`); - this.lastMemoryValue = `${this.lastMemoryValue }`; + parentElement.setAttribute('percent', `${this.lastMemoryValue}`); + this.lastMemoryValue = `${this.lastMemoryValue}`; bufferInput.style.color = 'var(--dark-color1,#000000)'; } @@ -178,9 +177,9 @@ export class SpRecordSetting extends BaseElement { lineColor: 'var(--dark-color3,#46B1E3)', buttonColor: '#999999', }; - maxSizeSliders.addEventListener('input', ()=>{ + maxSizeSliders.addEventListener('input', () => { if (maxSingleFileEl?.hasAttribute('percent')) { - maxSizeInput.value = `${maxSingleFileEl?.getAttribute('percent') }`; + maxSizeInput.value = `${maxSingleFileEl?.getAttribute('percent')}`; } else { maxSizeInput.value = maxSizeSliders.sliderStyle.defaultValue; } @@ -204,14 +203,14 @@ export class SpRecordSetting extends BaseElement { maxSizeParentElement.setAttribute('percent', maxSizeInput.value); }); - this.radioBox!.addEventListener('click', ()=>{ + this.radioBox!.addEventListener('click', () => { SpApplication.isLongTrace = false; if (rootEl.lastChild === longTraceMaxSlide) { rootEl.removeChild(longTraceMaxSlide); } this.outputPath!.value = 'hiprofiler_data.htrace'; }); - this.longTraceRadio.addEventListener('click', ()=>{ + this.longTraceRadio.addEventListener('click', () => { SpApplication.isLongTrace = true; rootEl.appendChild(longTraceMaxSlide); this.outputPath!.value = 'long_trace/'; @@ -334,11 +333,11 @@ export class SpRecordSetting extends BaseElement { durationInput.parentElement!.style.backgroundColor = 'var(--dark-background5,#F2F2F2)'; durationInput.style.backgroundColor = 'var(--dark-background5,#F2F2F2)'; let htmlInputElement = this.maxDurationSliders!.shadowRoot?.querySelector('#slider') as HTMLInputElement; - htmlInputElement.value = `${resultDuration }`; + htmlInputElement.value = `${resultDuration}`; this.maxDurationSliders!.sliderStyle = { minRange: 10, maxRange: 3600, - defaultValue: `${Number(durationList[0]) }:${ Number(durationList[1]) }:${ Number(durationList[2])}`, + defaultValue: `${Number(durationList[0])}:${Number(durationList[1])}:${Number(durationList[2])}`, resultUnit: 'h:m:s', stepSize: 1, lineColor: 'var(--dark-color4,#61CFBE)', diff --git a/ide/src/trace/component/setting/SpRecordTemplate.ts b/ide/src/trace/component/setting/SpRecordTemplate.ts index 72893e42..f90a3895 100644 --- a/ide/src/trace/component/setting/SpRecordTemplate.ts +++ b/ide/src/trace/component/setting/SpRecordTemplate.ts @@ -76,7 +76,8 @@ export class SpRecordTemplate extends BaseElement { 'zimage', 'zmedia', ]; - static HIPERF_DEFAULT_RECORD_ARGS = '-f 1000 -a --cpu-limit 100 -e hw-cpu-cycles,sched:sched_waking' + + static HIPERF_DEFAULT_RECORD_ARGS = + '-f 1000 -a --cpu-limit 100 -e hw-cpu-cycles,sched:sched_waking' + ' --call-stack dwarf --clockid monotonic --offcpu -m 256'; private frameTimeline: LitSwitch | undefined | null; private schedulingAnalysis: LitSwitch | undefined | null; @@ -90,18 +91,23 @@ export class SpRecordTemplate extends BaseElement { this.appStartup = this.shadowRoot?.querySelector('#app_startup'); this.taskPoolEl = this.shadowRoot?.querySelector('#task_pool'); this.dynamicEffectEl = this.shadowRoot?.querySelector('#dynamic_effect'); - this.addProbeListener(this.frameTimeline!, this.schedulingAnalysis!, this.appStartup!, this.taskPoolEl!, this.dynamicEffectEl!); + this.addProbeListener( + this.frameTimeline!, + this.schedulingAnalysis!, + this.appStartup!, + this.taskPoolEl!, + this.dynamicEffectEl! + ); } addProbeListener(...elements: HTMLElement[]) { - elements.forEach(element => { + elements.forEach((element) => { element.addEventListener('change', (event: CustomEventInit) => { let detail = event.detail; if (detail!.checked) { - this.dispatchEvent(new CustomEvent('addProbe', - { detail: { 'elementId': element.getAttribute('name') } })); } else { - this.dispatchEvent(new CustomEvent('delProbe', - {detail: {'elementId': element.getAttribute('name')}})); + this.dispatchEvent(new CustomEvent('addProbe', { detail: { elementId: element.getAttribute('name') } })); + } else { + this.dispatchEvent(new CustomEvent('delProbe', { detail: { elementId: element.getAttribute('name') } })); } }); }); diff --git a/ide/src/trace/component/setting/SpWebHdcShell.ts b/ide/src/trace/component/setting/SpWebHdcShell.ts index 4cf51062..78fe917c 100644 --- a/ide/src/trace/component/setting/SpWebHdcShell.ts +++ b/ide/src/trace/component/setting/SpWebHdcShell.ts @@ -170,12 +170,13 @@ export class SpWebHdcShell extends BaseElement { index++; if (index === 1) { if (depth > 1) { - selectedText += line.slice( - this.getCurrentLineBackSize(line, startX - x, true)) + (endX < x + w ? '\n' : ''); + selectedText += + line.slice(this.getCurrentLineBackSize(line, startX - x, true)) + (endX < x + w ? '\n' : ''); } else { selectedText += `${line.slice( this.getCurrentLineBackSize(line, startX - x, true), - this.getCurrentLineBackSize(line, endX - x, false))}\n`; + this.getCurrentLineBackSize(line, endX - x, false) + )}\n`; } } else if (index === depth) { selectedText += `${line.slice(0, this.getCurrentLineBackSize(line, endX - x, false))}\n`; @@ -229,16 +230,18 @@ export class SpWebHdcShell extends BaseElement { } } } - this.points = {startX: startPointX, startY: startPointY, endX: endPointX, endY: endPointY}; + this.points = { startX: startPointX, startY: startPointY, endX: endPointX, endY: endPointY }; } - getCurrentLineBackSize(currentLine: string, maxBackSize: number, isStart: boolean): number{ + getCurrentLineBackSize(currentLine: string, maxBackSize: number, isStart: boolean): number { let fillText = ''; let strings = currentLine.split(''); for (let index = 0; index < strings.length; index++) { let text = strings[index]; - if (this.shellCanvasCtx!.measureText(fillText).width < maxBackSize && - this.shellCanvasCtx!.measureText(fillText + text).width >= maxBackSize) { + if ( + this.shellCanvasCtx!.measureText(fillText).width < maxBackSize && + this.shellCanvasCtx!.measureText(fillText + text).width >= maxBackSize + ) { if (!isStart) { fillText += text; } @@ -281,7 +284,7 @@ export class SpWebHdcShell extends BaseElement { } } } - this.points = {startX: startPointX, startY: startPointY, endX: endPointX, endY: endPointY}; + this.points = { startX: startPointX, startY: startPointY, endX: endPointX, endY: endPointY }; } private singleLineToMultiLine(shellStr: string, foundationWidth: number, maxWidth: number): string[] { @@ -341,8 +344,8 @@ export class SpWebHdcShell extends BaseElement { textY = SpWebHdcShell.TOP_OFFSET + index * 16; this.shellCanvasCtx!.fillText(shellStr, SpWebHdcShell.LEFT_OFFSET, textY); } - shellStrLength = this.shellCanvasCtx!.measureText( - this.cursorRow.slice(0, this.cursorIndex)).width + SpWebHdcShell.LEFT_OFFSET; + shellStrLength = + this.shellCanvasCtx!.measureText(this.cursorRow.slice(0, this.cursorIndex)).width + SpWebHdcShell.LEFT_OFFSET; if (scroller) { if (textY > this.shellDiv!.clientHeight) { this.shellDiv!.scrollTop = textY - this.shellDiv!.clientHeight + 3; @@ -364,8 +367,7 @@ export class SpWebHdcShell extends BaseElement { } }, 500); } - } catch (e) { - } + } catch (e) {} } public initHtml(): string { @@ -474,10 +476,14 @@ export class SpWebHdcShell extends BaseElement { this.realTimeResult = ''; } else if (this.isStartWidthArrayBuffer(arrayA, this.startRealTimeFlag)) { let lastIndex = this.getLastRestorationIndex(arrayA, this.endRealTimeFlag); - this.realTimeResult = this.removeTextAndColorSequenceStr(this.textDecoder.decode(arrayA.slice(lastIndex, arrayA.length))); + this.realTimeResult = this.removeTextAndColorSequenceStr( + this.textDecoder.decode(arrayA.slice(lastIndex, arrayA.length)) + ); this.startRealTime = true; } else if (this.isStartWidthArrayBuffer(arrayA, this.clearRealTimeFlag)) { - this.realTimeResult = this.removeTextAndColorSequenceStr(this.textDecoder.decode(arrayA.slice(6, arrayA.length))); + this.realTimeResult = this.removeTextAndColorSequenceStr( + this.textDecoder.decode(arrayA.slice(6, arrayA.length)) + ); this.startRealTime = true; } else { if (this.isStartWidthArrayBuffer(arrayA, this.ctrlCFlag)) { diff --git a/ide/src/trace/component/trace/SpChartList.ts b/ide/src/trace/component/trace/SpChartList.ts index 239b7f32..91ab68f5 100644 --- a/ide/src/trace/component/trace/SpChartList.ts +++ b/ide/src/trace/component/trace/SpChartList.ts @@ -35,7 +35,7 @@ import { LitIcon } from '../../../base-ui/icon/LitIcon.js'; const maxScale = 0.8; //收藏最大高度为界面最大高度的80% const topHeight = 150; // 顶部cpu使用率部分高度固定为150px const minHeight = 20; //泳道最低高度为20 -const mouseMoveRange = 5 +const mouseMoveRange = 5; @element('sp-chart-list') export class SpChartList extends BaseElement { @@ -156,15 +156,15 @@ export class SpChartList extends BaseElement { return [...this.collectRowList1, ...this.collectRowList2]; } - getAllSelectCollectRows(): Array>{ + getAllSelectCollectRows(): Array> { const rows: Array> = []; - for(const row of this.collectRowList1){ - if (row.checkType === '2'){ + for (const row of this.collectRowList1) { + if (row.checkType === '2') { rows.push(row); } } - for(const row of this.collectRowList2){ - if (row.checkType === '2'){ + for (const row of this.collectRowList2) { + if (row.checkType === '2') { rows.push(row); } } @@ -248,7 +248,7 @@ export class SpChartList extends BaseElement { this.startClientHeight = this.clientHeight; if (this.containPoint(ev)) { if ( - this.getBoundingClientRect().bottom > ev.pageY - mouseMoveRange&& + this.getBoundingClientRect().bottom > ev.pageY - mouseMoveRange && this.getBoundingClientRect().bottom < ev.pageY + mouseMoveRange ) { this.style.cursor = 'row-resize'; @@ -282,10 +282,10 @@ export class SpChartList extends BaseElement { if (newHeight > this.maxHeight || newHeight > this.getMaxLimitHeight() || newHeight < minHeight) { // 超出最大最小高度时触发mouseup事件 const mouseUpEvent = new MouseEvent('mouseup', { - bubbles: true, - cancelable: true, + bubbles: true, + cancelable: true, view: window, - button: 0, + button: 0, buttons: 0, clientX: ev.clientX, // 鼠标在窗口中的水平坐标 clientY: ev.clientY, // 鼠标在窗口中的垂直坐标 diff --git a/ide/src/trace/component/trace/TimerShaftElement.ts b/ide/src/trace/component/trace/TimerShaftElement.ts index 2838dfd4..0237ea78 100644 --- a/ide/src/trace/component/trace/TimerShaftElement.ts +++ b/ide/src/trace/component/trace/TimerShaftElement.ts @@ -24,7 +24,7 @@ import { info } from '../../../log/Log.js'; import { TraceSheet } from './base/TraceSheet.js'; import { SelectionParam } from '../../bean/BoxSelection.js'; import { SpSystemTrace, CurrentSlicesTime } from '../SpSystemTrace.js'; -import './timer-shaft/CollapseButton.js' +import './timer-shaft/CollapseButton.js'; //随机生成十六位进制颜色 export function randomRgbColor() { const letters = '0123456789ABCDEF'; diff --git a/ide/src/trace/component/trace/base/CommonSql.ts b/ide/src/trace/component/trace/base/CommonSql.ts index 5685b998..9b9de777 100644 --- a/ide/src/trace/component/trace/base/CommonSql.ts +++ b/ide/src/trace/component/trace/base/CommonSql.ts @@ -13,189 +13,260 @@ * limitations under the License. */ -const cpuSql: Array = [{ - sql: 'SELECT B.pid AS processId,B.cpu,B.tid,B.itid AS id,B.dur,B.ts - TR.start_ts AS startTime,B.arg_setid AS ' + - 'argSetID FROM thread_state AS B LEFT JOIN trace_range AS TR WHERE B.itid IS NOT NULL;', - title: 'Cpu chart' -},{ - sql: 'SELECT cpu,value,IFNULL(dur,tb.end_ts - c.ts) dur,ts-tb.start_ts AS startNS FROM measure c,trace_range tb ' + - 'INNER JOIN cpu_measure_filter t ON c.filter_id = t.id WHERE (name = \'cpufreq\' OR name=\'cpu_frequency\');', - title: 'Cpu Frequency chart' -},{ - sql: 'SELECT (A.ts - B.start_ts) AS startTs,IFNULL(dur,B.end_ts - A.ts) dur,value FROM measure A,trace_range B;', - title: 'Cpu State chart' -},{ - sql: 'SELECT ts - T.start_ts AS startNs,dur,max(value) AS max,min(value) AS min FROM measure,trace_range ' + - 'T GROUP BY ts;', - title: 'Cpu Freq Limit chart' -},{ - sql: 'SELECT TS.pid AS pid,TS.tid AS tid,TS.cpu,SUM((TS.ts - TR.start_ts + TS.dur) - (TS.ts - TR.start_ts)) ' + - 'wallDuration,count(TS.tid) AS occurrences FROM thread_state AS TS LEFT JOIN trace_range AS TR GROUP BY TS.cpu,' + - 'TS.pid,TS.tid ORDER BY wallDuration DESC;', - title: 'CPU By Thread table' -},{ - sql: 'SELECT B.pid AS pid, SUM(B.dur) AS wallDuration,AVG(B.dur) AS avgDuration,count(B.tid) AS occurrences FROM ' + - 'thread_state AS B LEFT JOIN trace_range AS TR GROUP BY B.pid ORDER BY wallDuration DESC;', - title: 'CPU By Process table' -},{ - sql: 'SELECT cpu,SUM(A.dur) / CAST(B.end_ts - B.start_ts AS float) AS usage FROM thread_state A,trace_range B ' + - 'WHERE (A.ts - B.start_ts) > 0 AND A.dur > 0 GROUP BY cpu;', - title: 'CPU Usage table' -},{ - sql: 'SELECT B.pid,B.tid,B.state,SUM(B.dur) AS wallDuration,AVG(IFNULL(B.dur,0)) AS ' + - 'avgDuration,count(B.tid) AS occurrences FROM thread_state AS B LEFT JOIN trace_range AS TR ' + - 'GROUP BY B.pid, B.tid, B.state ORDER BY wallDuration DESC;', - title: 'Thread States table' -},{ - sql: 'SELECT value, filter_id AS filterId, ts, f.cpu FROM measure LEFT JOIN cpu_measure_filter AS f ON ' + - 'f.id=filter_id ORDER BY ts ASC;', - title: 'Cpu State/Cpu Frequency table' -}]; +const cpuSql: Array = [ + { + sql: + 'SELECT B.pid AS processId,B.cpu,B.tid,B.itid AS id,B.dur,B.ts - TR.start_ts AS startTime,B.arg_setid AS ' + + 'argSetID FROM thread_state AS B LEFT JOIN trace_range AS TR WHERE B.itid IS NOT NULL;', + title: 'Cpu chart', + }, + { + sql: + 'SELECT cpu,value,IFNULL(dur,tb.end_ts - c.ts) dur,ts-tb.start_ts AS startNS FROM measure c,trace_range tb ' + + "INNER JOIN cpu_measure_filter t ON c.filter_id = t.id WHERE (name = 'cpufreq' OR name='cpu_frequency');", + title: 'Cpu Frequency chart', + }, + { + sql: 'SELECT (A.ts - B.start_ts) AS startTs,IFNULL(dur,B.end_ts - A.ts) dur,value FROM measure A,trace_range B;', + title: 'Cpu State chart', + }, + { + sql: + 'SELECT ts - T.start_ts AS startNs,dur,max(value) AS max,min(value) AS min FROM measure,trace_range ' + + 'T GROUP BY ts;', + title: 'Cpu Freq Limit chart', + }, + { + sql: + 'SELECT TS.pid AS pid,TS.tid AS tid,TS.cpu,SUM((TS.ts - TR.start_ts + TS.dur) - (TS.ts - TR.start_ts)) ' + + 'wallDuration,count(TS.tid) AS occurrences FROM thread_state AS TS LEFT JOIN trace_range AS TR GROUP BY TS.cpu,' + + 'TS.pid,TS.tid ORDER BY wallDuration DESC;', + title: 'CPU By Thread table', + }, + { + sql: + 'SELECT B.pid AS pid, SUM(B.dur) AS wallDuration,AVG(B.dur) AS avgDuration,count(B.tid) AS occurrences FROM ' + + 'thread_state AS B LEFT JOIN trace_range AS TR GROUP BY B.pid ORDER BY wallDuration DESC;', + title: 'CPU By Process table', + }, + { + sql: + 'SELECT cpu,SUM(A.dur) / CAST(B.end_ts - B.start_ts AS float) AS usage FROM thread_state A,trace_range B ' + + 'WHERE (A.ts - B.start_ts) > 0 AND A.dur > 0 GROUP BY cpu;', + title: 'CPU Usage table', + }, + { + sql: + 'SELECT B.pid,B.tid,B.state,SUM(B.dur) AS wallDuration,AVG(IFNULL(B.dur,0)) AS ' + + 'avgDuration,count(B.tid) AS occurrences FROM thread_state AS B LEFT JOIN trace_range AS TR ' + + 'GROUP BY B.pid, B.tid, B.state ORDER BY wallDuration DESC;', + title: 'Thread States table', + }, + { + sql: + 'SELECT value, filter_id AS filterId, ts, f.cpu FROM measure LEFT JOIN cpu_measure_filter AS f ON ' + + 'f.id=filter_id ORDER BY ts ASC;', + title: 'Cpu State/Cpu Frequency table', + }, +]; -const threadSql: Array = [{ - sql: 'SELECT ta.cpu,dur, ts-TR.start_ts AS startTime FROM thread_state ta LEFT JOIN trace_range AS TR ' + - 'WHERE ta.cpu IS NOT NULL;', - title: 'Process chart' -}]; +const threadSql: Array = [ + { + sql: + 'SELECT ta.cpu,dur, ts-TR.start_ts AS startTime FROM thread_state ta LEFT JOIN trace_range AS TR ' + + 'WHERE ta.cpu IS NOT NULL;', + title: 'Process chart', + }, +]; -const memory: Array = [{ - sql: 'SELECT startNs, SUM( value ) AS value FROM ( SELECT m.ts - tr.start_ts AS startNs,SUM( m.value ) AS value ' + - 'FROM sys_mem_measure m,trace_range tr LEFT JOIN sys_event_filter f ON f.id = m.filter_id WHERE m.ts < tr.end_ts ' + - 'GROUP BY m.ts UNION ALL SELECT a.ts - tr.start_ts AS startNs,SUM( a.size ) AS value FROM memory_ashmem a,' + - 'trace_range tr WHERE a.ts < tr.end_ts AND a.flag = 0 GROUP BY a.ts) GROUP BY startNs;', - title: 'Ability Monitor purgeable chart' -},{ - sql: 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.size) AS value,E.data AS expTaskComm, A.flag AS flag ' + - 'FROM memory_dma A,trace_range B LEFT JOIN data_dict AS E ON E.id=A.exp_task_comm_id WHERE A.flag = 0 ' + - 'AND A.ts < B.end_ts GROUP BY A.ts;', - title: 'Ability Monitor DMA chart' -},{ - sql: 'SELECT (A.ts - B.start_ts) AS startNs, SUM(A.used_gpu_size) AS value FROM memory_process_gpu A,trace_range B ' + - 'WHERE A.ts < B.end_ts GROUP BY A.ts;', - title: 'Ability Monitor gpu memory chart' -},{ - sql: 'SELECT (A.timestamp - B.start_ts) AS startNs, SUM(dirty) * 1024 AS value, \'dirty\' AS name ' + - 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', - title: 'VM Tracker Smaps chart(dirty)' -},{ - sql: 'SELECT (A.timestamp - B.start_ts) AS startNs, SUM(swapped) * 1024 AS value, \'swapped\' AS name ' + - 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', - title: 'VM Tracker Smaps chart(swapped)' -},{ - sql: 'SELECT (A.timestamp - B.start_ts) AS startNs, SUM(resident_size) * 1024 AS value, \'resident_size\' AS name ' + - 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', - title: 'VM Tracker Smaps chart(resident_size)' -},{ - sql: 'SELECT (A.timestamp - B.start_ts) AS startNs, SUM(pss) * 1024 AS value, \'pss\' AS name ' + - 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', - title: 'VM Tracker Smaps chart(pss)' -},{ - sql: 'SELECT (A.timestamp - B.start_ts) AS startNs, SUM(private_clean + private_dirty) * 1024 AS value,' + - '\'private_clean + private_dirty\' AS name FROM smaps A,trace_range B WHERE A.timestamp ' + - '< B.end_ts GROUP BY A.timestamp;', - title: 'VM Tracker Smaps chart(private_clean + private_dirty)' -},{ - sql: 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.size) AS value FROM memory_ashmem A,trace_range B ' + - 'WHERE A.ts < B.end_ts AND flag = 0 GROUP BY A.ts;', - title: 'VM Tracker SHM chart' -},{ - sql: 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.size) AS value,A.flag AS flag,A.ipid AS ipid,E.data AS ' + - 'expTaskComm FROM memory_dma A,trace_range B LEFT JOIN data_dict AS E ON E.id=A.exp_task_comm_id ' + - 'WHERE A.flag = 0 AND A.ts < B.end_ts GROUP BY A.ts;', - title: 'VM Tracker Dma chart' -},{ - sql: 'SELECT startNs, SUM( value ) AS value FROM (SELECT m.ts - tr.start_ts AS startNs,SUM(m.value) AS value ' + - 'FROM process_measure m, trace_range tr LEFT JOIN process_measure_filter f ON f.id = m.filter_id ' + - 'WHERE m.ts < tr.end_ts GROUP BY m.ts UNION ALL SELECT a.ts - tr.start_ts AS startNs,SUM( a.pss ) AS value ' + - 'FROM memory_ashmem a,trace_range tr WHERE a.ts < tr.end_ts AND a.flag = 0 GROUP BY a.ts) GROUP BY startNs;', - title: 'VM Tracker purgeable chart' -},{ - sql: 'SELECT (ts - start_ts) startNs,SUM(value) value FROM process_measure, trace_range ' + - 'WHERE filter_id = (SELECT id FROM process_measure_filter WHERE name = \'mem.gl_pss\')AND ts ' + - 'BETWEEN start_ts AND end_ts GROUP BY ts;', - title: 'VM Tracker gpu GL chart' -},{ - sql: 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.used_gpu_size) AS value,A.ipid AS ipid ' + - 'FROM memory_process_gpu A,trace_range B WHERE A.ts < B.end_ts GROUP BY A.ts;', - title: 'VM Tracker gpu memory chart' -},{ - sql: 'SELECT DISTINCT module_name_id id,data FROM memory_window_gpu A, trace_range TR LEFT JOIN data_dict B ' + - 'ON A.module_name_id = B.id WHERE window_name_id = 0 AND A.ts < TR.end_ts;', - title: 'VM Tracker gpu total type chart' -},{ - sql: 'SELECT DISTINCT A.window_name_id AS id,B.data, NULL AS pid FROM memory_window_gpu A, trace_range tr ' + - 'LEFT JOIN data_dict B ON A.window_name_id = B.id WHERE window_name_id != 0 AND A.ts < tr.end_ts UNION ALL ' + - 'SELECT DISTINCT A.module_name_id id, B.data, A.window_name_id pid FROM memory_window_gpu A, trace_range TR ' + - 'LEFT JOIN data_dict B ON A.module_name_id = B.id WHERE window_name_id != 0 AND A.ts < TR.end_ts;', - title: 'VM Tracker gpu window type chart' -}]; +const memory: Array = [ + { + sql: + 'SELECT startNs, SUM( value ) AS value FROM ( SELECT m.ts - tr.start_ts AS startNs,SUM( m.value ) AS value ' + + 'FROM sys_mem_measure m,trace_range tr LEFT JOIN sys_event_filter f ON f.id = m.filter_id WHERE m.ts < tr.end_ts ' + + 'GROUP BY m.ts UNION ALL SELECT a.ts - tr.start_ts AS startNs,SUM( a.size ) AS value FROM memory_ashmem a,' + + 'trace_range tr WHERE a.ts < tr.end_ts AND a.flag = 0 GROUP BY a.ts) GROUP BY startNs;', + title: 'Ability Monitor purgeable chart', + }, + { + sql: + 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.size) AS value,E.data AS expTaskComm, A.flag AS flag ' + + 'FROM memory_dma A,trace_range B LEFT JOIN data_dict AS E ON E.id=A.exp_task_comm_id WHERE A.flag = 0 ' + + 'AND A.ts < B.end_ts GROUP BY A.ts;', + title: 'Ability Monitor DMA chart', + }, + { + sql: + 'SELECT (A.ts - B.start_ts) AS startNs, SUM(A.used_gpu_size) AS value FROM memory_process_gpu A,trace_range B ' + + 'WHERE A.ts < B.end_ts GROUP BY A.ts;', + title: 'Ability Monitor gpu memory chart', + }, + { + sql: + "SELECT (A.timestamp - B.start_ts) AS startNs, SUM(dirty) * 1024 AS value, 'dirty' AS name " + + 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', + title: 'VM Tracker Smaps chart(dirty)', + }, + { + sql: + "SELECT (A.timestamp - B.start_ts) AS startNs, SUM(swapped) * 1024 AS value, 'swapped' AS name " + + 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', + title: 'VM Tracker Smaps chart(swapped)', + }, + { + sql: + "SELECT (A.timestamp - B.start_ts) AS startNs, SUM(resident_size) * 1024 AS value, 'resident_size' AS name " + + 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', + title: 'VM Tracker Smaps chart(resident_size)', + }, + { + sql: + "SELECT (A.timestamp - B.start_ts) AS startNs, SUM(pss) * 1024 AS value, 'pss' AS name " + + 'FROM smaps A,trace_range B WHERE A.timestamp < B.end_ts GROUP BY A.timestamp;', + title: 'VM Tracker Smaps chart(pss)', + }, + { + sql: + 'SELECT (A.timestamp - B.start_ts) AS startNs, SUM(private_clean + private_dirty) * 1024 AS value,' + + "'private_clean + private_dirty' AS name FROM smaps A,trace_range B WHERE A.timestamp " + + '< B.end_ts GROUP BY A.timestamp;', + title: 'VM Tracker Smaps chart(private_clean + private_dirty)', + }, + { + sql: + 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.size) AS value FROM memory_ashmem A,trace_range B ' + + 'WHERE A.ts < B.end_ts AND flag = 0 GROUP BY A.ts;', + title: 'VM Tracker SHM chart', + }, + { + sql: + 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.size) AS value,A.flag AS flag,A.ipid AS ipid,E.data AS ' + + 'expTaskComm FROM memory_dma A,trace_range B LEFT JOIN data_dict AS E ON E.id=A.exp_task_comm_id ' + + 'WHERE A.flag = 0 AND A.ts < B.end_ts GROUP BY A.ts;', + title: 'VM Tracker Dma chart', + }, + { + sql: + 'SELECT startNs, SUM( value ) AS value FROM (SELECT m.ts - tr.start_ts AS startNs,SUM(m.value) AS value ' + + 'FROM process_measure m, trace_range tr LEFT JOIN process_measure_filter f ON f.id = m.filter_id ' + + 'WHERE m.ts < tr.end_ts GROUP BY m.ts UNION ALL SELECT a.ts - tr.start_ts AS startNs,SUM( a.pss ) AS value ' + + 'FROM memory_ashmem a,trace_range tr WHERE a.ts < tr.end_ts AND a.flag = 0 GROUP BY a.ts) GROUP BY startNs;', + title: 'VM Tracker purgeable chart', + }, + { + sql: + 'SELECT (ts - start_ts) startNs,SUM(value) value FROM process_measure, trace_range ' + + "WHERE filter_id = (SELECT id FROM process_measure_filter WHERE name = 'mem.gl_pss')AND ts " + + 'BETWEEN start_ts AND end_ts GROUP BY ts;', + title: 'VM Tracker gpu GL chart', + }, + { + sql: + 'SELECT (A.ts - B.start_ts) AS startNs,SUM(A.used_gpu_size) AS value,A.ipid AS ipid ' + + 'FROM memory_process_gpu A,trace_range B WHERE A.ts < B.end_ts GROUP BY A.ts;', + title: 'VM Tracker gpu memory chart', + }, + { + sql: + 'SELECT DISTINCT module_name_id id,data FROM memory_window_gpu A, trace_range TR LEFT JOIN data_dict B ' + + 'ON A.module_name_id = B.id WHERE window_name_id = 0 AND A.ts < TR.end_ts;', + title: 'VM Tracker gpu total type chart', + }, + { + sql: + 'SELECT DISTINCT A.window_name_id AS id,B.data, NULL AS pid FROM memory_window_gpu A, trace_range tr ' + + 'LEFT JOIN data_dict B ON A.window_name_id = B.id WHERE window_name_id != 0 AND A.ts < tr.end_ts UNION ALL ' + + 'SELECT DISTINCT A.module_name_id id, B.data, A.window_name_id pid FROM memory_window_gpu A, trace_range TR ' + + 'LEFT JOIN data_dict B ON A.module_name_id = B.id WHERE window_name_id != 0 AND A.ts < TR.end_ts;', + title: 'VM Tracker gpu window type chart', + }, +]; -const bioSql: Array = [{ - sql: 'SELECT name,B.ipid,pid FROM (SELECT DISTINCT ipid FROM bio_latency_sample A,trace_range B WHERE A.start_ts ' + - 'BETWEEN B.start_ts AND B.end_ts) A LEFT JOIN process B ON A.ipid = B.ipid;', - title: 'Disk IO process chart' -}, { - sql: 'SELECT (A.start_ts -B.start_ts) AS startNS,(A.start_ts - B.start_ts + A.latency_dur) AS endNS,latency_dur ' + - 'AS dur FROM bio_latency_sample A,trace_range B WHERE startNS > 0 ORDER BY A.start_ts;', - title: 'Disk IO latency chart' -}]; +const bioSql: Array = [ + { + sql: + 'SELECT name,B.ipid,pid FROM (SELECT DISTINCT ipid FROM bio_latency_sample A,trace_range B WHERE A.start_ts ' + + 'BETWEEN B.start_ts AND B.end_ts) A LEFT JOIN process B ON A.ipid = B.ipid;', + title: 'Disk IO process chart', + }, + { + sql: + 'SELECT (A.start_ts -B.start_ts) AS startNS,(A.start_ts - B.start_ts + A.latency_dur) AS endNS,latency_dur ' + + 'AS dur FROM bio_latency_sample A,trace_range B WHERE startNS > 0 ORDER BY A.start_ts;', + title: 'Disk IO latency chart', + }, +]; -const frameTimeSql: Array = [{ - sql: 'SELECT sf.id,\'frameTime\' AS frame_type,fs.ipid,fs.vsync AS name,fs.dur AS app_dur,(sf.ts + sf.dur - fs.ts) ' + - 'AS dur,(fs.ts - TR.start_ts) AS ts,fs.type,fs.flag,pro.pid,pro.name AS cmdline,(sf.ts - TR.start_ts) AS rs_ts,' + - 'sf.vsync AS rs_vsync,sf.dur AS rs_dur,sf.ipid AS rs_ipid,proc.pid AS rs_pid,proc.name AS rs_name FROM ' + - 'frame_slice AS fs LEFT JOIN process AS pro ON pro.id = fs.ipid LEFT JOIN frame_slice AS sf ON fs.dst = sf.id ' + - 'LEFT JOIN process AS proc ON proc.id = sf.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NOT NULL AND fs.type ' + - '= 1 UNION SELECT -1 AS id,\'frameTime\' AS frame_type,fs.ipid,fs.vsync AS name,fs.dur AS app_dur,fs.dur,' + - '(fs.ts - TR.start_ts) AS ts,fs.type,fs.flag, pro.pid,pro.name AS cmdline,NULL AS rs_ts,NULL AS rs_vsync,' + - 'NULL AS rs_dur,NULL AS rs_ipid,NULL AS rs_pid,NULL AS rs_name FROM frame_slice AS fs LEFT JOIN process AS pro' + - ' ON pro.id = fs.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NULL AND pro.name NOT LIKE \'%render_service%\' ' + - 'AND fs.type = 1 ORDER BY ts;', - title: 'Expected timeline chart' -}, { - sql: 'SELECT sf.id,\'frameTime\' AS frame_type,fs.ipid,fs.vsync AS name,fs.dur AS app_dur,(sf.ts + sf.dur - fs.ts) ' + - 'AS dur,(fs.ts - TR.start_ts) AS ts,fs.type,(CASE WHEN (sf.flag == 1 OR fs.flag == 1) THEN 1 WHEN (sf.flag == ' + - '3 OR fs.flag == 3 ) THEN 3 ELSE 0 end) AS jank_tag,pro.pid,pro.name AS cmdline,(sf.ts - TR.start_ts) ' + - 'AS rs_ts,sf.vsync AS rs_vsync,sf.dur AS rs_dur,sf.ipid AS rs_ipid,proc.pid AS rs_pid, proc.name AS rs_name ' + - 'FROM frame_slice AS fs LEFT JOIN process AS pro ON pro.id = fs.ipid LEFT JOIN frame_slice AS sf ON fs.dst = ' + - 'sf.id LEFT JOIN process AS proc ON proc.id = sf.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NOT NULL AND ' + - 'fs.type = 0 AND fs.flag <> 2 UNION SELECT -1 AS id,\'frameTime\' AS frame_type,fs.ipid,fs.vsync AS name,' + - 'fs.dur AS app_dur,fs.dur,(fs.ts - TR.start_ts) AS ts,fs.type,fs.flag AS jank_tag,pro.pid,pro.name AS ' + - 'cmdline,NULL AS rs_ts,NULL AS rs_vsync,NULL AS rs_dur,NULL AS rs_ipid,NULL AS rs_pid,NULL AS rs_name FROM ' + - 'frame_slice AS fs LEFT JOIN process AS pro ON pro.id = fs.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NULL ' + - 'AND pro.name NOT LIKE \'%render_service%\' AND fs.type = 0 AND fs.flag <> 2 ORDER BY ts;', - title: 'Actual timeline chart' -}]; +const frameTimeSql: Array = [ + { + sql: + "SELECT sf.id,'frameTime' AS frame_type,fs.ipid,fs.vsync AS name,fs.dur AS app_dur,(sf.ts + sf.dur - fs.ts) " + + 'AS dur,(fs.ts - TR.start_ts) AS ts,fs.type,fs.flag,pro.pid,pro.name AS cmdline,(sf.ts - TR.start_ts) AS rs_ts,' + + 'sf.vsync AS rs_vsync,sf.dur AS rs_dur,sf.ipid AS rs_ipid,proc.pid AS rs_pid,proc.name AS rs_name FROM ' + + 'frame_slice AS fs LEFT JOIN process AS pro ON pro.id = fs.ipid LEFT JOIN frame_slice AS sf ON fs.dst = sf.id ' + + 'LEFT JOIN process AS proc ON proc.id = sf.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NOT NULL AND fs.type ' + + "= 1 UNION SELECT -1 AS id,'frameTime' AS frame_type,fs.ipid,fs.vsync AS name,fs.dur AS app_dur,fs.dur," + + '(fs.ts - TR.start_ts) AS ts,fs.type,fs.flag, pro.pid,pro.name AS cmdline,NULL AS rs_ts,NULL AS rs_vsync,' + + 'NULL AS rs_dur,NULL AS rs_ipid,NULL AS rs_pid,NULL AS rs_name FROM frame_slice AS fs LEFT JOIN process AS pro' + + " ON pro.id = fs.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NULL AND pro.name NOT LIKE '%render_service%' " + + 'AND fs.type = 1 ORDER BY ts;', + title: 'Expected timeline chart', + }, + { + sql: + "SELECT sf.id,'frameTime' AS frame_type,fs.ipid,fs.vsync AS name,fs.dur AS app_dur,(sf.ts + sf.dur - fs.ts) " + + 'AS dur,(fs.ts - TR.start_ts) AS ts,fs.type,(CASE WHEN (sf.flag == 1 OR fs.flag == 1) THEN 1 WHEN (sf.flag == ' + + '3 OR fs.flag == 3 ) THEN 3 ELSE 0 end) AS jank_tag,pro.pid,pro.name AS cmdline,(sf.ts - TR.start_ts) ' + + 'AS rs_ts,sf.vsync AS rs_vsync,sf.dur AS rs_dur,sf.ipid AS rs_ipid,proc.pid AS rs_pid, proc.name AS rs_name ' + + 'FROM frame_slice AS fs LEFT JOIN process AS pro ON pro.id = fs.ipid LEFT JOIN frame_slice AS sf ON fs.dst = ' + + 'sf.id LEFT JOIN process AS proc ON proc.id = sf.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NOT NULL AND ' + + "fs.type = 0 AND fs.flag <> 2 UNION SELECT -1 AS id,'frameTime' AS frame_type,fs.ipid,fs.vsync AS name," + + 'fs.dur AS app_dur,fs.dur,(fs.ts - TR.start_ts) AS ts,fs.type,fs.flag AS jank_tag,pro.pid,pro.name AS ' + + 'cmdline,NULL AS rs_ts,NULL AS rs_vsync,NULL AS rs_dur,NULL AS rs_ipid,NULL AS rs_pid,NULL AS rs_name FROM ' + + 'frame_slice AS fs LEFT JOIN process AS pro ON pro.id = fs.ipid LEFT JOIN trace_range TR WHERE fs.dst IS NULL ' + + "AND pro.name NOT LIKE '%render_service%' AND fs.type = 0 AND fs.flag <> 2 ORDER BY ts;", + title: 'Actual timeline chart', + }, +]; -const appStartUpSql: Array = [{ - sql: 'SELECT P.pid,A.tid,A.call_id AS itid,(CASE WHEN A.start_time < B.start_ts THEN 0 ELSE (A.start_time - ' + - 'B.start_ts) end) AS startTs,(CASE WHEN A.start_time < B.start_ts THEN (A.end_time - B.start_ts) WHEN ' + - 'A.end_time = -1 THEN 0 ELSE (A.end_time - A.start_time) end) AS dur,A.start_name AS startName FROM ' + - 'app_startup A,trace_range B LEFT JOIN process P ON A.ipid = P.ipid ORDER BY start_name;', - title: 'App start up chart' -}]; +const appStartUpSql: Array = [ + { + sql: + 'SELECT P.pid,A.tid,A.call_id AS itid,(CASE WHEN A.start_time < B.start_ts THEN 0 ELSE (A.start_time - ' + + 'B.start_ts) end) AS startTs,(CASE WHEN A.start_time < B.start_ts THEN (A.end_time - B.start_ts) WHEN ' + + 'A.end_time = -1 THEN 0 ELSE (A.end_time - A.start_time) end) AS dur,A.start_name AS startName FROM ' + + 'app_startup A,trace_range B LEFT JOIN process P ON A.ipid = P.ipid ORDER BY start_name;', + title: 'App start up chart', + }, +]; -const animationSql: Array = [{ - sql: 'SELECT a.id AS animationId,(CASE WHEN a.input_time NOT NULL THEN (a.input_time - R.start_ts) ' + - 'ELSE (a.start_point- R.start_ts) END) AS ts,(a.start_point - R.start_ts) AS dynamicStartTs,(a.end_point ' + - '- R.start_ts) AS dynamicEndTs FROM animation AS a,trace_range AS R ORDER BY ts;', - title: 'Animation chart' -}, { - sql: 'SELECT d.id,d.x,d.y,d.width,d.height,d.alpha,d.name AS appName,(d.end_time - R.start_ts) AS ts ' + - 'FROM dynamic_frame AS d,trace_range AS R ORDER BY d.end_time;', - title: 'Animation effect curve chart' -}, -{ - sql: 'SELECT d.id,d.width AS currentFrameWidth,d.height AS currentFrameHeight,d.name AS nameId,(d.end_time ' + - '- R.start_ts) AS currentTs,d.x,d.y FROM dynamic_frame AS d,trace_range AS R ORDER BY d.end_time;', - title: 'Frame spacing chart' -}]; +const animationSql: Array = [ + { + sql: + 'SELECT a.id AS animationId,(CASE WHEN a.input_time NOT NULL THEN (a.input_time - R.start_ts) ' + + 'ELSE (a.start_point- R.start_ts) END) AS ts,(a.start_point - R.start_ts) AS dynamicStartTs,(a.end_point ' + + '- R.start_ts) AS dynamicEndTs FROM animation AS a,trace_range AS R ORDER BY ts;', + title: 'Animation chart', + }, + { + sql: + 'SELECT d.id,d.x,d.y,d.width,d.height,d.alpha,d.name AS appName,(d.end_time - R.start_ts) AS ts ' + + 'FROM dynamic_frame AS d,trace_range AS R ORDER BY d.end_time;', + title: 'Animation effect curve chart', + }, + { + sql: + 'SELECT d.id,d.width AS currentFrameWidth,d.height AS currentFrameHeight,d.name AS nameId,(d.end_time ' + + '- R.start_ts) AS currentTs,d.x,d.y FROM dynamic_frame AS d,trace_range AS R ORDER BY d.end_time;', + title: 'Frame spacing chart', + }, +]; export function getAllSql(): Array { return [...cpuSql, ...threadSql, ...memory, ...bioSql, ...frameTimeSql, ...appStartUpSql, ...animationSql]; } export interface DebugSql { - sql: string - title: string + sql: string; + title: string; } diff --git a/ide/src/trace/component/trace/base/Extension.ts b/ide/src/trace/component/trace/base/Extension.ts index c8683d6a..ab3cd8c4 100644 --- a/ide/src/trace/component/trace/base/Extension.ts +++ b/ide/src/trace/component/trace/base/Extension.ts @@ -53,8 +53,8 @@ declare global { Loading: string; // Upload so file Error: string; // load error CheckALL: string; // Check all child chart - CollapseAllLane:string //collapse/uncollapse all lane row - CollectGroupChange:string //collapse/uncollapse all lane row + CollapseAllLane: string; //collapse/uncollapse all lane row + CollectGroupChange: string; //collapse/uncollapse all lane row WakeupList: string; //show wakeup list table DeviceConnect: string; DeviceDisConnect: string; diff --git a/ide/src/trace/component/trace/base/RangeSelect.ts b/ide/src/trace/component/trace/base/RangeSelect.ts index 41d4288f..38521f86 100644 --- a/ide/src/trace/component/trace/base/RangeSelect.ts +++ b/ide/src/trace/component/trace/base/RangeSelect.ts @@ -27,10 +27,10 @@ export class RangeSelect { isMouseDown: boolean = false; public rangeTraceRow: Array> | undefined; public selectHandler: ((ds: Array>, refreshCheckBox: boolean) => void) | undefined; - private startPageX:number=0; - private startPageY:number = 0; - private endPageX:number = 0; - private endPageY:number = 0; + private startPageX: number = 0; + private startPageY: number = 0; + private endPageX: number = 0; + private endPageY: number = 0; private timerShaftEL: TimerShaftElement | null | undefined; private timerShaftDragEL: HTMLDivElement | null | undefined; private isHover: boolean = false; @@ -67,9 +67,9 @@ export class RangeSelect { this.isMouseDown = true; return; } - this.rangeTraceRow = []; - this.isMouseDown = true; - TraceRow.rangeSelectObject = undefined; + this.rangeTraceRow = []; + this.isMouseDown = true; + TraceRow.rangeSelectObject = undefined; } mouseUp(mouseEventUp: MouseEvent) { @@ -187,19 +187,21 @@ export class RangeSelect { } let rangeSelect: RangeSelectStruct | undefined; this.rangeTraceRow = rows.filter((it) => { - if (Rect.intersect(it.getBoundingClientRect(), { - x:Math.min(this.startPageX,this.endPageX), - y: Math.min(this.startPageY, this.endPageY), - width: Math.abs(this.startPageX - this.endPageX), - height: Math.abs(this.startPageY - this.endPageY), - } as Rect)) { + if ( + Rect.intersect(it.getBoundingClientRect(), { + x: Math.min(this.startPageX, this.endPageX), + y: Math.min(this.startPageY, this.endPageY), + width: Math.abs(this.startPageX - this.endPageX), + height: Math.abs(this.startPageY - this.endPageY), + } as Rect) + ) { if (!rangeSelect) { it.setTipLeft(0, null); rangeSelect = new RangeSelectStruct(); - let startX = Math.min(this.startPageX,this.endPageX)-it.describeEl!.getBoundingClientRect().right; - let endX = Math.max(this.startPageX,this.endPageX)-it.describeEl!.getBoundingClientRect().right; - if(startX<=0) startX = 0; - if(endX>it.frame.width) endX = it.frame.width; + let startX = Math.min(this.startPageX, this.endPageX) - it.describeEl!.getBoundingClientRect().right; + let endX = Math.max(this.startPageX, this.endPageX) - it.describeEl!.getBoundingClientRect().right; + if (startX <= 0) startX = 0; + if (endX > it.frame.width) endX = it.frame.width; rangeSelect.startX = startX; rangeSelect.endX = endX; rangeSelect.startNS = RangeSelect.SetNS(it, startX); diff --git a/ide/src/trace/component/trace/base/TraceRow.ts b/ide/src/trace/component/trace/base/TraceRow.ts index 5e7d3fbc..699439b3 100644 --- a/ide/src/trace/component/trace/base/TraceRow.ts +++ b/ide/src/trace/component/trace/base/TraceRow.ts @@ -405,26 +405,26 @@ export class TraceRow extends HTMLElement { ); } - childRowToFragment (expansion: boolean) : void { - for (const childrenRow of this.childrenList){ + childRowToFragment(expansion: boolean): void { + for (const childrenRow of this.childrenList) { if (!childrenRow.collect) { this.fragment.append(childrenRow); } if (!expansion) { - if (childrenRow.childrenList && childrenRow.expansion) { - this.childRowToFragment(expansion); + if (childrenRow.childrenList && childrenRow.folder && childrenRow.expansion) { + childrenRow.expansion = false; } } } } - updateChildRowStatus() : void { + updateChildRowStatus(): void { this.fragment = document.createDocumentFragment(); this.childRowToFragment(true); this.insertAfter(this.fragment, this); } - clearMemory() { + clearMemory(): void { this.dataList2 = []; this.dataList = []; this.dataListCache = []; @@ -691,6 +691,7 @@ export class TraceRow extends HTMLElement { this.rowSettingPop!.visible = false; this.onRowSettingChangeHandler?.(this.rowSettingTree!.getCheckdKeys(), this.rowSettingTree!.getCheckdNodes()); }; + this.checkType = '-1'; } initCanvas(list: Array): void { diff --git a/ide/src/trace/component/trace/base/TraceRowConfig.ts b/ide/src/trace/component/trace/base/TraceRowConfig.ts index 878b26aa..1b2b6628 100644 --- a/ide/src/trace/component/trace/base/TraceRowConfig.ts +++ b/ide/src/trace/component/trace/base/TraceRowConfig.ts @@ -64,9 +64,10 @@ export class TraceRowConfig extends BaseElement { this.chartTable!.innerHTML = ''; this.inputElement!.value = ''; this.spSystemTrace = this.parentElement!.querySelector('sp-system-trace'); - this.traceRowList = this.spSystemTrace!.shadowRoot?.querySelector('div[class=rows-pane]')!.querySelectorAll< - TraceRow - >("trace-row[row-parent-id='']"); + this.traceRowList = + this.spSystemTrace!.shadowRoot?.querySelector('div[class=rows-pane]')!.querySelectorAll>( + "trace-row[row-parent-id='']" + ); let allowSceneList: Array = []; TraceRowConfig.allTraceRowList.push(...this.traceRowList!); this.traceRowList!.forEach((traceRow: TraceRow) => { diff --git a/ide/src/trace/component/trace/base/TraceRowObject.ts b/ide/src/trace/component/trace/base/TraceRowObject.ts index c2654ea5..22cd5952 100644 --- a/ide/src/trace/component/trace/base/TraceRowObject.ts +++ b/ide/src/trace/component/trace/base/TraceRowObject.ts @@ -33,13 +33,31 @@ export class TraceRowObject { public color: string | undefined; public frame: Rect | undefined; public supplier: (() => Promise>) | undefined | null; - public onThreadHandler: | (( + public onThreadHandler: + | (( row: TraceRow, - ctx: | ImageBitmapRenderingContext | CanvasRenderingContext2D | WebGLRenderingContext | - WebGL2RenderingContext | null | undefined ) => void) | undefined | null; - public onDrawHandler: | (( - ctx: | ImageBitmapRenderingContext | CanvasRenderingContext2D | WebGLRenderingContext | - WebGL2RenderingContext | null | undefined) => void) | undefined | null; + ctx: + | ImageBitmapRenderingContext + | CanvasRenderingContext2D + | WebGLRenderingContext + | WebGL2RenderingContext + | null + | undefined + ) => void) + | undefined + | null; + public onDrawHandler: + | (( + ctx: + | ImageBitmapRenderingContext + | CanvasRenderingContext2D + | WebGLRenderingContext + | WebGL2RenderingContext + | null + | undefined + ) => void) + | undefined + | null; public top: number = 0; public rowIndex: number = 0; public preObject: TraceRowObject | undefined | null; diff --git a/ide/src/trace/component/trace/base/TraceSheet.ts b/ide/src/trace/component/trace/base/TraceSheet.ts index 479732cf..a3fa008d 100644 --- a/ide/src/trace/component/trace/base/TraceSheet.ts +++ b/ide/src/trace/component/trace/base/TraceSheet.ts @@ -600,7 +600,7 @@ export class TraceSheet extends BaseElement { }; displaySystemLogsData = (): void => { - let tblHiLogPanel = this.shadowRoot?.querySelector('lit-tabpane[id=\'box-hilogs\']'); + let tblHiLogPanel = this.shadowRoot?.querySelector("lit-tabpane[id='box-hilogs']"); if (tblHiLogPanel) { let tblHiLog = tblHiLogPanel.querySelector('tab-hi-log'); if (tblHiLog) { @@ -608,7 +608,7 @@ export class TraceSheet extends BaseElement { tblHiLog.initTabSheetEl(tblHiLog.parentElement!, this); } } - let tblSummaryPanel = this.shadowRoot?.querySelector('lit-tabpane[id=\'box-hilogs-summary\']'); + let tblSummaryPanel = this.shadowRoot?.querySelector("lit-tabpane[id='box-hilogs-summary']"); if (tblSummaryPanel) { let tblSummary = tblSummaryPanel.querySelector('tab-hi-log-summary'); if (tblSummary) { diff --git a/ide/src/trace/component/trace/base/Utils.ts b/ide/src/trace/component/trace/base/Utils.ts index 1e207b26..88bb4a4a 100644 --- a/ide/src/trace/component/trace/base/Utils.ts +++ b/ide/src/trace/component/trace/base/Utils.ts @@ -81,13 +81,13 @@ export class Utils { public static transferPTSTitle(value: any) { if (value.startsWith('S-')) { - return Utils.getEndState(value.replace('S-','')); + return Utils.getEndState(value.replace('S-', '')); } else if (value.startsWith('P-')) { - let pid = value.replace('P-',''); + let pid = value.replace('P-', ''); let process = Utils.PROCESS_MAP.get(parseInt(pid)) || 'Process'; return `${process} [${pid}]`; } else if (value.startsWith('T-')) { - let tid = value.replace('T-',''); + let tid = value.replace('T-', ''); let thread = Utils.THREAD_MAP.get(parseInt(tid)) || 'Thread'; return `${thread} [${tid}]`; } else { diff --git a/ide/src/trace/component/trace/search/Search.ts b/ide/src/trace/component/trace/search/Search.ts index 64425245..79ba4d95 100644 --- a/ide/src/trace/component/trace/search/Search.ts +++ b/ide/src/trace/component/trace/search/Search.ts @@ -144,11 +144,11 @@ export class LitSearch extends BaseElement { return; } this.lastSearch = searchStr; - let searchInfo = this.searchList.find(searchInfo => searchInfo.searchContent === searchStr); + let searchInfo = this.searchList.find((searchInfo) => searchInfo.searchContent === searchStr); if (searchInfo != undefined) { searchInfo.useCount += 1; } else { - this.searchList.push({searchContent: searchStr, useCount: 1}); + this.searchList.push({ searchContent: searchStr, useCount: 1 }); } } @@ -447,7 +447,7 @@ export class LitSearch extends BaseElement { updateSearchHistoryList(searchValue: string) { const keyword = searchValue.toLowerCase(); - this.searchELList.forEach(item => { + this.searchELList.forEach((item) => { if (item.textContent!.toLowerCase().includes(keyword)) { item.style.display = 'block'; } else { @@ -455,10 +455,9 @@ export class LitSearch extends BaseElement { } }); } - } export interface SearchInfo { - searchContent: string - useCount: number + searchContent: string; + useCount: number; } diff --git a/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts b/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts index ef32b9b4..5bd9a51b 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts @@ -30,8 +30,8 @@ export class TabPaneCurrent extends BaseElement { initElements(): void { this.systemTrace = document - .querySelector('body > sp-application')! - .shadowRoot!.querySelector('#sp-system-trace'); + .querySelector('body > sp-application')?. + shadowRoot!.querySelector('#sp-system-trace'); this.panelTable = this.shadowRoot!.querySelector('.notes-editor-panel'); this.panelTable!.addEventListener('row-click', (evt: any) => { // 点击表格某一行后,背景变色 diff --git a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts index 65a77d14..9fb1fb68 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts @@ -153,8 +153,6 @@ export class TabPaneCurrentSelection extends BaseElement {
`, }); } - - list.push({ name: 'CmdLine', value: `${data.processCmdLine}` }); list.push({ name: 'StartTime(Relative)', value: getTimeString(data.startTime || 0), @@ -968,7 +966,10 @@ export class TabPaneCurrentSelection extends BaseElement { value: ((dataTs || 0) + (window as any).recordStartNS) / 1000000000, }); list.push({ name: 'End time(Relative)', value: `${Utils.getTimeString(dataTs + (data.dur || 0))}` }); - list.push({ name: 'End time(Absolute)', value: ((dataTs + (data.dur || 0)) + (window as any).recordStartNS) / 1000000000}); + list.push({ + name: 'End time(Absolute)', + value: (dataTs + (data.dur || 0) + (window as any).recordStartNS) / 1000000000, + }); list.push({ name: 'Duration', value: `${Utils.getTimeString(data.dur || 0)}` }); if (data.status === 'Completion delay') { let frameFpsMessage = data.frameInfo?.split(':'); @@ -1263,18 +1264,18 @@ export class TabPaneCurrentSelection extends BaseElement { maxDuration = Math.max(maxDuration, this.selectWakeupBean.dur); maxPriority = Math.max(maxPriority, this.selectWakeupBean.priority); } - resource.forEach(it => { + resource.forEach((it) => { if (it.priority === maxPriority) { maxPriorityDuration = Math.max(it.dur || 0, maxPriorityDuration); } }); - this.wakeupListTbl!.getItemTextColor = ((data: any) => { + this.wakeupListTbl!.getItemTextColor = (data: any) => { if ((data.priority === maxPriority && data.dur === maxPriorityDuration) || data.dur === maxDuration) { return '#f44336'; } else { return '#262626'; } - }); + }; this.wakeupListTbl!.recycleDataSource = resource; }); } diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneCpuAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneCpuAbility.ts index 2bd4dbba..8a4ef839 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneCpuAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneCpuAbility.ts @@ -138,8 +138,11 @@ export class TabPaneCpuAbility extends BaseElement { function compare(property, sort, type) { return function (cpuAbilityLeftData: SystemCpuSummary, cpuAbilityRightData: SystemCpuSummary) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(cpuAbilityRightData[property]) - parseFloat(cpuAbilityLeftData[property]) : parseFloat(cpuAbilityLeftData[property]) - parseFloat(cpuAbilityRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(cpuAbilityRightData[property]) - parseFloat(cpuAbilityLeftData[property]) + : // @ts-ignore + parseFloat(cpuAbilityLeftData[property]) - parseFloat(cpuAbilityRightData[property]); } else if (type === 'durationStr') { return sort === 2 ? cpuAbilityRightData.duration - cpuAbilityLeftData.duration diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneDiskAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneDiskAbility.ts index 3882a5ad..a295d77b 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneDiskAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneDiskAbility.ts @@ -153,8 +153,11 @@ export class TabPaneDiskAbility extends BaseElement { function compare(property, sort, type) { return function (diskAbilityLeftData: SystemDiskIOSummary, diskAbilityRightData: SystemDiskIOSummary) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(diskAbilityRightData[property]) - parseFloat(diskAbilityLeftData[property]) : parseFloat(diskAbilityLeftData[property]) - parseFloat(diskAbilityRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(diskAbilityRightData[property]) - parseFloat(diskAbilityLeftData[property]) + : // @ts-ignore + parseFloat(diskAbilityLeftData[property]) - parseFloat(diskAbilityRightData[property]); } else if (type === 'durationStr') { return sort === 2 ? diskAbilityRightData.duration - diskAbilityLeftData.duration diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneDmaSelectAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneDmaSelectAbility.ts index acb90faf..1159be11 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneDmaSelectAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneDmaSelectAbility.ts @@ -42,7 +42,8 @@ export class TabPaneDmaSelectAbility extends BaseElement { new ResizeObserver(() => { if (this.parentElement?.clientHeight !== 0) { // @ts-ignore - this.damClickTable?.shadowRoot?.querySelector('.table').style.height = (this.parentElement?.clientHeight - 18) + 'px'; + this.damClickTable?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 18 + 'px'; this.parentElement!.style.overflow = 'hidden'; this.damClickTable?.reMeauseHeight(); } diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneHistoryProcesses.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneHistoryProcesses.ts index 7bcc9184..31dc1b0f 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneHistoryProcesses.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneHistoryProcesses.ts @@ -31,7 +31,8 @@ export class TabPaneHistoryProcesses extends BaseElement { set data(historyProcessValue: SelectionParam | any) { // @ts-ignore - this.historyProcessTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 45 + 'px'; + this.historyProcessTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 45 + 'px'; this.queryDataByDB(historyProcessValue); } @@ -164,8 +165,11 @@ export class TabPaneHistoryProcesses extends BaseElement { function compare(property, sort, type) { return function (historyProcessLeftData: ProcessHistory, historyProcessRightData: ProcessHistory) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(historyProcessRightData[property]) - parseFloat(historyProcessLeftData[property]) : parseFloat(historyProcessLeftData[property]) - parseFloat(historyProcessRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(historyProcessRightData[property]) - parseFloat(historyProcessLeftData[property]) + : // @ts-ignore + parseFloat(historyProcessLeftData[property]) - parseFloat(historyProcessRightData[property]); } else if (type === 'cpuTime') { return sort === 2 ? historyProcessRightData.cpuTimeNumber - historyProcessLeftData.cpuTimeNumber diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneLiveProcesses.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneLiveProcesses.ts index 03b6ebd6..9042fd21 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneLiveProcesses.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneLiveProcesses.ts @@ -164,8 +164,11 @@ export class TabPaneLiveProcesses extends BaseElement { function compare(property, sort, type) { return function (liveProcessLeftData: LiveProcess, liveProcessRightData: LiveProcess) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(liveProcessRightData[property]) - parseFloat(liveProcessLeftData[property]) : parseFloat(liveProcessLeftData[property]) - parseFloat(liveProcessRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(liveProcessRightData[property]) - parseFloat(liveProcessLeftData[property]) + : // @ts-ignore + parseFloat(liveProcessLeftData[property]) - parseFloat(liveProcessRightData[property]); } else if (type === 'cpuTime') { return sort === 2 ? liveProcessRightData.cpuTimeNumber - liveProcessLeftData.cpuTimeNumber diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneMemoryAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneMemoryAbility.ts index 0bd0a7ee..6c44e049 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneMemoryAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneMemoryAbility.ts @@ -31,7 +31,8 @@ export class TabPaneMemoryAbility extends BaseElement { set data(memoryAbilityValue: SelectionParam | any) { // @ts-ignore - this.memoryAbilityTbl?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 45 + 'px'; + this.memoryAbilityTbl?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 45 + 'px'; this.queryDataByDB(memoryAbilityValue); } @@ -233,8 +234,11 @@ export class TabPaneMemoryAbility extends BaseElement { function compare(property, sort, type) { return function (memoryAbilityLeftData: SystemMemorySummary, memoryAbilityRightData: SystemMemorySummary) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(memoryAbilityRightData[property]) - parseFloat(memoryAbilityLeftData[property]) : parseFloat(memoryAbilityLeftData[property]) - parseFloat(memoryAbilityRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(memoryAbilityRightData[property]) - parseFloat(memoryAbilityLeftData[property]) + : // @ts-ignore + parseFloat(memoryAbilityLeftData[property]) - parseFloat(memoryAbilityRightData[property]); } else if (type === 'durationStr') { return sort === 2 ? memoryAbilityRightData.durationNumber - memoryAbilityLeftData.durationNumber diff --git a/ide/src/trace/component/trace/sheet/ability/TabPaneNetworkAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPaneNetworkAbility.ts index 96f4119c..ce1b7c4f 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPaneNetworkAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPaneNetworkAbility.ts @@ -33,7 +33,8 @@ export class TabPaneNetworkAbility extends BaseElement { set data(networkAbilityValue: SelectionParam | any) { // @ts-ignore - this.networkAbilityTbl?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 45 + 'px'; + this.networkAbilityTbl?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 45 + 'px'; this.queryDataByDB(networkAbilityValue); } @@ -144,8 +145,11 @@ export class TabPaneNetworkAbility extends BaseElement { function compare(property, sort, type) { return function (networkAbilityLeftData: SystemNetworkSummary, networkAbilityRightData: SystemNetworkSummary) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(networkAbilityRightData[property]) - parseFloat(networkAbilityLeftData[property]) : parseFloat(networkAbilityLeftData[property]) - parseFloat(networkAbilityRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(networkAbilityRightData[property]) - parseFloat(networkAbilityLeftData[property]) + : // @ts-ignore + parseFloat(networkAbilityLeftData[property]) - parseFloat(networkAbilityRightData[property]); } else if (type === 'durationStr') { return sort === 2 ? networkAbilityRightData.duration - networkAbilityLeftData.duration diff --git a/ide/src/trace/component/trace/sheet/ability/TabPanePurgPin.ts b/ide/src/trace/component/trace/sheet/ability/TabPanePurgPin.ts index 8276aea0..cf0f0963 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPanePurgPin.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPanePurgPin.ts @@ -53,7 +53,12 @@ export class TabPanePurgPin extends BaseElement { if (purgePinResults.length > 0) { for (let i = 0; i < purgePinResults.length; i++) { this.purgeablePinSource.push( - this.toTabStruct(purgePinResults[i].name, purgePinResults[i].maxSize, purgePinResults[i].minSize, purgePinResults[i].avgSize) + this.toTabStruct( + purgePinResults[i].name, + purgePinResults[i].maxSize, + purgePinResults[i].minSize, + purgePinResults[i].avgSize + ) ); } this.sortByColumn({ key: this.sortKey, sort: this.sortType }); @@ -110,7 +115,11 @@ export class TabPanePurgPin extends BaseElement { this.sortType = 2; } - private toTabStruct(type: string, maxPurgePinSize: number, minPurgePinSize: number, avgPurgePinSize: number + private toTabStruct( + type: string, + maxPurgePinSize: number, + minPurgePinSize: number, + avgPurgePinSize: number ): PurgeableTabStruct { const tabStruct = new PurgeableTabStruct( type, @@ -150,7 +159,9 @@ export class TabPanePurgPin extends BaseElement { } if (type === 'number') { // @ts-ignore - return sort === 2 ? parseFloat(purgePinRightData[key]) - parseFloat(purgePinLeftData[key]) : parseFloat(purgePinLeftData[key]) - parseFloat(purgePinRightData[key]); + return sort === 2 + ? parseFloat(purgePinRightData[key]) - parseFloat(purgePinLeftData[key]) + : parseFloat(purgePinLeftData[key]) - parseFloat(purgePinRightData[key]); } else { if (sort === 2) { return purgePinRightData[key].toString().localeCompare(purgePinLeftData[key].toString()); diff --git a/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotal.ts b/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotal.ts index efe001c6..0f3d3aa2 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotal.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotal.ts @@ -51,7 +51,12 @@ export class TabPanePurgTotal extends BaseElement { if (purgeTotalResults.length > 0) { for (let i = 0; i < purgeTotalResults.length; i++) { this.purgeableTotalSource.push( - this.toTabStruct(purgeTotalResults[i].name, purgeTotalResults[i].maxSize, purgeTotalResults[i].minSize, purgeTotalResults[i].avgSize) + this.toTabStruct( + purgeTotalResults[i].name, + purgeTotalResults[i].maxSize, + purgeTotalResults[i].minSize, + purgeTotalResults[i].avgSize + ) ); } this.sortByColumn({ key: this.sortKey, sort: this.sortType }); @@ -146,7 +151,9 @@ export class TabPanePurgTotal extends BaseElement { } if (type === 'number') { // @ts-ignore - return sort === 2 ? parseFloat(purgeTotalRightData[key]) - parseFloat(purgeTotalLeftData[key]) : parseFloat(purgeTotalLeftData[key]) - parseFloat(purgeTotalRightData[key]); + return sort === 2 + ? parseFloat(purgeTotalRightData[key]) - parseFloat(purgeTotalLeftData[key]) + : parseFloat(purgeTotalLeftData[key]) - parseFloat(purgeTotalRightData[key]); } else { if (sort === 2) { return purgeTotalRightData[key].toString().localeCompare(purgeTotalLeftData[key].toString()); diff --git a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts index b1957600..de8528a7 100644 --- a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts +++ b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts @@ -13,19 +13,19 @@ * limitations under the License. */ -import {BaseElement, element} from '../../../../../base-ui/BaseElement.js'; -import {LitTable} from '../../../../../base-ui/table/lit-table.js'; +import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; +import { LitTable } from '../../../../../base-ui/table/lit-table.js'; import '../../../../../base-ui/table/lit-table.js'; -import {ConstructorItem, FileInfo} from '../../../../../js-heap/model/UiStruct.js'; -import {HeapDataInterface} from '../../../../../js-heap/HeapDataInterface.js'; +import { ConstructorItem, FileInfo } from '../../../../../js-heap/model/UiStruct.js'; +import { HeapDataInterface } from '../../../../../js-heap/HeapDataInterface.js'; import '../../../../../base-ui/table/lit-table-column.js'; -import {TabPaneJsMemoryFilter} from '../TabPaneJsMemoryFilter.js'; +import { TabPaneJsMemoryFilter } from '../TabPaneJsMemoryFilter.js'; import '../TabPaneJsMemoryFilter.js'; -import {LitProgressBar} from '../../../../../base-ui/progress-bar/LitProgressBar.js'; +import { LitProgressBar } from '../../../../../base-ui/progress-bar/LitProgressBar.js'; import '../../../../../base-ui/progress-bar/LitProgressBar.js'; import '../../../../../base-ui/slicer/lit-slicer.js'; -import {HeapSnapshotStruct} from '../../../../database/ui-worker/ProcedureWorkerHeapSnapshot.js'; -import {HeapTraceFunctionInfo} from '../../../../../js-heap/model/DatabaseStruct.js'; +import { HeapSnapshotStruct } from '../../../../database/ui-worker/ProcedureWorkerHeapSnapshot.js'; +import { HeapTraceFunctionInfo } from '../../../../../js-heap/model/DatabaseStruct.js'; @element('tabpane-summary') export class TabPaneSummary extends BaseElement { @@ -385,9 +385,7 @@ export class TabPaneSummary extends BaseElement { private retainsTableByRetainedSize(currentLeftItem: ConstructorItem, sort: number) { const getList = function (list: Array) { list.sort((leftA, rightB) => { - return sort === 1 - ? leftA.retainedSize - rightB.retainedSize - : rightB.retainedSize - leftA.retainedSize; + return sort === 1 ? leftA.retainedSize - rightB.retainedSize : rightB.retainedSize - leftA.retainedSize; }); list.forEach(function (row) { if (row.children.length > 0) { diff --git a/ide/src/trace/component/trace/sheet/clock/TabPaneClockCounter.ts b/ide/src/trace/component/trace/sheet/clock/TabPaneClockCounter.ts index 97101bb5..d7113aee 100644 --- a/ide/src/trace/component/trace/sheet/clock/TabPaneClockCounter.ts +++ b/ide/src/trace/component/trace/sheet/clock/TabPaneClockCounter.ts @@ -139,8 +139,11 @@ export class TabPaneClockCounter extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(clockCounterRightData[property]) - parseFloat(clockCounterLeftData[property]) : parseFloat(clockCounterLeftData[property]) - parseFloat(clockCounterRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(clockCounterRightData[property]) - parseFloat(clockCounterLeftData[property]) + : // @ts-ignore + parseFloat(clockCounterLeftData[property]) - parseFloat(clockCounterRightData[property]); } else { // @ts-ignore if (clockCounterRightData[property] > clockCounterLeftData[property]) { diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts index 82e56164..f3272ad2 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts @@ -64,8 +64,8 @@ export class TabPaneCounterSample extends BaseElement { this.counterLoadingPage = this.shadowRoot!.querySelector('.loadingCounter'); this.counterSampleTbl = this.shadowRoot!.querySelector('#tb-counter-sample'); this.systemTrace = document - .querySelector('body > sp-application')! - .shadowRoot!.querySelector('#sp-system-trace'); + .querySelector('body > sp-application')?. + shadowRoot!.querySelector('#sp-system-trace'); this.counterSampleTbl!.addEventListener('column-click', (evt) => { // @ts-ignore this.counterSortKey = evt.detail.key; diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByProcess.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByProcess.ts index cbb95db7..eff4585f 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByProcess.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByProcess.ts @@ -123,8 +123,11 @@ export class TabPaneCpuByProcess extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(cpuByProcessRightData[property]) - parseFloat(cpuByProcessLeftData[property]) : parseFloat(cpuByProcessLeftData[property]) - parseFloat(cpuByProcessRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(cpuByProcessRightData[property]) - parseFloat(cpuByProcessLeftData[property]) + : // @ts-ignore + parseFloat(cpuByProcessLeftData[property]) - parseFloat(cpuByProcessRightData[property]); } else { // @ts-ignore if (cpuByProcessRightData[property] > cpuByProcessLeftData[property]) { diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByThread.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByThread.ts index 8b862774..ed3401bf 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByThread.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuByThread.ts @@ -186,8 +186,11 @@ export class TabPaneCpuByThread extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(cpuByThreadRightData[property]) - parseFloat(cpuByThreadLeftData[property]) : parseFloat(cpuByThreadLeftData[property]) - parseFloat(cpuByThreadRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(cpuByThreadRightData[property]) - parseFloat(cpuByThreadLeftData[property]) + : // @ts-ignore + parseFloat(cpuByThreadLeftData[property]) - parseFloat(cpuByThreadRightData[property]); } else { // @ts-ignore if (cpuByThreadRightData[property] > cpuByThreadLeftData[property]) { diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts index ddf5f221..e3bc07c6 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts @@ -68,8 +68,8 @@ export class TabPaneFrequencySample extends BaseElement { this.frequencyLoadingPage = this.shadowRoot!.querySelector('.loadingFre'); this.frequencySampleTbl = this.shadowRoot!.querySelector('#tb-states'); this.systemTrace = document - .querySelector('body > sp-application')! - .shadowRoot!.querySelector('#sp-system-trace'); + .querySelector('body > sp-application')?. + shadowRoot!.querySelector('#sp-system-trace'); this.frequencySampleTbl!.addEventListener('column-click', (evt) => { // @ts-ignore this.frequencySampleSortKey = evt.detail.key; diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneSchedPriority.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneSchedPriority.ts index dd2872fa..6173e3ad 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneSchedPriority.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneSchedPriority.ts @@ -54,14 +54,14 @@ export class TabPaneSchedPriority extends BaseElement { private async queryDataByDB(sptParam: SelectionParam | any): Promise { this.priorityTbl!.loading = true; const resultData: Array = []; - if (this.strValueMap.size === 0){ + if (this.strValueMap.size === 0) { await queryThreadStateArgsByName('next_info').then((value) => { for (const item of value) { this.strValueMap.set(item.argset, item.strValue); } }); } - + const filterList = ['0', '0x0']; //next_info第2字段不为0 || next_info第3字段不为0 // 通过priority与next_info结合判断优先级等级 diff --git a/ide/src/trace/component/trace/sheet/energy/TabPanePowerDetails.ts b/ide/src/trace/component/trace/sheet/energy/TabPanePowerDetails.ts index 4c6d66ae..79488645 100644 --- a/ide/src/trace/component/trace/sheet/energy/TabPanePowerDetails.ts +++ b/ide/src/trace/component/trace/sheet/energy/TabPanePowerDetails.ts @@ -298,9 +298,13 @@ export class TabPanePowerDetails extends BaseElement { if (type === 'number') { return sort === 2 ? // @ts-ignore - parseFloat(bPowerDetails[property] == '-' ? 0 : bPowerDetails[property]) - parseFloat(aPowerDetails[property] == '-' ? 0 : aPowerDetails[property]) + parseFloat(bPowerDetails[property] == '-' ? 0 : bPowerDetails[property]) - + // @ts-ignore + parseFloat(aPowerDetails[property] == '-' ? 0 : aPowerDetails[property]) : // @ts-ignore - parseFloat(aPowerDetails[property] == '-' ? 0 : aPowerDetails[property]) - parseFloat(bPowerDetails[property] == '-' ? 0 : bPowerDetails[property]); + parseFloat(aPowerDetails[property] == '-' ? 0 : aPowerDetails[property]) - + // @ts-ignore + parseFloat(bPowerDetails[property] == '-' ? 0 : bPowerDetails[property]); } else { // @ts-ignore if (bPowerDetails[property] > aPowerDetails[property]) { diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneCallTree.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneCallTree.ts index d32668b5..b75ae1cf 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneCallTree.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneCallTree.ts @@ -201,10 +201,12 @@ export class TabPaneCallTree extends BaseElement { this.frameChart?.calculateChartData(); } // @ts-ignore - this.callTreeTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 35 + 'px'; + this.callTreeTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 35 + 'px'; this.callTreeTbl?.reMeauseHeight(); // @ts-ignore - this.callTreeTbr?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 45 - 21 + 'px'; + this.callTreeTbr?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 45 - 21 + 'px'; this.callTreeTbr?.reMeauseHeight(); this.loadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } @@ -224,7 +226,7 @@ export class TabPaneCallTree extends BaseElement { let data = evt.detail.data as MerageBean; document.dispatchEvent( new CustomEvent('number_calibration', { - detail: { time: data.tsArray, durations: data.durArray}, + detail: { time: data.tsArray, durations: data.durArray }, }) ); this.setRightTableData(data); diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemCalltree.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemCalltree.ts index 6a879a5c..b2b35669 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemCalltree.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemCalltree.ts @@ -175,7 +175,7 @@ export class TabpaneFilesystemCalltree extends BaseElement { let data = evt.detail.data as FileMerageBean; document.dispatchEvent( new CustomEvent('number_calibration', { - detail: { time: data.tsArray,durations: data.durArray }, + detail: { time: data.tsArray, durations: data.durArray }, }) ); this.setRightTableData(data); @@ -425,10 +425,12 @@ export class TabpaneFilesystemCalltree extends BaseElement { this.frameChart?.calculateChartData(); } // @ts-ignore - this.fsCallTreeTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 35 + 'px'; + this.fsCallTreeTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 35 + 'px'; this.fsCallTreeTbl?.reMeauseHeight(); // @ts-ignore - this.fsCallTreeTbr?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 45 - 21 + 'px'; + this.fsCallTreeTbr?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 45 - 21 + 'px'; this.fsCallTreeTbr?.reMeauseHeight(); this.loadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescHistory.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescHistory.ts index 837854ba..ef08cf51 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescHistory.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescHistory.ts @@ -48,9 +48,11 @@ export class TabPaneFileSystemDescHistory extends BaseElement { } this.currentSelection = fsDescHistorySelection; // @ts-ignore - this.fsDescHistoryTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.fsDescHistoryTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; // @ts-ignore - this.fsDescHistoryTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.fsDescHistoryTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; this.fsDescHistoryTbl!.recycleDataSource = []; this.fsDescHistoryTblData!.recycleDataSource = []; if (fsDescHistorySelection) { @@ -183,10 +185,12 @@ export class TabPaneFileSystemDescHistory extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.fsDescHistoryTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + this.fsDescHistoryTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; this.fsDescHistoryTbl?.reMeauseHeight(); // @ts-ignore - this.fsDescHistoryTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + this.fsDescHistoryTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; this.fsDescHistoryTblData?.reMeauseHeight(); this.fsDescHistoryLoadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescTimeSlice.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescTimeSlice.ts index a85d0162..f54abc99 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescTimeSlice.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemDescTimeSlice.ts @@ -39,9 +39,11 @@ export class TabPaneFileSystemDescTimeSlice extends BaseElement { } this.currentSelection = fsDescTimeSliceSelection; // @ts-ignore - this.fsDescTimeSliceTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.fsDescTimeSliceTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; // @ts-ignore - this.fsDescTimeSliceTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.fsDescTimeSliceTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; this.fsDescTimeSliceTbl!.recycleDataSource = []; this.fsDescTimeSliceTblData!.recycleDataSource = []; if (fsDescTimeSliceSelection) { @@ -115,10 +117,12 @@ export class TabPaneFileSystemDescTimeSlice extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.fsDescTimeSliceTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + this.fsDescTimeSliceTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; this.fsDescTimeSliceTbl?.reMeauseHeight(); // @ts-ignore - this.fsDescTimeSliceTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + this.fsDescTimeSliceTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; this.fsDescTimeSliceTblData?.reMeauseHeight(); this.fsDescTimeSliceLoadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemEvents.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemEvents.ts index fadbfae6..44460346 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemEvents.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFileSystemEvents.ts @@ -49,9 +49,11 @@ export class TabPaneFileSystemEvents extends BaseElement { } this.currentSelection = fsSysEventSelection; // @ts-ignore - this.fsSysEventTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.fsSysEventTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; // @ts-ignore - this.fsSysEventTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.fsSysEventTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; this.filterEventType = '0'; this.filterProcess = '0'; this.queryData(fsSysEventSelection); @@ -216,10 +218,12 @@ export class TabPaneFileSystemEvents extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.fsSysEventTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 33 + 'px'; + this.fsSysEventTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 33 + 'px'; this.fsSysEventTbl?.reMeauseHeight(); // @ts-ignore - this.fsSysEventTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 33 + 'px'; + this.fsSysEventTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 33 + 'px'; this.fsSysEventTblData?.reMeauseHeight(); this.loadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts index 13201706..eddd56dd 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts @@ -40,7 +40,8 @@ export class TabPaneFileStatistics extends BaseElement { this.fileStatisticsLoadingPage.style.visibility = 'visible'; this.selectionParam = fileStatisticsSelection; // @ts-ignore - this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = this.parentElement!.clientHeight - 25 + 'px'; + this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = + this.parentElement!.clientHeight - 25 + 'px'; this.queryDataByDB(fileStatisticsSelection); } @@ -55,7 +56,8 @@ export class TabPaneFileStatistics extends BaseElement { this.fileStatisticsSortType = evt.detail.sort; let newSource = JSON.parse(JSON.stringify(this.fileStatisticsSource)); - if (this.fileStatisticsSortType != 0 && newSource.length > 0) this.sortTable(newSource[0], this.fileStatisticsSortKey); + if (this.fileStatisticsSortType != 0 && newSource.length > 0) + this.sortTable(newSource[0], this.fileStatisticsSortKey); this.fileStatisticsTbl!.recycleDataSource = newSource; }); } @@ -65,7 +67,8 @@ export class TabPaneFileStatistics extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement!.clientHeight != 0) { // @ts-ignore - this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = this.parentElement!.clientHeight - 25 + 'px'; + this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = + this.parentElement!.clientHeight - 25 + 'px'; this.fileStatisticsTbl!.reMeauseHeight(); this.fileStatisticsLoadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } @@ -122,8 +125,10 @@ export class TabPaneFileStatistics extends BaseElement { fileStatisticsObj.logicalWrites += item.logicalWrites; fileStatisticsObj.otherFile += item.otherFile; fileStatisticsObj.allDuration += item.allDuration; - fileStatisticsObj.minDuration = fileStatisticsObj.minDuration <= item.minDuration ? fileStatisticsObj.minDuration : item.minDuration; - fileStatisticsObj.maxDuration = fileStatisticsObj.maxDuration >= item.maxDuration ? fileStatisticsObj.maxDuration : item.maxDuration; + fileStatisticsObj.minDuration = + fileStatisticsObj.minDuration <= item.minDuration ? fileStatisticsObj.minDuration : item.minDuration; + fileStatisticsObj.maxDuration = + fileStatisticsObj.maxDuration >= item.maxDuration ? fileStatisticsObj.maxDuration : item.maxDuration; fileStatisticsObj.children.push(this.getInitData(item)); } else { fileStatisticsFatherMap.set(item.type, { @@ -141,14 +146,18 @@ export class TabPaneFileStatistics extends BaseElement { if (idx == 0) { fileStatisticsAllNode.minDuration = item.minDuration; } else { - fileStatisticsAllNode.minDuration = fileStatisticsAllNode.minDuration <= item.minDuration ? fileStatisticsAllNode.minDuration : item.minDuration; + fileStatisticsAllNode.minDuration = + fileStatisticsAllNode.minDuration <= item.minDuration + ? fileStatisticsAllNode.minDuration + : item.minDuration; } fileStatisticsAllNode.count += item.count; fileStatisticsAllNode.logicalReads += item.logicalReads; fileStatisticsAllNode.logicalWrites += item.logicalWrites; fileStatisticsAllNode.otherFile += item.otherFile; fileStatisticsAllNode.allDuration += item.allDuration; - fileStatisticsAllNode.maxDuration = fileStatisticsAllNode.maxDuration >= item.maxDuration ? fileStatisticsAllNode.maxDuration : item.maxDuration; + fileStatisticsAllNode.maxDuration = + fileStatisticsAllNode.maxDuration >= item.maxDuration ? fileStatisticsAllNode.maxDuration : item.maxDuration; }); fileStatisticsFatherMap.forEach((item) => { item.avgDuration = item.allDuration / item.count; @@ -165,7 +174,8 @@ export class TabPaneFileStatistics extends BaseElement { fileStatisticsAllNode.title = 'All'; this.fileStatisticsSource = result.length > 0 ? [fileStatisticsAllNode] : []; let newSource = JSON.parse(JSON.stringify(this.fileStatisticsSource)); - if (this.fileStatisticsSortType != 0 && result.length > 0) this.sortTable(newSource[0], this.fileStatisticsSortKey); + if (this.fileStatisticsSortType != 0 && result.length > 0) + this.sortTable(newSource[0], this.fileStatisticsSortKey); this.fileStatisticsTbl!.recycleDataSource = newSource; }); } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatisticsAnalysis.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatisticsAnalysis.ts index 82b0e549..63fd95ca 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatisticsAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatisticsAnalysis.ts @@ -285,11 +285,11 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { }); } private getFileTypeTip() { - return (obj: { obj: { tableName: any; durFormat: any; percent: any; }; }): string => { + return (obj: { obj: { tableName: any; durFormat: any; percent: any } }): string => { return `
-
Type:${ obj.obj.tableName }
-
Duration:${ obj.obj.durFormat }
-
Percent:${ obj.obj.percent }%
+
Type:${obj.obj.tableName}
+
Duration:${obj.obj.durFormat}
+
Percent:${obj.obj.percent}%
`; }; @@ -374,11 +374,11 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { }); } private getFsTip() { - return (obj: { obj: { tableName: any; durFormat: any; percent: any; }; }): string => { + return (obj: { obj: { tableName: any; durFormat: any; percent: any } }): string => { return `
-
ThreadName:${ obj.obj.tableName }
-
Duration:${ obj.obj.durFormat }
-
Percent:${ obj.obj.percent }%
+
ThreadName:${obj.obj.tableName}
+
Duration:${obj.obj.durFormat}
+
Percent:${obj.obj.percent}%
`; }; @@ -411,9 +411,9 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { }, tip: (fileSysObj): string => { return `
-
Library:${ fileSysObj.obj.tableName }
-
Duration:${ fileSysObj.obj.durFormat }
-
Percent:${ fileSysObj.obj.percent }%
+
Library:${fileSysObj.obj.tableName}
+
Duration:${fileSysObj.obj.durFormat}
+
Percent:${fileSysObj.obj.percent}%
`; }, @@ -606,8 +606,9 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { let pName = ''; for (let fileSysStatPidItem of value) { pName = fileSysStatPidItem.processName = - fileSysStatPidItem.processName === null || fileSysStatPidItem.processName === undefined ? - `Process(${ fileSysStatPidItem.pid })` : `${ fileSysStatPidItem.processName }(${ fileSysStatPidItem.pid })`; + fileSysStatPidItem.processName === null || fileSysStatPidItem.processName === undefined + ? `Process(${fileSysStatPidItem.pid})` + : `${fileSysStatPidItem.processName}(${fileSysStatPidItem.pid})`; analysisPidDataDur += fileSysStatPidItem.dur; } this.fileStatisticsAnalysisPidData.push({ @@ -712,7 +713,9 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { for (let fileSysStatThreadItem of value) { dur += fileSysStatThreadItem.dur; tName = fileSysStatThreadItem.threadName = - fileSysStatThreadItem.threadName === null || fileSysStatThreadItem.threadName === undefined ? `Thread(${ fileSysStatThreadItem.tid })` : `${ fileSysStatThreadItem.threadName }`; + fileSysStatThreadItem.threadName === null || fileSysStatThreadItem.threadName === undefined + ? `Thread(${fileSysStatThreadItem.tid})` + : `${fileSysStatThreadItem.threadName}`; } const threadData = { tableName: tName, @@ -858,9 +861,9 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { }, tip: (fsaObj): string => { return `
-
Function:${ fsaObj.obj.tableName }
-
Duration:${ fsaObj.obj.durFormat }
-
percent:${ fsaObj.obj.percent }
+
Function:${fsaObj.obj.tableName}
+
Duration:${fsaObj.obj.durFormat}
+
percent:${fsaObj.obj.percent}
`; }, @@ -915,7 +918,7 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { // @ts-ignore return fsReleaseType; } - totalDurationData(durationTS: number): { durFormat: string; percent: string; tableName: string; duration: number; } { + totalDurationData(durationTS: number): { durFormat: string; percent: string; tableName: string; duration: number } { return { durFormat: Utils.getProbablyTime(durationTS), percent: ((durationTS / durationTS) * 100).toFixed(2), @@ -932,7 +935,7 @@ export class TabPaneFilesystemStatisticsAnalysis extends BaseElement { percent: 0, durFormat: 0, }; - for (let pieDataIndex = 0 ; pieDataIndex < fsPieChartData.length ; pieDataIndex++) { + for (let pieDataIndex = 0; pieDataIndex < fsPieChartData.length; pieDataIndex++) { if (pieDataIndex < 19) { fsPieChartArr.push(fsPieChartData[pieDataIndex]); } else { diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatisticsAnalysis.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatisticsAnalysis.ts index da98801c..9de21ec4 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatisticsAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatisticsAnalysis.ts @@ -367,11 +367,11 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { } }); } - private getIoTierTip(obj: { obj: { tableName: any; durFormat: any; percent: any; }; }) { + private getIoTierTip(obj: { obj: { tableName: any; durFormat: any; percent: any } }) { return `
-
ThreadName:${ obj.obj.tableName }
-
Duration:${ obj.obj.durFormat }
-
Percent:${ obj.obj.percent }%
+
ThreadName:${obj.obj.tableName}
+
Duration:${obj.obj.durFormat}
+
Percent:${obj.obj.percent}%
`; } @@ -402,9 +402,9 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { }, tip: (ioTierObj): string => { return `
-
Library:${ ioTierObj.obj.tableName }
-
Duration:${ ioTierObj.obj.durFormat }
-
Percent:${ ioTierObj.obj.percent }%
+
Library:${ioTierObj.obj.tableName}
+
Duration:${ioTierObj.obj.durFormat}
+
Percent:${ioTierObj.obj.percent}%
`; }, @@ -520,7 +520,7 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { } else { let sortIoArr = [...this.currentLevelData]; if (column === 'tableName') { - ioTierCurrentTable!.recycleDataSource = sortIoArr.sort((firstIOElement, secondIOElement) => { + ioTierCurrentTable!.recycleDataSource = sortIoArr.sort((firstIOElement, secondIOElement) => { if (ioSort === 1) { if (firstIOElement.tableName > secondIOElement.tableName) { return 1; @@ -591,8 +591,8 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { for (let item of value) { pName = item.processName = item.processName === null || item.processName === undefined - ? `Process(${ item.pid })` - : `${ item.processName }(${ item.pid })`; + ? `Process(${item.pid})` + : `${item.processName}(${item.pid})`; ioPidDataDur += item.dur; } this.pidData.push({ @@ -695,7 +695,7 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { for (let item of value) { dur += item.dur; tName = item.threadName = - item.threadName === null || item.threadName === undefined ? `Thread(${ item.tid })` : `${ item.threadName }`; + item.threadName === null || item.threadName === undefined ? `Thread(${item.tid})` : `${item.threadName}`; } const threadData = { tableName: tName, @@ -772,7 +772,8 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { } getIOTierFunction(item: any): void { this.progressEL!.loading = true; - this.shadowRoot!.querySelector('.io-tier-subheading')!.textContent = 'Statistic By Function AllDuration'; + this.shadowRoot!.querySelector('.io-tier-subheading')!.textContent = + 'Statistic By Function AllDuration'; let tid = item.tid; let pid = item.pid; let type = item.type; @@ -877,7 +878,7 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { } private getTip() { - return (obj: { obj: { tableName: any; durFormat: any; percent: any; }; }): string => { + return (obj: { obj: { tableName: any; durFormat: any; percent: any } }): string => { return `
Function:${obj.obj.tableName}
Duration:${obj.obj.durFormat}
@@ -902,8 +903,11 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { return ioTierReleaseType; } totalDurationData(duration: number): { - durFormat: string; percent: string; tableName: string; - duration: number; allDuration: number; + durFormat: string; + percent: string; + tableName: string; + duration: number; + allDuration: number; } { let allDuration; allDuration = { @@ -924,7 +928,7 @@ export class TabPaneIOTierStatisticsAnalysis extends BaseElement { percent: 0, durFormat: 0, }; - for (let i = 0 ; i < res.length ; i++) { + for (let i = 0; i < res.length; i++) { if (i < 19) { IOTierPieChartArr.push(res[i]); } else { diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneIoCompletionTimes.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneIoCompletionTimes.ts index 724400d5..0acaca49 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneIoCompletionTimes.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneIoCompletionTimes.ts @@ -20,14 +20,12 @@ import '../../../../../base-ui/slicer/lit-slicer.js'; import { LitProgressBar } from '../../../../../base-ui/progress-bar/LitProgressBar.js'; import { procedurePool } from '../../../../database/Procedure.js'; import { - DISKIO_TYPE_MAP, FileSysEvent, IoCompletionTimes, - VirtualMemoryEvent, VM_TYPE_MAP, } from '../../../../database/logic-worker/ProcedureLogicWorkerFileSystem.js'; import { FilterData, TabPaneFilter } from '../TabPaneFilter.js'; -import { getTabIoCompletionTimesType, getTabVirtualMemoryType } from '../../../../database/SqlLite.js'; +import { getTabIoCompletionTimesType } from '../../../../database/SqlLite.js'; @element('tabpane-io-completiontimes') export class TabPaneIoCompletionTimes extends BaseElement { @@ -39,8 +37,6 @@ export class TabPaneIoCompletionTimes extends BaseElement { private ioCompletionTimesProgressEL: LitProgressBar | null | undefined; private ioCompletionTimesLoadingList: number[] = []; private ioCompletionTimesLoadingPage: any; - private ioCompletionTimesSortKey: string = 'startTs'; - private ioCompletionTimesSortType: number = 0; private currentSelection: SelectionParam | undefined | null; private ioCompletionTimesSource: Array = []; private ioCompletionTimesQueryDataSource: Array = []; @@ -55,9 +51,11 @@ export class TabPaneIoCompletionTimes extends BaseElement { this.queryData(ioCompletionTimesSelection!); }); // @ts-ignore - this.ioCompletionTimesTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.ioCompletionTimesTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; // @ts-ignore - this.ioCompletionTimesTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.ioCompletionTimesTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; this.ioCompletionTimesTbl!.recycleDataSource = []; this.ioCompletionTimesTblData!.recycleDataSource = []; } @@ -66,10 +64,12 @@ export class TabPaneIoCompletionTimes extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.ioCompletionTimesTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 33 + 'px'; + this.ioCompletionTimesTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 33 + 'px'; this.ioCompletionTimesTbl?.reMeauseHeight(); // @ts-ignore - this.ioCompletionTimesTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 33 + 'px'; + this.ioCompletionTimesTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 33 + 'px'; this.ioCompletionTimesTblData?.reMeauseHeight(); this.ioCompletionTimesLoadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneVMEvents.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneVMEvents.ts index 9fd7245c..18da8baa 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneVMEvents.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneVMEvents.ts @@ -19,11 +19,7 @@ import { SelectionParam } from '../../../../bean/BoxSelection.js'; import '../../../../../base-ui/slicer/lit-slicer.js'; import { LitProgressBar } from '../../../../../base-ui/progress-bar/LitProgressBar.js'; import { procedurePool } from '../../../../database/Procedure.js'; -import { - FileSysEvent, - VirtualMemoryEvent, - VM_TYPE_MAP, -} from '../../../../database/logic-worker/ProcedureLogicWorkerFileSystem.js'; +import { VirtualMemoryEvent, VM_TYPE_MAP } from '../../../../database/logic-worker/ProcedureLogicWorkerFileSystem.js'; import { FilterData, TabPaneFilter } from '../TabPaneFilter.js'; import { getTabVirtualMemoryType } from '../../../../database/SqlLite.js'; @@ -39,8 +35,6 @@ export class TabPaneVirtualMemoryEvents extends BaseElement { private loadingPage: any; private vmEventSource: Array = []; private queryVmEventDataSource: Array = []; - private vmEventSortKey: string = 'startTs'; - private vmEventSortType: number = 0; private currentSelection: SelectionParam | undefined | null; private statsticsSelection: Array = []; @@ -55,7 +49,8 @@ export class TabPaneVirtualMemoryEvents extends BaseElement { // @ts-ignore this.vmEventTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; // @ts-ignore - this.vmEventTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 20 - 31 + 'px'; + this.vmEventTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 20 - 31 + 'px'; this.vmEventTbl!.recycleDataSource = []; this.vmEventTblData!.recycleDataSource = []; } @@ -64,10 +59,12 @@ export class TabPaneVirtualMemoryEvents extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.vmEventTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 33 + 'px'; + this.vmEventTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 33 + 'px'; this.vmEventTbl?.reMeauseHeight(); // @ts-ignore - this.vmEventTblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 33 + 'px'; + this.vmEventTblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 33 + 'px'; this.vmEventTblData?.reMeauseHeight(); this.loadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatisticsAnalysis.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatisticsAnalysis.ts index 7fb924b8..d999beba 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatisticsAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatisticsAnalysis.ts @@ -217,7 +217,7 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { } private getVmTip() { - return (obj: { obj: { tableName: any; durFormat: any; percent: any; }; }): string => { + return (obj: { obj: { tableName: any; durFormat: any; percent: any } }): string => { return `
ProcessName:${obj.obj.tableName}
Duration:${obj.obj.durFormat}
@@ -403,9 +403,9 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { }, tip: (vmLibraryObj): string => { return `
-
Library:${ vmLibraryObj.obj.tableName }
-
Duration:${ vmLibraryObj.obj.durFormat }
-
percent:${ vmLibraryObj.obj.percent }%
+
Library:${vmLibraryObj.obj.tableName}
+
Duration:${vmLibraryObj.obj.durFormat}
+
percent:${vmLibraryObj.obj.percent}%
`; }, @@ -593,8 +593,8 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { for (let item of value) { pName = item.processName = item.processName === null || item.processName === undefined - ? `Process(${ item.pid })` - : `${ item.processName }(${ item.pid })`; + ? `Process(${item.pid})` + : `${item.processName}(${item.pid})`; vmPidDataDur += item.dur; } this.vmStatisticsAnalysisPidData.push({ @@ -697,7 +697,7 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { for (let item of value) { vmThreadDur += item.dur; tName = item.threadName = - item.threadName === null || item.threadName === undefined ? `Thread(${ item.tid })` : `${ item.threadName }`; + item.threadName === null || item.threadName === undefined ? `Thread(${item.tid})` : `${item.threadName}`; } const threadData = { tableName: tName, @@ -842,9 +842,9 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { }, tip: (vmObj): string => { return `
-
Function:${ vmObj.obj.tableName }
-
Duration:${ vmObj.obj.durFormat }
-
percent:${ vmObj.obj.percent }
+
Function:${vmObj.obj.tableName}
+
Duration:${vmObj.obj.durFormat}
+
percent:${vmObj.obj.percent}
`; }, @@ -895,7 +895,7 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { // @ts-ignore return vmReleaseType; } - totalDurationData(duration: number): { durFormat: string; percent: string; tableName: string; duration: number; } { + totalDurationData(duration: number): { durFormat: string; percent: string; tableName: string; duration: number } { return { durFormat: Utils.getProbablyTime(duration), percent: ((duration / duration) * 100).toFixed(2), @@ -912,7 +912,7 @@ export class TabPaneVirtualMemoryStatisticsAnalysis extends BaseElement { percent: 0, durFormat: 0, }; - for (let i = 0 ; i < vmRes.length ; i++) { + for (let i = 0; i < vmRes.length; i++) { if (i < 19) { vmPieChartArr.push(vmRes[i]); } else { diff --git a/ide/src/trace/component/trace/sheet/frame/TabFrameSpacing.ts b/ide/src/trace/component/trace/sheet/frame/TabFrameSpacing.ts index 3c66d333..105e5abd 100644 --- a/ide/src/trace/component/trace/sheet/frame/TabFrameSpacing.ts +++ b/ide/src/trace/component/trace/sheet/frame/TabFrameSpacing.ts @@ -29,8 +29,9 @@ export class TabFrameSpacing extends BaseElement { set data(frameSpacingParam: SelectionParam) { let secondToMillisecond: number = 1000_000.0; let fixedNumber: number = 5; - this.range!.textContent = `Selected range: ${parseFloat(((frameSpacingParam.rightNs - frameSpacingParam.leftNs) / - secondToMillisecond).toFixed(fixedNumber))} ms`; + this.range!.textContent = `Selected range: ${parseFloat( + ((frameSpacingParam.rightNs - frameSpacingParam.leftNs) / secondToMillisecond).toFixed(fixedNumber) + )} ms`; let tableList: FrameSpacingTableStruct[] = []; for (let index = 0; index < frameSpacingParam.frameSpacing.length; index++) { this.constructTable(frameSpacingParam.frameSpacing[index], tableList); @@ -61,7 +62,7 @@ export class TabFrameSpacing extends BaseElement { tableList.push(this.getSplitSpacingData(structValue, startNS, 'Y')); } - getSplitSpacingData(structValue: FrameSpacingStruct, startNS: number, propertyStr: string): FrameSpacingTableStruct{ + getSplitSpacingData(structValue: FrameSpacingStruct, startNS: number, propertyStr: string): FrameSpacingTableStruct { let frameSpacing: FrameSpacingTableStruct = new FrameSpacingTableStruct(); let secondToNanosecond: number = 1000_000_000; frameSpacing.index = structValue.id; @@ -107,10 +108,7 @@ export class TabFrameSpacing extends BaseElement { }); } - sortByColumn(framesDetail: { - sort: number, - key: string, - }): void { + sortByColumn(framesDetail: { sort: number; key: string }): void { let compare = function (property: string, sort: number, type: string) { return function ( frameSpacingLeftData: FrameSpacingTableStruct, @@ -124,8 +122,9 @@ export class TabFrameSpacing extends BaseElement { // @ts-ignore let leftSpacingData = frameSpacingLeftData[property]; if (type === 'number') { - return sort === thirdSortNumber ? parseFloat(rightSpacingData) - parseFloat(leftSpacingData) : - parseFloat(leftSpacingData) - parseFloat(rightSpacingData); + return sort === thirdSortNumber + ? parseFloat(rightSpacingData) - parseFloat(leftSpacingData) + : parseFloat(leftSpacingData) - parseFloat(rightSpacingData); } else { if (rightSpacingData > leftSpacingData) { return sort === thirdSortNumber ? SecondSortNumber : firstSortNumber; diff --git a/ide/src/trace/component/trace/sheet/frame/TabPaneFrameDynamic.ts b/ide/src/trace/component/trace/sheet/frame/TabPaneFrameDynamic.ts index 3a18f581..3c59e7f0 100644 --- a/ide/src/trace/component/trace/sheet/frame/TabPaneFrameDynamic.ts +++ b/ide/src/trace/component/trace/sheet/frame/TabPaneFrameDynamic.ts @@ -30,8 +30,9 @@ export class TabPaneFrameDynamic extends BaseElement { set data(frameDynamicParam: SelectionParam) { let secondToMillisecond: number = 1000_000.0; let fixedNumber: number = 5; - this.range!.textContent = `Selected range: ${parseFloat(((frameDynamicParam.rightNs - - frameDynamicParam.leftNs) / secondToMillisecond).toFixed(fixedNumber))} ms`; + this.range!.textContent = `Selected range: ${parseFloat( + ((frameDynamicParam.rightNs - frameDynamicParam.leftNs) / secondToMillisecond).toFixed(fixedNumber) + )} ms`; this.buildDynamicTable(frameDynamicParam.frameDynamic); } @@ -42,11 +43,11 @@ export class TabPaneFrameDynamic extends BaseElement { this.range!.style.visibility = 'visible'; } let result: FrameAnimationSelect[] = []; - dynamicDataList.forEach(dynamic => { + dynamicDataList.forEach((dynamic) => { result.push({ id: dynamic.id, value: dynamic.typeValue, - timestamp: Utils.getTimeString(dynamic.ts) + timestamp: Utils.getTimeString(dynamic.ts), }); }); this.frameDynamicSource = result; @@ -97,10 +98,7 @@ export class TabPaneFrameDynamic extends BaseElement { `; } - private sortByColumn(framesDetail: { - sort: number, - key: string, - }): void { + private sortByColumn(framesDetail: { sort: number; key: string }): void { let compare = function (property: string, sort: number, type: string) { return function (frameDynamicLeft: FrameAnimationSelect, frameDynamicRight: FrameAnimationSelect): number { let firstSortNumber: number = -1; @@ -111,8 +109,9 @@ export class TabPaneFrameDynamic extends BaseElement { // @ts-ignore let leftData = frameDynamicLeft[property]; if (type === 'number') { - return sort === thirdSortNumber ? parseFloat(rightData) - parseFloat(leftData) : - parseFloat(leftData) - parseFloat(rightData); + return sort === thirdSortNumber + ? parseFloat(rightData) - parseFloat(leftData) + : parseFloat(leftData) - parseFloat(rightData); } else { if (rightData > leftData) { return sort === thirdSortNumber ? SecondSortNumber : firstSortNumber; diff --git a/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuTotalBoxSelect.ts b/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuTotalBoxSelect.ts index 049c2865..7e030d7a 100644 --- a/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuTotalBoxSelect.ts +++ b/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuTotalBoxSelect.ts @@ -56,27 +56,29 @@ export class TabPaneGpuTotalBoxSelect extends BaseElement { this.range!.textContent = 'Selected range: ' + ((gpuTotalBoxParam.rightNs - gpuTotalBoxParam.leftNs) / 1000000.0).toFixed(5) + ' ms'; this.gpuBoxTbl!.loading = true; - queryGpuDataByRange(gpuTotalBoxParam.leftNs, gpuTotalBoxParam.rightNs, MemoryConfig.getInstance().snapshotDur).then((result) => { - this.gpuBoxTbl!.loading = false; - if (result != null && result.length > 0) { - log('getTabStartups result size : ' + result.length); - let target = result.filter((it) => it.windowId === 0); - target.forEach((it: GpuTotal) => { - let moduleName = SpSystemTrace.DATA_DICT.get(it.moduleId) || 'NULL'; - let categoryName = SpSystemTrace.DATA_DICT.get(it.categoryId) || 'NULL'; - it.gpuName = `${moduleName} / ${categoryName}`; - it.startTsStr = getProbablyTime(it.startTs); - it.avgSizeStr = Utils.getBinaryByteWithUnit(it.avgSize); - it.minSizeStr = Utils.getBinaryByteWithUnit(it.minSize); - it.maxSizeStr = Utils.getBinaryByteWithUnit(it.maxSize); - }); - this.gpuBoxSource = target; - this.gpuBoxTbl!.recycleDataSource = this.gpuBoxSource; - } else { - this.gpuBoxSource = []; - this.gpuBoxTbl!.recycleDataSource = []; + queryGpuDataByRange(gpuTotalBoxParam.leftNs, gpuTotalBoxParam.rightNs, MemoryConfig.getInstance().snapshotDur).then( + (result) => { + this.gpuBoxTbl!.loading = false; + if (result != null && result.length > 0) { + log('getTabStartups result size : ' + result.length); + let target = result.filter((it) => it.windowId === 0); + target.forEach((it: GpuTotal) => { + let moduleName = SpSystemTrace.DATA_DICT.get(it.moduleId) || 'NULL'; + let categoryName = SpSystemTrace.DATA_DICT.get(it.categoryId) || 'NULL'; + it.gpuName = `${moduleName} / ${categoryName}`; + it.startTsStr = getProbablyTime(it.startTs); + it.avgSizeStr = Utils.getBinaryByteWithUnit(it.avgSize); + it.minSizeStr = Utils.getBinaryByteWithUnit(it.minSize); + it.maxSizeStr = Utils.getBinaryByteWithUnit(it.maxSize); + }); + this.gpuBoxSource = target; + this.gpuBoxTbl!.recycleDataSource = this.gpuBoxSource; + } else { + this.gpuBoxSource = []; + this.gpuBoxTbl!.recycleDataSource = []; + } } - }); + ); } initElements(): void { diff --git a/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuWindowBoxSelect.ts b/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuWindowBoxSelect.ts index 38453b5c..075f4184 100644 --- a/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuWindowBoxSelect.ts +++ b/ide/src/trace/component/trace/sheet/gpu/TabPaneGpuWindowBoxSelect.ts @@ -56,28 +56,30 @@ export class TabPaneGpuWindowBoxSelect extends BaseElement { this.range!.textContent = 'Selected range: ' + ((gpuBoxParam.rightNs - gpuBoxParam.leftNs) / 1000000.0).toFixed(5) + ' ms'; this.gpuBoxTbl!.loading = true; - queryGpuDataByRange(gpuBoxParam.leftNs, gpuBoxParam.rightNs, MemoryConfig.getInstance().snapshotDur).then((result) => { - this.gpuBoxTbl!.loading = false; - if (result != null && result.length > 0) { - log('getTabStartups result size : ' + result.length); - let target = result.filter((it) => it.windowId !== 0); - target.forEach((it: Gpu) => { - let windowName = SpSystemTrace.DATA_DICT.get(it.windowId) || 'NULL'; - let moduleName = SpSystemTrace.DATA_DICT.get(it.moduleId) || 'NULL'; - let categoryName = SpSystemTrace.DATA_DICT.get(it.categoryId) || 'NULL'; - it.gpuName = `${windowName} / ${moduleName} / ${categoryName}`; - it.startTsStr = getProbablyTime(it.startTs); - it.avgSizeStr = Utils.getBinaryByteWithUnit(it.avgSize); - it.minSizeStr = Utils.getBinaryByteWithUnit(it.minSize); - it.maxSizeStr = Utils.getBinaryByteWithUnit(it.maxSize); - }); - this.gpuBoxSource = target; - this.gpuBoxTbl!.recycleDataSource = this.gpuBoxSource; - } else { - this.gpuBoxSource = []; - this.gpuBoxTbl!.recycleDataSource = []; + queryGpuDataByRange(gpuBoxParam.leftNs, gpuBoxParam.rightNs, MemoryConfig.getInstance().snapshotDur).then( + (result) => { + this.gpuBoxTbl!.loading = false; + if (result != null && result.length > 0) { + log('getTabStartups result size : ' + result.length); + let target = result.filter((it) => it.windowId !== 0); + target.forEach((it: Gpu) => { + let windowName = SpSystemTrace.DATA_DICT.get(it.windowId) || 'NULL'; + let moduleName = SpSystemTrace.DATA_DICT.get(it.moduleId) || 'NULL'; + let categoryName = SpSystemTrace.DATA_DICT.get(it.categoryId) || 'NULL'; + it.gpuName = `${windowName} / ${moduleName} / ${categoryName}`; + it.startTsStr = getProbablyTime(it.startTs); + it.avgSizeStr = Utils.getBinaryByteWithUnit(it.avgSize); + it.minSizeStr = Utils.getBinaryByteWithUnit(it.minSize); + it.maxSizeStr = Utils.getBinaryByteWithUnit(it.maxSize); + }); + this.gpuBoxSource = target; + this.gpuBoxTbl!.recycleDataSource = this.gpuBoxSource; + } else { + this.gpuBoxSource = []; + this.gpuBoxTbl!.recycleDataSource = []; + } } - }); + ); } initElements(): void { diff --git a/ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts b/ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts deleted file mode 100644 index 7fe61e25..00000000 --- a/ide/src/trace/component/trace/sheet/gpu/TabPaneGraph.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; -import { LitTable } from '../../../../../base-ui/table/lit-table.js'; -import { SelectionParam } from '../../../../bean/BoxSelection.js'; -import { queryGpuDataTab } from '../../../../database/SqlLite.js'; -import { log } from '../../../../../log/Log.js'; -import { getProbablyTime } from '../../../../database/logic-worker/ProcedureLogicWorkerCommon.js'; -import { resizeObserver } from '../SheetUtils.js'; -import { Utils } from '../../base/Utils.js'; -import { MemoryConfig } from '../../../../bean/MemoryConfig.js'; - -interface Graph { - startTs: number; - startTsStr?: string; - size: number; - sizeStr?: string; -} - -@element('tabpane-gpu-graph') -export class TabPaneGpuGraph extends BaseElement { - private graphTbl: LitTable | null | undefined; - private range: HTMLLabelElement | null | undefined; - private graphSource: Array = []; - private currentSelectionParam: SelectionParam | undefined; - - set data(graphParam: SelectionParam | any) { - if (this.currentSelectionParam === graphParam) { - return; - } - this.currentSelectionParam = graphParam; - //@ts-ignore - this.graphTbl?.shadowRoot?.querySelector('.table')?.style?.height = this.parentElement!.clientHeight - 45 + 'px'; - this.range!.textContent = - 'Selected range: ' + ((graphParam.rightNs - graphParam.leftNs) / 1000000.0).toFixed(5) + ' ms'; - this.graphTbl!.loading = true; - queryGpuDataTab( - MemoryConfig.getInstance().iPid, - graphParam.leftNs, - graphParam.rightNs, - MemoryConfig.getInstance().snapshotDur, - "'mem.graph_pss'" - ).then((result) => { - this.graphTbl!.loading = false; - log('queryGpuDataTab result size : ' + result.length); - if (result.length > 0) { - result.forEach((it: Graph) => { - it.startTsStr = getProbablyTime(it.startTs); - it.sizeStr = Utils.getBinaryByteWithUnit(it.size); - }); - this.graphSource = result; - this.graphTbl!.recycleDataSource = this.graphSource; - } else { - this.graphSource = []; - this.graphTbl!.recycleDataSource = []; - } - }); - } - - initElements(): void { - this.graphTbl = this.shadowRoot?.querySelector('#tb-graph'); - this.range = this.shadowRoot?.querySelector('#graph-time-range'); - } - - connectedCallback(): void { - super.connectedCallback(); - resizeObserver(this.parentElement!, this.graphTbl!); - } - - initHtml(): string { - return ` - -
-
- -
-
- - - - - - -
- `; - } -} diff --git a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogSummary.ts b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogSummary.ts index 6bdcac25..5688163c 100644 --- a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogSummary.ts +++ b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogSummary.ts @@ -31,7 +31,7 @@ export class TabPaneHiLogSummary extends BaseElement { private expansionUpIcon: LitIcon | undefined | null; private expansionDownIcon: LitIcon | undefined | null; private expandedNodeList: Set = new Set(); - private logLevel: string[] = ['Debug', 'Info', 'Warn', 'Error','Fatal']; + private logLevel: string[] = ['Debug', 'Info', 'Warn', 'Error', 'Fatal']; private selectTreeDepth: number = 0; private currentSelection: SelectionParam | undefined; @@ -61,9 +61,9 @@ export class TabPaneHiLogSummary extends BaseElement { this.expansionDiv = this.shadowRoot?.querySelector('.expansion-div'); this.expansionUpIcon = this.shadowRoot?.querySelector('.expansion-up-icon'); this.expansionDownIcon = this.shadowRoot?.querySelector('.expansion-down-icon'); - let summaryTreeLevel: string[] = ['Level', '/Process', '/Tag', '/Message'] - this.shadowRoot?.querySelectorAll('.head-label').forEach(summaryTreeHead => { - summaryTreeHead.addEventListener('click', ()=>{ + let summaryTreeLevel: string[] = ['Level', '/Process', '/Tag', '/Message']; + this.shadowRoot?.querySelectorAll('.head-label').forEach((summaryTreeHead) => { + summaryTreeHead.addEventListener('click', () => { this.selectTreeDepth = summaryTreeLevel.indexOf(summaryTreeHead.textContent!); this.expandedNodeList.clear(); this.refreshSelectDepth(this.logTreeNodes); @@ -158,17 +158,17 @@ export class TabPaneHiLogSummary extends BaseElement { } this.refreshSelectDepth(this.logTreeNodes); this.refreshRowNodeTable(true); - } + }; - private refreshSelectDepth(logTreeNodes: LogTreeNode[]){ - logTreeNodes.forEach(item => { + private refreshSelectDepth(logTreeNodes: LogTreeNode[]) { + logTreeNodes.forEach((item) => { if (item.depth < this.selectTreeDepth) { this.expandedNodeList.add(item.id); if (item.children.length > 0) { this.refreshSelectDepth(item.children); } } - }) + }); } initTabSheetEl(parentTabEl: HTMLElement) { diff --git a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts index 2e10db43..6b2065bc 100644 --- a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts +++ b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts @@ -69,8 +69,9 @@ export class TabPaneHiLogs extends BaseElement { this.tagFilterInput = this.shadowRoot?.querySelector('#tag-filter'); this.searchFilterInput = this.shadowRoot?.querySelector('#search-filter'); this.processFilter = this.shadowRoot?.querySelector('#process-filter'); - this.spSystemTrace = document.querySelector('body > sp-application')?. - shadowRoot?.querySelector('#sp-system-trace'); + this.spSystemTrace = document + .querySelector('body > sp-application') + ?.shadowRoot?.querySelector('#sp-system-trace'); this.tableTimeHandle = this.delayedRefresh(this.refreshTable); this.tagFilterDiv = this.shadowRoot!.querySelector('#tagFilter'); this.hiLogDownLoadTbl = this.shadowRoot!.querySelector('#tb-hilogs'); @@ -125,6 +126,7 @@ export class TabPaneHiLogs extends BaseElement {
+
@@ -268,7 +270,7 @@ export class TabPaneHiLogs extends BaseElement { this.containerClientHeight = this.parentTabEl.clientHeight; } if (this.systemLogSource.length > 0 && this.logTable) { - let tableHeight = this.containerClientHeight - (this.logTitle?.clientHeight || 0) - tableRowHeight; + let tableHeight = this.containerClientHeight - (this.logTitle?.clientHeight || 0) - tableRowHeight - 12; this.scrollContainer!.style.height = `${tableHeight}px`; if (this.filterData.length === 0) { this.logTable.style.height = this.scrollContainer!.style.height; @@ -290,7 +292,6 @@ export class TabPaneHiLogs extends BaseElement { this.logTableTitle!.textContent = `Hilogs [${this.startDataIndex || 0}, ${maxLength}] / ${this.filterData.length || 0}`; let tableFragment = document.createDocumentFragment(); - this.buildTableHead(tableFragment); this.createVirtualDOM(tableFragment); this.logTable.append(tableFragment); } @@ -303,17 +304,22 @@ export class TabPaneHiLogs extends BaseElement { search = search.replace(/\s/g, ''); let processSearch = this.processFilter?.value.toLowerCase() || ''; processSearch = processSearch.replace(/\s/g, ''); - return (data.startTs || 0) >= TraceRow.range!.startNS && (data.startTs || 0) <= TraceRow.range!.endNS && + return ( + (data.startTs || 0) >= TraceRow.range!.startNS && + (data.startTs || 0) <= TraceRow.range!.endNS && (level === 0 || this.optionLevel.indexOf(data.level!) >= level) && (this.allowTag.size === 0 || this.allowTag.has(data.tag!.toLowerCase())) && (search === '' || data.context!.toLowerCase().replace(/\s/g, '').indexOf(search) >= 0) && - (processSearch === '' || (data.processName !== null && - data.processName!.toLowerCase().replace(/\s/g, '').indexOf(processSearch) >= 0)); + (processSearch === '' || + (data.processName !== null && data.processName!.toLowerCase().replace(/\s/g, '').indexOf(processSearch) >= 0)) + ); } private refreshTable(): void { this.traceSheetEl!.systemLogFlag = undefined; this.spSystemTrace?.refreshCanvas(false); + let headEl = this.shadowRoot?.querySelector('#logs-head-content') + this.buildTableHead(headEl!); this.updateFilterData(); this.updateVisibleData(); } @@ -330,7 +336,7 @@ export class TabPaneHiLogs extends BaseElement { private createVirtualDOM(tableFragment: DocumentFragment): void { if (this.visibleData) { - this.visibleData.forEach((row) => { + this.visibleData.forEach((row, index) => { let trEL = document.createElement('tr'); let time = document.createElement('td'); let timeStampEl = document.createElement('td'); @@ -342,13 +348,24 @@ export class TabPaneHiLogs extends BaseElement { if (colorIndex >= 0) { trEL.style.color = ColorUtils.getHilogColor(row.level!); } + if (index === 0) { + let height = + (this.scrollContainer!.scrollTop <= tableRowHeight ? 0 : this.scrollContainer!.scrollTop) + tableRowHeight; + trEL.style.height = `${height}px`; + } time.textContent = `${row.originTime}`; + time.title = `${row.originTime}`; timeStampEl.classList.add('time-td'); timeStampEl.textContent = `${ns2Timestamp(row.startTs!)}`; + timeStampEl.title = `${ns2Timestamp(row.startTs!)}`; levelEl.textContent = `${row.level}`; + levelEl.title = `${row.level}`; tagEl.textContent = `${row.tag}`; + tagEl.title = `${row.tag}`; processNameEl.textContent = `${row.processName}`; + processNameEl.title = `${row.processName}`; messageEl.textContent = `${row.context}`; + messageEl.title = `${row.context}`; trEL.addEventListener('mouseover', () => { let pointX: number = ns2x( row.startTs || 0, @@ -375,17 +392,21 @@ export class TabPaneHiLogs extends BaseElement { } } - private buildTableHead(tableFragment: DocumentFragment): void { + private buildTableHead(tableFragment: HTMLDivElement): void { + tableFragment.innerHTML = ''; let trEL = document.createElement('tr'); + trEL.style.display = 'grid'; + trEL.style.width = '100%'; + trEL.style.marginTop = '8px'; this.tableColumnHead.forEach((columnText) => { let columnEl = document.createElement('div'); columnEl.textContent = columnText; - columnEl.className = 'head-column'; + columnEl.style.whiteSpace = 'nowrap'; + columnEl.style.overflow = 'hidden'; + columnEl.style.textOverflow = 'ellipsis'; + columnEl.style.fontWeight = 'bold'; trEL.appendChild(columnEl); }); - let height = - (this.scrollContainer!.scrollTop <= tableRowHeight ? 0 : this.scrollContainer!.scrollTop) + tableRowHeight; - trEL.style.height = `${height}px`; tableFragment.appendChild(trEL); } @@ -473,7 +494,6 @@ export class TabPaneHiLogs extends BaseElement { display: block; height: auto; overflow-y: scroll; - margin-top: 14px; } tr { display: grid; diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts index 3f888b81..fc3e9450 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts @@ -140,9 +140,9 @@ export class TabPanePerfAnalysis extends BaseElement { }, tip: (perfObj): string => { return `
-
Process:${ perfObj.obj.tableName }
-
Weight:${ perfObj.obj.countFormat }
-
Percent:${ perfObj.obj.percent }%
+
Process:${perfObj.obj.tableName}
+
Weight:${perfObj.obj.countFormat}
+
Percent:${perfObj.obj.percent}%
`; }, @@ -234,9 +234,9 @@ export class TabPanePerfAnalysis extends BaseElement { }, tip: (obj): string => { return `
-
Thread:${ obj.obj.tableName }
-
Weight:${ obj.obj.countFormat }
-
Percent:${ obj.obj.percent }%
+
Thread:${obj.obj.tableName}
+
Weight:${obj.obj.countFormat}
+
Percent:${obj.obj.percent}%
`; }, @@ -320,9 +320,9 @@ export class TabPanePerfAnalysis extends BaseElement { }, tip: (obj): string => { return `
-
Library:${ obj.obj.tableName }
-
Weight:${ obj.obj.countFormat }
-
Percent:${ obj.obj.percent }%
+
Library:${obj.obj.tableName}
+
Weight:${obj.obj.countFormat}
+
Percent:${obj.obj.percent}%
`; }, @@ -727,7 +727,7 @@ export class TabPanePerfAnalysis extends BaseElement { } private getTip() { - return (obj: { obj: { tableName: any; countFormat: any; percent: any; }; }): string => { + return (obj: { obj: { tableName: any; countFormat: any; percent: any } }): string => { return `
Function:${obj.obj.tableName}
Weight:${obj.obj.countFormat}
@@ -736,7 +736,13 @@ export class TabPanePerfAnalysis extends BaseElement { }; } - totalCountData(count: number): { countFormat: string; percent: string; count: number; allCount: number; pid: string; } { + totalCountData(count: number): { + countFormat: string; + percent: string; + count: number; + allCount: number; + pid: string; + } { let allCount; allCount = { countFormat: Utils.timeMsFormat2p(count * (SpHiPerf.stringResult?.fValue || 1)), @@ -757,7 +763,7 @@ export class TabPanePerfAnalysis extends BaseElement { percent: 0, countFormat: 0, }; - for (let i = 0 ; i < res.length ; i++) { + for (let i = 0; i < res.length; i++) { if (i < 19) { pieChartArr.push(res[i]); } else { diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts index 13287ce0..937348c2 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts @@ -137,7 +137,7 @@ export class TabpanePerfBottomUp extends BaseElement { const bottomUpData = evt.detail.data as PerfBottomUpStruct; document.dispatchEvent( new CustomEvent('number_calibration', { - detail: { time: bottomUpData.tsArray}, + detail: { time: bottomUpData.tsArray }, }) ); callStack!.push(bottomUpData); diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPerfSampleList.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPerfSampleList.ts index fd79ee38..9e68b82c 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPerfSampleList.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPerfSampleList.ts @@ -176,7 +176,8 @@ export class TabPanePerfSample extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.perfSampleTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 40 + 'px'; + this.perfSampleTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 40 + 'px'; // @ts-ignore this.tblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 25 + 'px'; this.perfSampleTbl?.reMeauseHeight(); diff --git a/ide/src/trace/component/trace/sheet/jank/TabPaneFrames.ts b/ide/src/trace/component/trace/sheet/jank/TabPaneFrames.ts index 4e005439..589618ca 100644 --- a/ide/src/trace/component/trace/sheet/jank/TabPaneFrames.ts +++ b/ide/src/trace/component/trace/sheet/jank/TabPaneFrames.ts @@ -73,7 +73,11 @@ export class TabPaneFrames extends BaseElement { this.framesTbl!.recycleDataSource = tablelist; } - private frameTimelineJankDataHandle(structValue: JanksStruct, appJank: JankFramesStruct, noJank: JankFramesStruct): void { + private frameTimelineJankDataHandle( + structValue: JanksStruct, + appJank: JankFramesStruct, + noJank: JankFramesStruct + ): void { if (structValue.dur === null || structValue.dur === undefined) { structValue.dur = 0; } @@ -224,8 +228,11 @@ export class TabPaneFrames extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(framesRightData[property]) - parseFloat(framesLeftData[property]) : parseFloat(framesLeftData[property]) - parseFloat(framesRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(framesRightData[property]) - parseFloat(framesLeftData[property]) + : // @ts-ignore + parseFloat(framesLeftData[property]) - parseFloat(framesRightData[property]); } else { // @ts-ignore if (framesRightData[property] > framesLeftData[property]) { diff --git a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts index eaf1aec1..3a4004e4 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts @@ -307,10 +307,12 @@ export class TabPaneNMSampleList extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - TabPaneNMSampleList.sampleTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + TabPaneNMSampleList.sampleTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; TabPaneNMSampleList.sampleTbl?.reMeauseHeight(); // @ts-ignore - TabPaneNMSampleList.tblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 + 'px'; + TabPaneNMSampleList.tblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 + 'px'; TabPaneNMSampleList.tblData?.reMeauseHeight(); } }).observe(this.parentElement!); diff --git a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatisticAnalysis.ts b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatisticAnalysis.ts index 1ca43e21..85376c78 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatisticAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatisticAnalysis.ts @@ -12,15 +12,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import {BaseElement, element} from '../../../../../base-ui/BaseElement.js'; -import {LitTable} from '../../../../../base-ui/table/lit-table.js'; -import {SelectionParam} from '../../../../bean/BoxSelection.js'; -import {LitChartPie} from '../../../../../base-ui/chart/pie/LitChartPie.js'; +import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; +import { LitTable } from '../../../../../base-ui/table/lit-table.js'; +import { SelectionParam } from '../../../../bean/BoxSelection.js'; +import { LitChartPie } from '../../../../../base-ui/chart/pie/LitChartPie.js'; import '../../../../../base-ui/chart/pie/LitChartPie.js'; -import {LitProgressBar} from '../../../../../base-ui/progress-bar/LitProgressBar.js'; -import {Utils} from '../../base/Utils.js'; -import {SpSystemTrace} from '../../../SpSystemTrace.js'; -import {procedurePool} from '../../../../database/Procedure.js'; +import { LitProgressBar } from '../../../../../base-ui/progress-bar/LitProgressBar.js'; +import { Utils } from '../../base/Utils.js'; +import { SpSystemTrace } from '../../../SpSystemTrace.js'; +import { procedurePool } from '../../../../database/Procedure.js'; const TYPE_ALLOC_STRING = 'AllocEvent'; const TYPE_MAP_STRING = 'MmapEvent'; @@ -128,7 +128,8 @@ export class TabPaneNMStatisticAnalysis extends BaseElement { // @ts-ignore this.soUsageTbl?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 30 + 'px'; // @ts-ignore - this.functionUsageTbl?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 30 + 'px'; + this.functionUsageTbl?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 30 + 'px'; this.clearData(); this.currentSelection = statisticAnalysisParam; this.tableType!.style.display = 'grid'; @@ -520,73 +521,87 @@ export class TabPaneNMStatisticAnalysis extends BaseElement { let sortColumnArr = [...this.currentLevelData]; switch (column) { case 'tableName': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - if (sort === 1) { - if (statisticAnalysisLeftData.tableName > statisticAnalysisRightData.tableName) { - return 1; - } else if (statisticAnalysisLeftData.tableName === statisticAnalysisRightData.tableName) { - return 0; + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + if (sort === 1) { + if (statisticAnalysisLeftData.tableName > statisticAnalysisRightData.tableName) { + return 1; + } else if (statisticAnalysisLeftData.tableName === statisticAnalysisRightData.tableName) { + return 0; + } else { + return -1; + } } else { - return -1; - } - } else { - if (statisticAnalysisRightData.tableName > statisticAnalysisLeftData.tableName) { - return 1; - } else if (statisticAnalysisLeftData.tableName === statisticAnalysisRightData.tableName) { - return 0; - } else { - return -1; + if (statisticAnalysisRightData.tableName > statisticAnalysisLeftData.tableName) { + return 1; + } else if (statisticAnalysisLeftData.tableName === statisticAnalysisRightData.tableName) { + return 0; + } else { + return -1; + } } } - }); + ); break; case 'existSizeFormat': case 'existSizePercent': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - return sort === 1 - ? statisticAnalysisLeftData.existSize - statisticAnalysisRightData.existSize - : statisticAnalysisRightData.existSize - statisticAnalysisLeftData.existSize; - }); + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + return sort === 1 + ? statisticAnalysisLeftData.existSize - statisticAnalysisRightData.existSize + : statisticAnalysisRightData.existSize - statisticAnalysisLeftData.existSize; + } + ); break; case 'existCount': case 'existCountPercent': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - return sort === 1 - ? statisticAnalysisLeftData.existCount - statisticAnalysisRightData.existCount - : statisticAnalysisRightData.existCount - statisticAnalysisLeftData.existCount; - }); + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + return sort === 1 + ? statisticAnalysisLeftData.existCount - statisticAnalysisRightData.existCount + : statisticAnalysisRightData.existCount - statisticAnalysisLeftData.existCount; + } + ); break; case 'releaseSizeFormat': case 'releaseSizePercent': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - return sort === 1 - ? statisticAnalysisLeftData.releaseSize - statisticAnalysisRightData.releaseSize - : statisticAnalysisRightData.releaseSize - statisticAnalysisLeftData.releaseSize; - }); + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + return sort === 1 + ? statisticAnalysisLeftData.releaseSize - statisticAnalysisRightData.releaseSize + : statisticAnalysisRightData.releaseSize - statisticAnalysisLeftData.releaseSize; + } + ); break; case 'releaseCount': case 'releaseCountPercent': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - return sort === 1 - ? statisticAnalysisLeftData.releaseCount - statisticAnalysisRightData.releaseCount - : statisticAnalysisRightData.releaseCount - statisticAnalysisLeftData.releaseCount; - }); + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + return sort === 1 + ? statisticAnalysisLeftData.releaseCount - statisticAnalysisRightData.releaseCount + : statisticAnalysisRightData.releaseCount - statisticAnalysisLeftData.releaseCount; + } + ); break; case 'applySizeFormat': case 'applySizePercent': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - return sort === 1 - ? statisticAnalysisLeftData.applySize - statisticAnalysisRightData.applySize - : statisticAnalysisRightData.applySize - statisticAnalysisLeftData.applySize; - }); + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + return sort === 1 + ? statisticAnalysisLeftData.applySize - statisticAnalysisRightData.applySize + : statisticAnalysisRightData.applySize - statisticAnalysisLeftData.applySize; + } + ); break; case 'applyCount': case 'applyCountPercent': - nmCurrentTable!.recycleDataSource = sortColumnArr.sort((statisticAnalysisLeftData, statisticAnalysisRightData) => { - return sort === 1 - ? statisticAnalysisLeftData.applyCount - statisticAnalysisRightData.applyCount - : statisticAnalysisRightData.applyCount - statisticAnalysisLeftData.applyCount; - }); + nmCurrentTable!.recycleDataSource = sortColumnArr.sort( + (statisticAnalysisLeftData, statisticAnalysisRightData) => { + return sort === 1 + ? statisticAnalysisLeftData.applyCount - statisticAnalysisRightData.applyCount + : statisticAnalysisRightData.applyCount - statisticAnalysisLeftData.applyCount; + } + ); break; } switch (this.currentLevel) { @@ -623,12 +638,12 @@ export class TabPaneNMStatisticAnalysis extends BaseElement { for (let type of val.nativeMemory) { if (type === 'All Heap & Anonymous VM') { typeFilter = []; - typeFilter.push(...['\'AllocEvent\'', '\'FreeEvent\'', '\'MmapEvent\'', '\'MunmapEvent\'']); + typeFilter.push(...["'AllocEvent'", "'FreeEvent'", "'MmapEvent'", "'MunmapEvent'"]); break; } else if (type === 'All Heap') { - typeFilter.push(...['\'AllocEvent\'', '\'FreeEvent\'']); + typeFilter.push(...["'AllocEvent'", "'FreeEvent'"]); } else { - typeFilter.push(...['\'MmapEvent\'', '\'MunmapEvent\'']); + typeFilter.push(...["'MmapEvent'", "'MunmapEvent'"]); } } this.getDataFromWorker(val, typeFilter); @@ -979,8 +994,11 @@ export class TabPaneNMStatisticAnalysis extends BaseElement { } for (let applySample of typeMap.get(tyeId)!) { - if (tyeId === TYPE_ALLOC || (applySample.subType && applySample.subType === typeName) || - (!applySample.subType && typeName === TYPE_MAP_STRING)) { + if ( + tyeId === TYPE_ALLOC || + (applySample.subType && applySample.subType === typeName) || + (!applySample.subType && typeName === TYPE_MAP_STRING) + ) { applySize += applySample.size; applyCount += applySample.count; if (this.isStatistic) { diff --git a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatstics.ts b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatstics.ts index 47c31e03..ea827966 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatstics.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatstics.ts @@ -51,7 +51,8 @@ export class TabPaneNMStatstics extends BaseElement { }); this.initResponseTypeList(nativeStatisticsParam); // @ts-ignore - this.nativeStatisticsTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 25 + 'px'; + this.nativeStatisticsTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 25 + 'px'; // @ts-ignore this.nativeStatisticsTbl?.recycleDataSource = []; this.nativeStatisticsTbl!.loading = true; diff --git a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMemory.ts b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMemory.ts index bad4decd..ec1af742 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMemory.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMemory.ts @@ -254,7 +254,7 @@ export class TabPaneNMemory extends BaseElement { this.setRightTableData(data); document.dispatchEvent( new CustomEvent('triangle-flag', { - detail: { time: [data.startTs], type: 'triangle'}, + detail: { time: [data.startTs], type: 'triangle' }, }) ); }); @@ -337,10 +337,12 @@ export class TabPaneNMemory extends BaseElement { new ResizeObserver((entries) => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.memoryTbl?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + this.memoryTbl?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; this.memoryTbl?.reMeauseHeight(); // @ts-ignore - this.tblData?.shadowRoot.querySelector('.table').style.height = this.parentElement.clientHeight - 10 - 31 + 'px'; + this.tblData?.shadowRoot.querySelector('.table').style.height = + this.parentElement!.clientHeight - 10 - 31 + 'px'; this.tblData?.reMeauseHeight(); this.loadingPage.style.height = this.parentElement!.clientHeight - 24 + 'px'; } diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneCounter.ts b/ide/src/trace/component/trace/sheet/process/TabPaneCounter.ts index 5ebc243f..d1e5efd7 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneCounter.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneCounter.ts @@ -173,8 +173,11 @@ export class TabPaneCounter extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(counterRightData[property]) - parseFloat(counterLeftData[property]) : parseFloat(counterLeftData[property]) - parseFloat(counterRightData[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(counterRightData[property]) - parseFloat(counterLeftData[property]) + : // @ts-ignore + parseFloat(counterLeftData[property]) - parseFloat(counterRightData[property]); } else { // @ts-ignore if (counterRightData[property] > counterLeftData[property]) { diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts b/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts index 681bbc98..b0592a5e 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts @@ -121,20 +121,21 @@ export class TabPaneSlices extends BaseElement { return; } // search 到的内容与框选泳道的内容取并集 - let rangeSelectList :Array = []; // 框选范围的数据 + let rangeSelectList: Array = []; // 框选范围的数据 for (const searchItem of search.list) { for (const traceRow of sliceRowList) { if ( Math.max(TraceRow.rangeSelectObject?.startNS!, searchItem.startTime) < - Math.min(TraceRow.rangeSelectObject?.endNS!, searchItem.startTime + searchItem.dur) && + Math.min(TraceRow.rangeSelectObject?.endNS!, searchItem.startTime + searchItem.dur) && !rangeSelectList.includes(searchItem) ) { // 异步调用栈 if (traceRow.asyncFuncName) { - if(`${searchItem.pid}` === `${traceRow.asyncFuncNamePID}`){ + if (`${searchItem.pid}` === `${traceRow.asyncFuncNamePID}`) { rangeSelectList.push(searchItem); } - } else { // 线程调用栈 + } else { + // 线程调用栈 if (`${searchItem.tid}` === traceRow.rowId) { rangeSelectList.push(searchItem); } diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneStartup.ts b/ide/src/trace/component/trace/sheet/process/TabPaneStartup.ts index 749701a1..edaeaba9 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneStartup.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneStartup.ts @@ -71,7 +71,7 @@ export class TabPaneStartup extends BaseElement { } } else { map.set(item.pid!, { - name: item.process || `Process ${ item.pid }`, + name: item.process || `Process ${item.pid}`, dur: item.dur || 0, durStr: '', ratio: `100%`, @@ -90,7 +90,7 @@ export class TabPaneStartup extends BaseElement { if (it.dur === 0) { child.ratio = '0%'; } else { - child.ratio = ((child.dur * 100) / (it.dur)).toFixed(2) + '%'; + child.ratio = ((child.dur * 100) / it.dur).toFixed(2) + '%'; } }); }); diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneStaticInit.ts b/ide/src/trace/component/trace/sheet/process/TabPaneStaticInit.ts index cb3575b5..05cf471b 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneStaticInit.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneStaticInit.ts @@ -70,7 +70,7 @@ export class TabPaneStaticInit extends BaseElement { } } else { map.set(item.pid!, { - name: item.process || `Process ${ item.pid }`, + name: item.process || `Process ${item.pid}`, dur: item.dur || 0, durStr: '', ratio: `100%`, @@ -137,7 +137,8 @@ export class TabPaneStaticInit extends BaseElement { } sortByColumn(soDetail: any): void { - let compare = (soA: SoTreeItem, soB: SoTreeItem): number => (soDetail.sort === 1 ? soA.dur - soB.dur : soB.dur - soA.dur); + let compare = (soA: SoTreeItem, soB: SoTreeItem): number => + soDetail.sort === 1 ? soA.dur - soB.dur : soB.dur - soA.dur; this.staticinitSource.forEach((it) => it.children?.sort(compare)); this.staticinitSource.sort(compare); this.staticinitTbl!.recycleDataSource = this.staticinitSource; diff --git a/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkCounter.ts b/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkCounter.ts index e80479ce..109d7d77 100644 --- a/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkCounter.ts +++ b/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkCounter.ts @@ -219,8 +219,11 @@ export class TabPaneSdkCounter extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return countreSort === 2 ? parseFloat(bSdkCounter[property]) - parseFloat(aSdkCounter[property]) : parseFloat(aSdkCounter[property]) - parseFloat(bSdkCounter[property]); + return countreSort === 2 + ? // @ts-ignore + parseFloat(bSdkCounter[property]) - parseFloat(aSdkCounter[property]) + : // @ts-ignore + parseFloat(aSdkCounter[property]) - parseFloat(bSdkCounter[property]); } // @ts-ignore if (bSdkCounter[property] > aSdkCounter[property]) { diff --git a/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts b/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts index 4a3b86a4..ed5a0727 100644 --- a/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts +++ b/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts @@ -269,8 +269,11 @@ export class TabPaneSdkSlice extends BaseElement { return 0; } if (type === 'number') { - // @ts-ignore - return sliceSort === 2 ? parseFloat(bSdkSlice[property]) - parseFloat(aSdkSlice[property]) : parseFloat(aSdkSlice[property]) - parseFloat(bSdkSlice[property]); + return sliceSort === 2 + ? // @ts-ignore + parseFloat(bSdkSlice[property]) - parseFloat(aSdkSlice[property]) + : // @ts-ignore + parseFloat(aSdkSlice[property]) - parseFloat(bSdkSlice[property]); } // @ts-ignore if (bSdkSlice[property] > aSdkSlice[property]) { diff --git a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts index ebab8788..dda892c7 100644 --- a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts +++ b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts @@ -18,15 +18,13 @@ import { SelectionParam } from '../../../../bean/BoxSelection.js'; import { getTabSmapsData, getTabSmapsRecordData } from '../../../../database/SqlLite.js'; import { Utils } from '../../base/Utils.js'; import { log } from '../../../../../log/Log.js'; -import { Smaps, SmapsType, TYPE_STRING } from '../../../../bean/SmapsStruct.js'; -import { resizeObserver } from '../SheetUtils.js'; +import { Smaps, TYPE_STRING } from '../../../../bean/SmapsStruct.js'; import { MemoryConfig } from '../../../../bean/MemoryConfig.js'; import { SpSystemTrace } from '../../../SpSystemTrace.js'; @element('tabpane-smaps-record') export class TabPaneSmapsRecord extends BaseElement { private tblSmapsRecord: LitTable | null | undefined; private sourceSmapsRecord: Array = []; - private querySmapsRecordResult: Array = []; private isClick = false; private tabTitle: HTMLDivElement | undefined | null; set data(valSmapsRecord: SelectionParam) { @@ -55,7 +53,8 @@ export class TabPaneSmapsRecord extends BaseElement { new ResizeObserver(() => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.tblSmapsRecord?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 15+ 'px'; + this.tblSmapsRecord?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 15 + 'px'; this.tblSmapsRecord?.reMeauseHeight(); } }).observe(this.parentElement!); @@ -112,11 +111,9 @@ export class TabPaneSmapsRecord extends BaseElement { } } this.sourceSmapsRecord = result; - this.querySmapsRecordResult = result; this.tblSmapsRecord!.recycleDataSource = this.sourceSmapsRecord; } else { this.sourceSmapsRecord = []; - this.querySmapsRecordResult = []; this.tblSmapsRecord!.recycleDataSource = []; } } @@ -169,8 +166,11 @@ export class TabPaneSmapsRecord extends BaseElement { function compare(property, sort, type) { return function (aSmapsRecord: Smaps, bSmapsRecord: Smaps) { if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(bSmapsRecord[property]) - parseFloat(aSmapsRecord[property]) : parseFloat(aSmapsRecord[property]) - parseFloat(bSmapsRecord[property]); + return sort === 2 + ? // @ts-ignore + parseFloat(bSmapsRecord[property]) - parseFloat(aSmapsRecord[property]) + : // @ts-ignore + parseFloat(aSmapsRecord[property]) - parseFloat(bSmapsRecord[property]); } else { // @ts-ignore if (bSmapsRecord[property] > aSmapsRecord[property]) { @@ -186,11 +186,7 @@ export class TabPaneSmapsRecord extends BaseElement { } }; } - if ( - detail.key === 'rssStr' || - detail.key === 'sizeStr' || - detail.key === 'resideStr' - ) { + if (detail.key === 'rssStr' || detail.key === 'sizeStr' || detail.key === 'resideStr') { let key = detail.key.substring(0, detail.key.indexOf('Str')); this.sourceSmapsRecord.sort(compare(key, detail.sort, 'number')); } else { diff --git a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts deleted file mode 100644 index 0adc3f8a..00000000 --- a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsSample.ts +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; -import { LitTable } from '../../../../../base-ui/table/lit-table.js'; -import { SelectionParam } from '../../../../bean/BoxSelection.js'; -import { getTabSmapsData, getTabSmapsSampleData } from '../../../../database/SqlLite.js'; -import { Utils } from '../../base/Utils.js'; -import { log } from '../../../../../log/Log.js'; -import { Smaps, SmapsType, TYPE_STRING } from '../../../../bean/SmapsStruct.js'; -import { MemoryConfig } from '../../../../bean/MemoryConfig.js'; -import { SpSystemTrace } from '../../../SpSystemTrace.js'; -@element('tabpane-smaps-sample') -export class TabPaneSmapsSample extends BaseElement { - private tblSmapsSample: LitTable | null | undefined; - private sourceSmapsSample: Array = []; - private querySmapsSampleResult: Array = []; - private isClick = false; - private tabTitle: HTMLDivElement | undefined | null; - set data(valSmapsSample: SelectionParam) { - this.parentElement!.style.overflow = 'unset'; - this.isClick = valSmapsSample.smapsType.length === 0; - this.init(); - this.tblSmapsSample!.loading = true; - if (!this.isClick) { - if (valSmapsSample.smapsType.length > 0) { - this.queryDataByDB(valSmapsSample); - } - } else { - this.setSmaps(valSmapsSample); - } - } - initElements(): void { - this.tblSmapsSample = this.shadowRoot?.querySelector('#tb-smaps-record'); - this.tabTitle = this.tblSmapsSample!.shadowRoot?.querySelector('.thead') as HTMLDivElement; - this.tblSmapsSample!.addEventListener('column-click', (evt) => { - // @ts-ignore - this.sortByColumn(evt.detail); - }); - } - connectedCallback() { - super.connectedCallback(); - new ResizeObserver(() => { - if (this.parentElement?.clientHeight != 0) { - // @ts-ignore - this.tblSmapsSample?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 15+ 'px'; - this.tblSmapsSample?.reMeauseHeight(); - } - }).observe(this.parentElement!); - } - queryDataByDB(srVal: SelectionParam | any): void { - getTabSmapsData(srVal.leftNs, srVal.rightNs, (MemoryConfig.getInstance().interval * 1000_000) / 5).then( - (result) => { - log('getTabSmapsData size :' + result.length); - this.tblSmapsSample!.loading = false; - this.filteredData(result); - } - ); - } - setSmaps(data: SelectionParam): void { - getTabSmapsSampleData(data.rightNs).then((result) => { - this.tblSmapsSample!.loading = false; - this.filteredData(result); - }); - } - private init(): void { - const thTable = this.tabTitle!.querySelector('.th'); - const smapsSampleTblNodes = thTable!.querySelectorAll('div'); - if (this.tabTitle!.hasAttribute('sort')) { - this.tabTitle!.removeAttribute('sort'); - smapsSampleTblNodes.forEach((item) => { - item.querySelectorAll('svg').forEach((svg) => { - svg.style.display = 'none'; - }); - }); - } - } - filteredData(result: any): void { - if (result.length !== null && result.length > 0) { - for (const smaps of result) { - smaps.typeName = TYPE_STRING[smaps.type]; - smaps.address = smaps.startAddr + ' - ' + smaps.endAddr; - smaps.swapStr = Utils.getBinaryByteWithUnit(smaps.swap); - smaps.rssStr = Utils.getBinaryByteWithUnit(smaps.rss); - smaps.pssStr = Utils.getBinaryByteWithUnit(smaps.pss); - smaps.sizeStr = Utils.getBinaryByteWithUnit(smaps.size); - smaps.sharedCleanStr = Utils.getBinaryByteWithUnit(smaps.sharedClean); - smaps.sharedDirtyStr = Utils.getBinaryByteWithUnit(smaps.sharedDirty); - smaps.privateCleanStr = Utils.getBinaryByteWithUnit(smaps.privateClean); - smaps.privateDirtyStr = Utils.getBinaryByteWithUnit(smaps.privateDirty); - smaps.swapPssStr = Utils.getBinaryByteWithUnit(smaps.swapPss); - smaps.time = Utils.getTimeString(smaps.startNs); - smaps.path = SpSystemTrace.DATA_DICT.get(smaps.path)?.split('/'); - smaps.permission = SpSystemTrace.DATA_DICT.get(smaps.pid)?.split('/'); - let resideS = smaps.reside.toFixed(2); - if (resideS === '0.00') { - smaps.resideStr = '0 %'; - } else { - smaps.resideStr = resideS + '%'; - } - } - this.sourceSmapsSample = result; - this.querySmapsSampleResult = result; - this.tblSmapsSample!.recycleDataSource = this.sourceSmapsSample; - } else { - this.sourceSmapsSample = []; - this.querySmapsSampleResult = []; - this.tblSmapsSample!.recycleDataSource = []; - } - } - initHtml(): string { - return ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - `; - } - sortByColumn(detail: any): void { - // @ts-ignore - function compare(property, sort, type) { - return function (aSmapsSample: Smaps, bSmapsSample: Smaps) { - if (type === 'number') { - // @ts-ignore - return sort === 2 ? parseFloat(bSmapsSample[property]) - parseFloat(aSmapsSample[property]) : parseFloat(aSmapsSample[property]) - parseFloat(bSmapsSample[property]); - } else { - // @ts-ignore - if (bSmapsSample[property] > aSmapsSample[property]) { - return sort === 2 ? 1 : -1; - } else { - // @ts-ignore - if (bSmapsSample[property] === aSmapsSample[property]) { - return 0; - } else { - return sort === 2 ? -1 : 1; - } - } - } - }; - } - if ( - detail.key === 'rssStr' || - detail.key === 'sizeStr' || - detail.key === 'resideStr' - ) { - let key = detail.key.substring(0, detail.key.indexOf('Str')); - this.sourceSmapsSample.sort(compare(key, detail.sort, 'number')); - } else { - this.sourceSmapsSample.sort(compare(detail.key, detail.sort, 'string')); - } - this.tblSmapsSample!.recycleDataSource = this.sourceSmapsSample; - } -} diff --git a/ide/src/trace/component/trace/sheet/task/TabPaneTaskFrames.ts b/ide/src/trace/component/trace/sheet/task/TabPaneTaskFrames.ts index b0b0e0ad..7b54515e 100644 --- a/ide/src/trace/component/trace/sheet/task/TabPaneTaskFrames.ts +++ b/ide/src/trace/component/trace/sheet/task/TabPaneTaskFrames.ts @@ -56,7 +56,7 @@ export class TabPaneTaskFrames extends BaseElement { } //框选 this.range!.textContent = `Selected range: - ${ parseFloat(((framesParam.rightNs - framesParam.leftNs) / 1000000.0).toFixed(5)) } ms`; + ${parseFloat(((framesParam.rightNs - framesParam.leftNs) / 1000000.0).toFixed(5))} ms`; this.progressEL!.loading = true; this.queryDataByDB(framesParam, false); } @@ -102,12 +102,16 @@ export class TabPaneTaskFrames extends BaseElement { } } - private buildConcurrencyTable(executeStruct: FuncStruct, - tableList: TaskTabStruct[], framesParam: SelectionParam, isClick: boolean): void { + private buildConcurrencyTable( + executeStruct: FuncStruct, + tableList: TaskTabStruct[], + framesParam: SelectionParam, + isClick: boolean + ): void { this.countConcurrency(executeStruct, tableList, framesParam, isClick).then((result) => { let concurrencyColumn: TaskTabStruct = new TaskTabStruct(); concurrencyColumn.executeId = TABLE_CURRENCY; - concurrencyColumn.taskPriority = `${ result }`; + concurrencyColumn.taskPriority = `${result}`; tableList.push(concurrencyColumn); let filterList = []; let map = new Map(); @@ -123,8 +127,13 @@ export class TabPaneTaskFrames extends BaseElement { this.progressEL!.loading = false; }); } - private buildNoConcurrencyTable(executeId: string, priorityId: number, sTime: number, - eTime: number, rTime: number): void { + private buildNoConcurrencyTable( + executeId: string, + priorityId: number, + sTime: number, + eTime: number, + rTime: number + ): void { let task: TaskTabStruct = new TaskTabStruct(); task.executeId = executeId; task.taskPriority = Priority[priorityId]; @@ -152,7 +161,7 @@ export class TabPaneTaskFrames extends BaseElement { let tempTableList: TaskTabStruct[] = []; let tempExecuteTaskList: FuncStruct[] = []; let tempExecuteTaskIds: number[] = []; - for (let index = 0 ; index < groupsValue.length ; index++) { + for (let index = 0; index < groupsValue.length; index++) { let data = groupsValue[index]; let executeId = TabPaneTaskFrames.getExecuteId(data.funName!); if (data.funName!.indexOf(PERFORM_TASK) >= 0) { @@ -162,13 +171,13 @@ export class TabPaneTaskFrames extends BaseElement { } let uniqueArr = [...new Set(tempExecuteTaskIds)]; let taskList = await queryTaskListByExecuteTaskIds(uniqueArr, key); - for (let index = 0 ; index < taskList.length ; index++) { + for (let index = 0; index < taskList.length; index++) { this.pushTaskToList(taskList[index], tempTableList); } let filterArray = await this.handleConcurrency(tempExecuteTaskList, tempTableList, framesParam, isClick); this.taskFramesGroupSource.push(filterArray); } - this.taskFramesGroupSource.forEach(framesSource => { + this.taskFramesGroupSource.forEach((framesSource) => { tableList.push(...framesSource); }); this.taskFramesSource = tableList; @@ -230,10 +239,7 @@ export class TabPaneTaskFrames extends BaseElement { `; } - sortByColumn(framesDetail: { - sort: number, - key: string, - }): void { + sortByColumn(framesDetail: { sort: number; key: string }): void { // @ts-ignore let compare = function (property, sort, type) { return function (taskFramesLeftData: TaskTabStruct, taskFramesRightData: TaskTabStruct): number { @@ -262,7 +268,7 @@ export class TabPaneTaskFrames extends BaseElement { }; }; let tableList: TaskTabStruct[] = []; - this.taskFramesGroupSource.forEach(framesGroup => { + this.taskFramesGroupSource.forEach((framesGroup) => { if (framesDetail.key === 'taskPriority') { framesGroup.sort(compare(framesDetail.key, framesDetail.sort, 'string')); } else { @@ -325,8 +331,8 @@ export class TabPaneTaskFrames extends BaseElement { ]); let tasks: Array = res[1]; let maxConcurrency = 0; - let timePointArray: { time: number, isStart: boolean }[] = []; - for (let i = 0 ; i < tasks.length ; i++) { + let timePointArray: { time: number; isStart: boolean }[] = []; + for (let i = 0; i < tasks.length; i++) { timePointArray.push({ time: tasks[i].startTs!, isStart: true }); timePointArray.push({ time: tasks[i].startTs! + tasks[i].dur!, isStart: false }); } @@ -368,7 +374,7 @@ export class TabPaneTaskFrames extends BaseElement { maxNumConcurrency = countConcurrencyPromise; let concurrencyColumn: TaskTabStruct = new TaskTabStruct(); concurrencyColumn.executeId = TABLE_CURRENCY; - concurrencyColumn.taskPriority = `${ maxNumConcurrency }`; + concurrencyColumn.taskPriority = `${maxNumConcurrency}`; tableList.push(concurrencyColumn); //去重 let filterList = []; diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneDmaSelectVmTracker.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneDmaSelectVmTracker.ts index fd359a9c..43864c2f 100644 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneDmaSelectVmTracker.ts +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneDmaSelectVmTracker.ts @@ -42,7 +42,8 @@ export class TabPaneDmaSelectVmTracker extends BaseElement { new ResizeObserver(() => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.damClickTable?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 18 + 'px'; + this.damClickTable?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 18 + 'px'; this.parentElement!.style.overflow = 'hidden'; this.damClickTable?.reMeauseHeight(); } diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemorySelectVmTracker.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemorySelectVmTracker.ts index 533396d6..50dfcfe8 100644 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemorySelectVmTracker.ts +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemorySelectVmTracker.ts @@ -41,7 +41,8 @@ export class TabPaneGpuMemorySelectVmTracker extends BaseElement { new ResizeObserver(() => { if (this.parentElement?.clientHeight != 0) { // @ts-ignore - this.gpuMemoryClickTable?.shadowRoot?.querySelector('.table').style.height = this.parentElement.clientHeight - 18 + 'px'; + this.gpuMemoryClickTable?.shadowRoot?.querySelector('.table').style.height = + this.parentElement!.clientHeight - 18 + 'px'; this.parentElement!.style.overflow = 'hidden'; this.gpuMemoryClickTable?.reMeauseHeight(); } diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemoryVmTrackerComparison.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemoryVmTrackerComparison.ts index 9bb0bad9..6fc95f06 100644 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemoryVmTrackerComparison.ts +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuMemoryVmTrackerComparison.ts @@ -141,22 +141,18 @@ export class TabPaneGpuMemoryVmTrackerComparison extends BaseElement { ); break; case 'gpuName': - this.gpuMemoryClickTable!.recycleDataSource = array.sort( - (gpuMCompVmLeftData, gpuMCompVmRightData) => { - return sort === 1 - ? `${gpuMCompVmLeftData.gpuName}`.localeCompare(`${gpuMCompVmRightData.gpuName}`) - : `${gpuMCompVmRightData.gpuName}`.localeCompare(`${gpuMCompVmLeftData.gpuName}`); - } - ); + this.gpuMemoryClickTable!.recycleDataSource = array.sort((gpuMCompVmLeftData, gpuMCompVmRightData) => { + return sort === 1 + ? `${gpuMCompVmLeftData.gpuName}`.localeCompare(`${gpuMCompVmRightData.gpuName}`) + : `${gpuMCompVmRightData.gpuName}`.localeCompare(`${gpuMCompVmLeftData.gpuName}`); + }); break; case 'sizeDelta': - this.gpuMemoryClickTable!.recycleDataSource = array.sort( - (gpuMCompVmLeftData, gpuMCompVmRightData) => { - return sort === 1 - ? gpuMCompVmLeftData.value - gpuMCompVmRightData.value - : gpuMCompVmRightData.value - gpuMCompVmLeftData.value; - } - ); + this.gpuMemoryClickTable!.recycleDataSource = array.sort((gpuMCompVmLeftData, gpuMCompVmRightData) => { + return sort === 1 + ? gpuMCompVmLeftData.value - gpuMCompVmRightData.value + : gpuMCompVmRightData.value - gpuMCompVmLeftData.value; + }); break; } break; diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts deleted file mode 100644 index b6c5f8e1..00000000 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneGpuResourceVmTracker.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { BaseElement, element } from '../../../../../base-ui/BaseElement.js'; -import { LitTable } from '../../../../../base-ui/table/lit-table.js'; -import { queryGpuResourceTabData } from '../../../../database/SqlLite.js'; -import { getByteWithUnit } from '../../../../database/logic-worker/ProcedureLogicWorkerCommon.js'; -import { ns2s } from '../../../../database/ui-worker/ProcedureWorkerCommon.js'; -import { SpSystemTrace } from '../../../SpSystemTrace.js'; -import { resizeObserver } from '../SheetUtils.js'; -@element('tabpane-gpu-resource') -export class TabPaneGpuResourceVmTracker extends BaseElement { - private gpuResourceTable: LitTable | undefined | null; - private gpuResourceDataSource: Array = []; - - set data(startNs: number) { - this.parentElement!.style.overflow = 'unset'; - this.gpuResourceDataSource = []; - this.setGpuResourceTableData(startNs); - } - - private async setGpuResourceTableData(startNs: number): Promise { - await queryGpuResourceTabData(startNs).then((results) => { - if (results.length > 0) { - results.sort(function (a, b) { - return b.totalSize - a.totalSize; - }); - let totalSize = 0; - for (let i = 0; i < results.length; i++) { - this.gpuResourceDataSource.push({ - name: SpSystemTrace.DATA_DICT.get(results[i].channelId), - size: getByteWithUnit(results[i].totalSize || 0), - }); - totalSize += results[i].totalSize; - } - this.gpuResourceDataSource.unshift( - { name: 'TimeStamp', size: ns2s(startNs) }, - { name: 'TimeStamp(Absolute)', size: (startNs + (window as any).recordStartNS) / 1000000000 }, - { name: 'Total', size: getByteWithUnit(totalSize) } - ); - } - this.gpuResourceTable!.recycleDataSource = this.gpuResourceDataSource; - }); - } - - public initElements(): void { - this.gpuResourceTable = this.shadowRoot?.querySelector('#gpu-resource-tbl'); - } - - connectedCallback() { - super.connectedCallback(); - resizeObserver(this.parentElement!, this.gpuResourceTable!); - } - public initHtml(): string { - return ` - - - - - - - - - `; - } -} diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShm.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShm.ts index 90f98ae6..813dce92 100644 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShm.ts +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShm.ts @@ -34,9 +34,9 @@ export class TabPaneVmTrackerShm extends BaseElement { this.init(); this.clear(); this.range!.textContent = - 'Selected range: ' + - parseFloat(((valVmTrackerShm.rightNs - valVmTrackerShm.leftNs) / 1000000.0).toFixed(5)) + - ' ms'; + 'Selected range: ' + + parseFloat(((valVmTrackerShm.rightNs - valVmTrackerShm.leftNs) / 1000000.0).toFixed(5)) + + ' ms'; this.queryDataByDB(valVmTrackerShm); } } diff --git a/ide/src/trace/component/trace/timer-shaft/CollapseButton.ts b/ide/src/trace/component/trace/timer-shaft/CollapseButton.ts index 37faf443..25b74d33 100644 --- a/ide/src/trace/component/trace/timer-shaft/CollapseButton.ts +++ b/ide/src/trace/component/trace/timer-shaft/CollapseButton.ts @@ -39,9 +39,9 @@ export default class CollapseButton extends BaseElement { initElements(): void { this.onclick = (e) => { - this.expand = !this.expand + this.expand = !this.expand; window.publish(window.SmartEvent.UI.CollapseAllLane, this.expand); - } + }; } initHtml(): string { @@ -72,5 +72,4 @@ div:hover{
`; } - -} \ No newline at end of file +} diff --git a/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts b/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts index be1d6e22..47b7d2b2 100644 --- a/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts +++ b/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts @@ -928,7 +928,7 @@ export class RangeRuler extends Graph { } translate(distance: number) { - const rangeDur = (this.range.endNS - this.range.startNS) + const rangeDur = this.range.endNS - this.range.startNS; const time = (distance / this.canvas!.width) * rangeDur; if ( this.range.startNS < 0 || diff --git a/ide/src/trace/component/trace/timer-shaft/Rect.ts b/ide/src/trace/component/trace/timer-shaft/Rect.ts index 99da364f..1d54ba06 100644 --- a/ide/src/trace/component/trace/timer-shaft/Rect.ts +++ b/ide/src/trace/component/trace/timer-shaft/Rect.ts @@ -54,7 +54,7 @@ export class Rect { ); } - static intersect(rectA: Rect|DOMRect, rectB: Rect|DOMRect): boolean { + static intersect(rectA: Rect | DOMRect, rectB: Rect | DOMRect): boolean { let maxX = Math.max(rectA.x + rectA.width, rectB.x + rectB.width); let maxY = Math.max(rectA.y + rectA.height, rectB.y + rectB.height); let minX = Math.min(rectA.x, rectB.x); diff --git a/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts b/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts index 990c26f5..74fa05d1 100644 --- a/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts +++ b/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts @@ -30,8 +30,8 @@ export class TabPaneFlag extends BaseElement { initElements(): void { this.systemTrace = document - .querySelector('body > sp-application')! - .shadowRoot!.querySelector('#sp-system-trace'); + .querySelector('body > sp-application')?. + shadowRoot!.querySelector('#sp-system-trace'); this.panelTable = this.shadowRoot!.querySelector('.notes-editor-panel'); this.panelTable!.addEventListener('row-click', (evt: any) => { this.flagList = this.systemTrace?.timerShaftEL!.sportRuler?.flagList || []; @@ -202,4 +202,4 @@ export class TabPaneFlag extends BaseElement { `; } -} \ No newline at end of file +} diff --git a/ide/src/trace/database/ConvertTraceWorker.ts b/ide/src/trace/database/ConvertTraceWorker.ts index 3501a832..567be061 100644 --- a/ide/src/trace/database/ConvertTraceWorker.ts +++ b/ide/src/trace/database/ConvertTraceWorker.ts @@ -55,11 +55,13 @@ self.onmessage = async (e: MessageEvent) => { let headerStr = enc.decode(uint8Array); let currentPosition = 1024; let dataHeader = convertModule._malloc(1100); - if (headerStr.indexOf('OHOSPROF') == 0) { // htrace + if (headerStr.indexOf('OHOSPROF') == 0) { + // htrace let uint8Array = new Uint8Array(fileData.slice(0, 1024)); convertModule.HEAPU8.set(uint8Array, dataHeader); convertModule._SendFileHeader(dataHeader, 1024, traceInsPtr); - } else { // raw trace + } else { + // raw trace let uint8Array = new Uint8Array(fileData.slice(0, 12)); convertModule.HEAPU8.set(uint8Array, dataHeader); convertModule._SendRawFileHeader(dataHeader, 12, traceInsPtr); diff --git a/ide/src/trace/database/IndexedDBHelp.ts b/ide/src/trace/database/IndexedDBHelp.ts index c2bac321..bd34adc2 100644 --- a/ide/src/trace/database/IndexedDBHelp.ts +++ b/ide/src/trace/database/IndexedDBHelp.ts @@ -30,30 +30,30 @@ export class IndexedDBHelp { idbOpenDBRequest.onupgradeneeded = () => { const database: IDBDatabase = idbOpenDBRequest.result; this.db = database; - storeOptions?.forEach(option => { + storeOptions?.forEach((option) => { let optionName = option.name; if (database.objectStoreNames.contains(optionName) === false) { if (option.objectStoreParameters) { let objectStore = database.createObjectStore(optionName, option.objectStoreParameters); - option.dataItems?.forEach(dataItem => { + option.dataItems?.forEach((dataItem) => { if (dataItem.indexParameters) { objectStore.createIndex(dataItem.name, dataItem.keypath, dataItem.indexParameters); } else { objectStore.createIndex(dataItem.name, dataItem.keypath); } - }) + }); } else { let objectStore = database.createObjectStore(optionName); - option.dataItems?.forEach(dataItem => { + option.dataItems?.forEach((dataItem) => { if (dataItem.indexParameters) { objectStore.createIndex(dataItem.name, dataItem.name, dataItem.indexParameters); } else { objectStore.createIndex(dataItem.name, dataItem.name); } - }) + }); } } - }) + }); resolve(database); }; idbOpenDBRequest.onsuccess = (event) => { @@ -87,7 +87,7 @@ export class IndexedDBHelp { const index = objectStore.index(queryIndex); request = index.getAll(query); } else { - request = objectStore.getAll(query) + request = objectStore.getAll(query); } request.onsuccess = function (event) { // @ts-ignore @@ -149,5 +149,5 @@ export class IndexedDBHelp { export class StoreOptions { name: string = ''; objectStoreParameters?: IDBObjectStoreParameters; - dataItems?: Array<{ name: string, keypath: string[] | string, indexParameters?: IDBIndexParameters }>; + dataItems?: Array<{ name: string; keypath: string[] | string; indexParameters?: IDBIndexParameters }>; } diff --git a/ide/src/trace/database/LongTraceDBUtils.ts b/ide/src/trace/database/LongTraceDBUtils.ts index 970bdaec..3ca76578 100644 --- a/ide/src/trace/database/LongTraceDBUtils.ts +++ b/ide/src/trace/database/LongTraceDBUtils.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import {IndexedDBHelp} from './IndexedDBHelp.js'; +import { IndexedDBHelp } from './IndexedDBHelp.js'; export class LongTraceDBUtils { public static instance: LongTraceDBUtils | undefined; @@ -33,11 +33,12 @@ export class LongTraceDBUtils { return this.indexedDBHelp.open(this.dbName, this.dbVersion, [ { name: this.tableName, - objectStoreParameters: {keyPath: 'id'}, - dataItems: [{name: 'QueryCompleteFile', keypath: ['timStamp','fileType', 'pageNum', 'index']}, - {name: 'QueryFileByPage', keypath: ['timStamp','fileType', 'pageNum']}] - } + objectStoreParameters: { keyPath: 'id' }, + dataItems: [ + { name: 'QueryCompleteFile', keypath: ['timStamp', 'fileType', 'pageNum', 'index'] }, + { name: 'QueryFileByPage', keypath: ['timStamp', 'fileType', 'pageNum'] }, + ], + }, ]); } } - diff --git a/ide/src/trace/database/SqlLite.ts b/ide/src/trace/database/SqlLite.ts index 95aeb903..9118e7f9 100644 --- a/ide/src/trace/database/SqlLite.ts +++ b/ide/src/trace/database/SqlLite.ts @@ -143,7 +143,11 @@ class DbThread extends Worker { this.postMessage(msg); } - cutFileByRange(leftTs: number, rightTs: number, handler: (status: boolean, msg: string, splitBuffer?: ArrayBuffer) => void) { + cutFileByRange( + leftTs: number, + rightTs: number, + handler: (status: boolean, msg: string, splitBuffer?: ArrayBuffer) => void + ) { this.busy = true; let id = this.uuid(); this.taskMap[id] = (res: any) => { @@ -160,7 +164,7 @@ class DbThread extends Worker { action: 'cut-file', leftTs: leftTs, rightTs: rightTs, - buffer: DbPool.sharedBuffer! + buffer: DbPool.sharedBuffer!, }, [DbPool.sharedBuffer!] ); @@ -1244,13 +1248,17 @@ export const queryThreads = (): Promise> => export const queryDataDICT = (): Promise> => query('queryDataDICT', `select * from data_dict;`); -export const queryAppStartupProcessIds = (): Promise> => query('queryAppStartupProcessIds', ` +export const queryAppStartupProcessIds = (): Promise> => + query( + 'queryAppStartupProcessIds', + ` SELECT pid FROM process WHERE ipid IN ( SELECT ipid FROM app_startup UNION SELECT t.ipid FROM app_startup a LEFT JOIN thread t ON a.call_id = t.itid -);`); +);` + ); export const queryProcessContentCount = (): Promise> => query(`queryProcessContentCount`, `select pid,switch_count,thread_count,slice_count,mem_count from process;`); export const queryProcessThreadsByTable = (): Promise> => @@ -1384,8 +1392,8 @@ select pid id,name,'p' type from process;`, export const queryThreadStateArgs = (argset: number): Promise> => query('queryThreadStateArgs', ` select args_view.* from args_view where argset = ${argset}`, {}); -export const queryThreadStateArgsByName = (key: string): Promise> => -query('queryThreadStateArgsByName', ` select strValue, argset from args_view where keyName = $key`, {$key: key}); +export const queryThreadStateArgsByName = (key: string): Promise> => + query('queryThreadStateArgsByName', ` select strValue, argset from args_view where keyName = $key`, { $key: key }); export const queryWakeUpThread_Desc = (): Promise> => query( @@ -2779,7 +2787,7 @@ export const queryWakeupListPriority = (itid: number[], ts: number[], cpus: numb and itid in (${itid.join(',')}) and ts - start_ts in (${ts.join(',')}) `, - { } + {} ); export const queryBinderByArgsId = (id: number, startTime: number, isNext: boolean): Promise> => { @@ -5377,23 +5385,25 @@ export const queryLogData = (oneDayTime: number): Promise> => LEFT JOIN process p ON p.pid = l.pid ORDER BY l.ts;`, - {$oneDayTime: oneDayTime} + { $oneDayTime: oneDayTime } ); export const queryMetric = (metricName: string): Promise> => query('queryMetric', metricName, '', 'exec-metric'); export const queryExistFtrace = (): Promise> => - query( - 'queryExistFtrace', - `select 1 from thread_state + query( + 'queryExistFtrace', + `select 1 from thread_state UNION select 1 from args;` - ); + ); -export const queryTraceType = (): Promise> => +export const queryTraceType = (): Promise< + Array<{ + value: string; + }> +> => query( 'queryTraceType', `SELECT m.value diff --git a/ide/src/trace/database/TempSql.ts b/ide/src/trace/database/TempSql.ts index 837a58e6..ec61a763 100644 --- a/ide/src/trace/database/TempSql.ts +++ b/ide/src/trace/database/TempSql.ts @@ -398,4 +398,4 @@ let delete_callstack_binder_data = `DELETE or name = 'binder transaction async' or name = 'binder async rcv';`; -let temp_init_sql_list = [temp_query_process]; \ No newline at end of file +let temp_init_sql_list = [temp_query_process]; diff --git a/ide/src/trace/database/TraceWorker.ts b/ide/src/trace/database/TraceWorker.ts index e8fbe3e1..cc9035ff 100644 --- a/ide/src/trace/database/TraceWorker.ts +++ b/ide/src/trace/database/TraceWorker.ts @@ -116,7 +116,7 @@ let merged = () => { let translateJsonString = (str: string): string => { return str // .padding - .replace(/[\t|\r|\n]/g, '') + .replace(/[\t|\r|\n]/g, ''); }; let convertJSON = () => { @@ -127,9 +127,9 @@ let convertJSON = () => { if (!str) { } else { let parse; - let tansStr:string; + let tansStr: string; try { - tansStr = str.replace(/[\t|\r|\n]/g, ''); + tansStr = str.replace(/[\t\r\n]/g, ''); parse = JSON.parse(tansStr); } catch { try { @@ -142,9 +142,9 @@ let convertJSON = () => { } let columns = parse.columns; let values = parse.values; - for (let i = 0 ; i < values.length ; i++) { + for (let i = 0; i < values.length; i++) { let obj: any = {}; - for (let j = 0 ; j < columns.length ; j++) { + for (let j = 0; j < columns.length; j++) { obj[columns[j]] = values[i][j]; } jsonArray.push(obj); @@ -414,24 +414,27 @@ self.onmessage = async (e: MessageEvent) => { let timStamp = e.data.params.timeStamp; let allIndexDataList = e.data.params.splitDataList; let splitFileInfos = e.data.params.splitFileInfo as Array<{ - fileType: string, - startIndex: number, - endIndex: number, - size: number + fileType: string; + startIndex: number; + endIndex: number; + size: number; }>; let maxSize = 48 * 1024 * 1024; let maxPageNum = headArray.length / 1024; let currentPageNum = 0; let splitReqBufferAddr: number; if (splitFileInfos) { - let splitFileInfo = splitFileInfos.filter(splitFileInfo => splitFileInfo.fileType !== 'trace'); + let splitFileInfo = splitFileInfos.filter((splitFileInfo) => splitFileInfo.fileType !== 'trace'); if (splitFileInfo && splitFileInfo.length > 0) { let traceFileType: string = ''; let db = await openDB(); - let newCutFilePageInfo: Map, dataTypes: string }] - }> = new Map(); + let newCutFilePageInfo: Map< + string, + { + traceFileType: string; + dataArray: [{ data: Uint8Array | Array<{ offset: number; size: number }>; dataTypes: string }]; + } + > = new Map(); let cutFileCallBack = (heapPtr: number, size: number, dataType: number, isEnd: number) => { let key = `${traceFileType}_${currentPageNum}`; let out: Uint8Array = Module.HEAPU8.slice(heapPtr, heapPtr + size); @@ -442,11 +445,11 @@ self.onmessage = async (e: MessageEvent) => { } else { if (newCutFilePageInfo.has(key)) { let newVar = newCutFilePageInfo.get(key); - newVar?.dataArray.push({data: out, dataTypes: 'data'}); + newVar?.dataArray.push({ data: out, dataTypes: 'data' }); } else { newCutFilePageInfo.set(key, { traceFileType: traceFileType, - dataArray: [{data: out, dataTypes: 'data'}] + dataArray: [{ data: out, dataTypes: 'data' }], }); } } @@ -455,8 +458,8 @@ self.onmessage = async (e: MessageEvent) => { if (cutFilePageInfo) { let jsonStr: string = dec.decode(out); let jsonObj = JSON.parse(jsonStr); - let valueArray: Array<{ offset: number, size: number }> = jsonObj.value; - cutFilePageInfo.dataArray.push({data: valueArray, dataTypes: 'json'}); + let valueArray: Array<{ offset: number; size: number }> = jsonObj.value; + cutFilePageInfo.dataArray.push({ data: valueArray, dataTypes: 'json' }); } } }; @@ -468,9 +471,22 @@ self.onmessage = async (e: MessageEvent) => { traceFileType = fileInfo.fileType; for (let pageNum = 0; pageNum < maxPageNum; pageNum++) { currentPageNum = pageNum; - await splitFileAndSave(timStamp, fileInfo.fileType, fileInfo.startIndex, fileInfo.endIndex, fileInfo.size, db, pageNum, maxSize, splitReqBufferAddr); + await splitFileAndSave( + timStamp, + fileInfo.fileType, + fileInfo.startIndex, + fileInfo.endIndex, + fileInfo.size, + db, + pageNum, + maxSize, + splitReqBufferAddr + ); await initWASM(); - splitReqBufferAddr = Module._InitializeSplitFile(Module.addFunction(cutFileCallBack, 'viiii'), REQ_BUF_SIZE); + splitReqBufferAddr = Module._InitializeSplitFile( + Module.addFunction(cutFileCallBack, 'viiii'), + REQ_BUF_SIZE + ); Module.HEAPU8.set(headArray, splitReqBufferAddr); Module._TraceStreamerGetLongTraceTimeSnapEx(headArray.length); } @@ -493,14 +509,14 @@ self.onmessage = async (e: MessageEvent) => { let freeSaveData = receiveDataArray.slice(0, freeSize); currentChunk.set(freeSaveData, currentChunkOffset); await addDataToIndexeddb(db, { - 'buf': currentChunk, - 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, - 'fileType': `${fileType}_new`, - 'pageNum': pageNum, - 'startOffset': saveStartOffset, - 'endOffset': saveStartOffset + maxSize, - 'index': saveIndex, - 'timStamp': timStamp + buf: currentChunk, + id: `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + fileType: `${fileType}_new`, + pageNum: pageNum, + startOffset: saveStartOffset, + endOffset: saveStartOffset + maxSize, + index: saveIndex, + timStamp: timStamp, }); saveStartOffset += maxSize; saveIndex++; @@ -515,56 +531,77 @@ self.onmessage = async (e: MessageEvent) => { } } else { if (receiveData.data.length > 0) { - let needCutMessage = receiveData.data as Array<{ offset: number, size: number }>; + let needCutMessage = receiveData.data as Array<{ offset: number; size: number }>; let startOffset = needCutMessage[0].offset; - let endOffset = needCutMessage[needCutMessage.length - 1].offset + needCutMessage[needCutMessage.length - 1].size; - let searchDataInfo = allIndexDataList.filter((value: { - fileType: string - index: number - pageNum: number - startOffsetSize: number - endOffsetSize: number - }) => { - return value.fileType === fileType && value.startOffsetSize <= endOffset && value.endOffsetSize >= startOffset; - }).sort((valueA: { startOffsetSize: number; }, valueB: { startOffsetSize: number; }) => { - return valueA.startOffsetSize - valueB.startOffsetSize; - }); + let endOffset = + needCutMessage[needCutMessage.length - 1].offset + needCutMessage[needCutMessage.length - 1].size; + let searchDataInfo = allIndexDataList + .filter( + (value: { + fileType: string; + index: number; + pageNum: number; + startOffsetSize: number; + endOffsetSize: number; + }) => { + return ( + value.fileType === fileType && + value.startOffsetSize <= endOffset && + value.endOffsetSize >= startOffset + ); + } + ) + .sort((valueA: { startOffsetSize: number }, valueB: { startOffsetSize: number }) => { + return valueA.startOffsetSize - valueB.startOffsetSize; + }); let startIndex = searchDataInfo[0].index; let endIndex = searchDataInfo[searchDataInfo.length - 1].index; let startQueryIndex = startIndex; let endQueryIndex = startIndex + 10; do { endQueryIndex = Math.min(endQueryIndex, endIndex); - let searchCutFilter = searchDataInfo.filter((value: { - fileType: string - index: number - pageNum: number - startOffsetSize: number - endOffsetSize: number - }) => { - if (endQueryIndex === startQueryIndex) { - return value.index >= startQueryIndex; + let searchCutFilter = searchDataInfo.filter( + (value: { + fileType: string; + index: number; + pageNum: number; + startOffsetSize: number; + endOffsetSize: number; + }) => { + if (endQueryIndex === startQueryIndex) { + return value.index >= startQueryIndex; + } + return value.index >= startQueryIndex && value.index <= endQueryIndex; } - return value.index >= startQueryIndex && value.index <= endQueryIndex; - }); - let minStartOffsetSize = Math.min(...searchCutFilter.map((item: { - startOffsetSize: number; - }) => item.startOffsetSize)); - let maxEndOffsetSize = Math.max(...searchCutFilter.map((item: { endOffsetSize: number; }) => item.endOffsetSize)); - let cutUseOffsetObjs = needCutMessage.filter(offseObj => { + ); + let minStartOffsetSize = Math.min( + ...searchCutFilter.map((item: { startOffsetSize: number }) => item.startOffsetSize) + ); + let maxEndOffsetSize = Math.max( + ...searchCutFilter.map((item: { endOffsetSize: number }) => item.endOffsetSize) + ); + let cutUseOffsetObjs = needCutMessage.filter((offseObj) => { return offseObj.offset > minStartOffsetSize && offseObj.offset < maxEndOffsetSize; }); let transaction = db.transaction(STORE_NAME, 'readonly'); let store = transaction.objectStore(STORE_NAME); let index = store.index('QueryCompleteFile'); - let range = IDBKeyRange.bound([timStamp, fileType, 0, startQueryIndex], [timStamp, fileType, 0, endQueryIndex], false, false); + let range = IDBKeyRange.bound( + [timStamp, fileType, 0, startQueryIndex], + [timStamp, fileType, 0, endQueryIndex], + false, + false + ); const getRequest = index.openCursor(range); let queryAllData = await queryDataFromIndexeddb(getRequest); let mergeData = indexedDataToBufferData(queryAllData); for (let cutOffsetObjIndex = 0; cutOffsetObjIndex < cutUseOffsetObjs.length; cutOffsetObjIndex++) { let cutUseOffsetObj = cutUseOffsetObjs[cutOffsetObjIndex]; let endOffset = cutUseOffsetObj.offset + cutUseOffsetObj.size; - let sliceData = mergeData.slice(cutUseOffsetObj.offset - minStartOffsetSize, endOffset - minStartOffsetSize); + let sliceData = mergeData.slice( + cutUseOffsetObj.offset - minStartOffsetSize, + endOffset - minStartOffsetSize + ); let sliceDataLength = sliceData.length; if (currentChunkOffset + sliceDataLength >= maxSize) { let handleCurrentData = new Uint8Array(currentChunkOffset + sliceDataLength); @@ -583,14 +620,14 @@ self.onmessage = async (e: MessageEvent) => { currentChunkOffset += saveArray.length; } else { await addDataToIndexeddb(db, { - 'buf': saveArray, - 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, - 'fileType': `${fileType}_new`, - 'pageNum': pageNum, - 'startOffset': saveStartOffset, - 'endOffset': saveStartOffset + maxSize, - 'index': saveIndex, - 'timStamp': timStamp + buf: saveArray, + id: `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + fileType: `${fileType}_new`, + pageNum: pageNum, + startOffset: saveStartOffset, + endOffset: saveStartOffset + maxSize, + index: saveIndex, + timStamp: timStamp, }); saveStartOffset += maxSize; saveIndex++; @@ -610,14 +647,14 @@ self.onmessage = async (e: MessageEvent) => { if (currentChunkOffset !== 0) { let freeArray = currentChunk.slice(0, currentChunkOffset); await addDataToIndexeddb(db, { - 'buf': freeArray, - 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, - 'fileType': `${fileType}_new`, - 'pageNum': pageNum, - 'startOffset': saveStartOffset, - 'endOffset': saveStartOffset + maxSize, - 'index': saveIndex, - 'timStamp': timStamp + buf: freeArray, + id: `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + fileType: `${fileType}_new`, + pageNum: pageNum, + startOffset: saveStartOffset, + endOffset: saveStartOffset + maxSize, + index: saveIndex, + timStamp: timStamp, }); saveStartOffset += maxSize; saveIndex++; @@ -650,7 +687,17 @@ function indexedDataToBufferData(sourceData: any): Uint8Array { return resultUintArray; } -async function splitFileAndSave(timStamp: number, fileType: string, startIndex: number, endIndex: number, fileSize: number, db: IDBDatabase, pageNum: number, maxSize: number, splitReqBufferAddr?: any) { +async function splitFileAndSave( + timStamp: number, + fileType: string, + startIndex: number, + endIndex: number, + fileSize: number, + db: IDBDatabase, + pageNum: number, + maxSize: number, + splitReqBufferAddr?: any +) { let queryStartIndex = startIndex; let queryEndIndex = startIndex; let saveIndex = 0; @@ -693,14 +740,14 @@ async function splitFileAndSave(timStamp: number, fileType: string, startIndex: let freeSaveData = currentArkTsData.slice(0, freeSize); currentChunk.set(freeSaveData, currentChunkOffset); await addDataToIndexeddb(db, { - 'buf': currentChunk, - 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, - 'fileType': `${fileType}_new`, - 'pageNum': pageNum, - 'startOffset': saveStartOffset, - 'endOffset': saveStartOffset + maxSize, - 'index': saveIndex, - 'timStamp': timStamp + buf: currentChunk, + id: `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + fileType: `${fileType}_new`, + pageNum: pageNum, + startOffset: saveStartOffset, + endOffset: saveStartOffset + maxSize, + index: saveIndex, + timStamp: timStamp, }); saveStartOffset += maxSize; saveIndex++; @@ -717,14 +764,14 @@ async function splitFileAndSave(timStamp: number, fileType: string, startIndex: currentChunkOffset += saveArray.length; } else { await addDataToIndexeddb(db, { - 'buf': saveArray, - 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, - 'fileType': `${fileType}_new`, - 'pageNum': pageNum, - 'startOffset': saveStartOffset, - 'endOffset': saveStartOffset + maxSize, - 'index': saveIndex, - 'timStamp': timStamp + buf: saveArray, + id: `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + fileType: `${fileType}_new`, + pageNum: pageNum, + startOffset: saveStartOffset, + endOffset: saveStartOffset + maxSize, + index: saveIndex, + timStamp: timStamp, }); saveStartOffset += maxSize; saveIndex++; @@ -739,19 +786,19 @@ async function splitFileAndSave(timStamp: number, fileType: string, startIndex: } } } while (queryEndIndex < endIndex); - if (fileType === 'arkts' && currentChunkOffset > 0 ) { + if (fileType === 'arkts' && currentChunkOffset > 0) { let remnantArray = new Uint8Array(currentChunkOffset); let remnantChunk = currentChunk.slice(0, currentChunkOffset); remnantArray.set(remnantChunk, 0); await addDataToIndexeddb(db, { - 'buf': remnantArray, - 'id': `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, - 'fileType': `${fileType}_new`, - 'pageNum': pageNum, - 'startOffset': saveStartOffset, - 'endOffset': saveStartOffset + maxSize, - 'index': saveIndex, - 'timStamp': timStamp + buf: remnantArray, + id: `${fileType}_new_${timStamp}_${pageNum}_${saveIndex}`, + fileType: `${fileType}_new`, + pageNum: pageNum, + startOffset: saveStartOffset, + endOffset: saveStartOffset + maxSize, + index: saveIndex, + timStamp: timStamp, }); arkTsDataSize = 0; arkTsData.length = 0; @@ -760,7 +807,7 @@ async function splitFileAndSave(timStamp: number, fileType: string, startIndex: enum DataTypeEnum { data, - json + json, } let uploadSoActionId: string = ''; @@ -820,13 +867,13 @@ let splitReqBufferAddr = -1; enum FileTypeEnum { data, - json + json, } function cutFileBufferByOffSet(out: Uint8Array, uint8Array: Uint8Array) { let jsonStr: string = dec.decode(out); let jsonObj = JSON.parse(jsonStr); - let valueArray: Array<{ offset: number, size: number }> = jsonObj.value; + let valueArray: Array<{ offset: number; size: number }> = jsonObj.value; const sum = valueArray.reduce((total, obj) => total + obj.size, 0); let cutBuffer = new Uint8Array(sum); let offset = 0; @@ -843,7 +890,7 @@ function cutFileByRange(e: MessageEvent) { let cutRightTs = e.data.rightTs; let uint8Array = new Uint8Array(e.data.buffer); let resultBuffer: Array = []; - let cutFileCallBack = (heapPtr: number, size: number, fileType: number, isEnd:number) => { + let cutFileCallBack = (heapPtr: number, size: number, fileType: number, isEnd: number) => { let out: Uint8Array = Module.HEAPU8.slice(heapPtr, heapPtr + size); if (FileTypeEnum.data === fileType) { resultBuffer.push(out); @@ -867,7 +914,7 @@ function cutFileByRange(e: MessageEvent) { cutStatus: true, msg: 'split success', buffer: e.data.buffer, - cutBuffer: cutBuffer.buffer + cutBuffer: cutBuffer.buffer, }, // @ts-ignore [e.data.buffer, cutBuffer.buffer] @@ -924,7 +971,7 @@ function query(name: string, sql: string, params: any) { if (params) { Reflect.ownKeys(params).forEach((key: any) => { if (typeof params[key] === 'string') { - sql = sql.replace(new RegExp(`\\${key}`, 'g'), `'${ params[key] }'`); + sql = sql.replace(new RegExp(`\\${key}`, 'g'), `'${params[key]}'`); } else { sql = sql.replace(new RegExp(`\\${key}`, 'g'), params[key]); } @@ -940,7 +987,7 @@ function querySdk(name: string, sql: string, sdkParams: any, action: string) { if (sdkParams) { Reflect.ownKeys(sdkParams).forEach((key: any) => { if (typeof sdkParams[key] === 'string') { - sql = sql.replace(new RegExp(`\\${key}`, 'g'), `'${ sdkParams[key] }'`); + sql = sql.replace(new RegExp(`\\${key}`, 'g'), `'${sdkParams[key]}'`); } else { sql = sql.replace(new RegExp(`\\${key}`, 'g'), sdkParams[key]); } diff --git a/ide/src/trace/database/logic-worker/ProcedureLogicWorker.ts b/ide/src/trace/database/logic-worker/ProcedureLogicWorker.ts index 0600daf8..36f548bd 100644 --- a/ide/src/trace/database/logic-worker/ProcedureLogicWorker.ts +++ b/ide/src/trace/database/logic-worker/ProcedureLogicWorker.ts @@ -34,7 +34,7 @@ let logicWorker: any = { function match(req: any) { if (req.type === 'clear') { - Reflect.ownKeys(logicWorker).forEach(key => logicWorker[key].clearAll()); + Reflect.ownKeys(logicWorker).forEach((key) => logicWorker[key].clearAll()); DataCache.getInstance().clearAll(); return; } diff --git a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerFileSystem.ts b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerFileSystem.ts index ef473d1e..fc9cb1bf 100644 --- a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerFileSystem.ts +++ b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerFileSystem.ts @@ -590,18 +590,18 @@ where s.end_ts between $startTime + t.start_ts and $endTime + t.start_ts ${sql} queryIOSamples(selectionParam: any) { let sql = ''; - const types : number[] = []; + const types: number[] = []; if (selectionParam.diskIOReadIds.length > 0) { - types.push(...[1,3]); + types.push(...[1, 3]); } if (selectionParam.diskIOWriteIds.length > 0) { - types.push(...[2,4]) + types.push(...[2, 4]); } if (selectionParam.diskIOipids.length > 0) { - types.push(...[5,6]) + types.push(...[5, 6]); sql += `and (s.ipid in (${selectionParam.diskIOipids.join(',')}) and s.type in (${types.join(',')})) `; } - + this.queryData( this.currentEventId, 'fileSystem-queryIoSamples', @@ -680,7 +680,7 @@ where s.end_ts between $startTime + t.start_ts and $endTime + t.start_ts ${sql} fileMerageBean.count = merageData.count; fileMerageBean.total = totalCount; fileMerageBean.tsArray = [...merageData.tsArray]; - fileMerageBean.durArray = [...merageData.durArray] + fileMerageBean.durArray = [...merageData.durArray]; rootMerageMap[merageData.pid] = fileMerageBean; } else { rootMerageMap[merageData.pid].children.push(merageData); diff --git a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerSchedulingAnalysis.ts b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerSchedulingAnalysis.ts index 383bd785..c624534f 100644 --- a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerSchedulingAnalysis.ts +++ b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerSchedulingAnalysis.ts @@ -558,9 +558,9 @@ where cpu not null block: '', ts: 0, dur: ca.ts, - }) + }); } - cpuArr.push(ca) + cpuArr.push(ca); map.set(ca.cpu, cpuArr); } } @@ -654,7 +654,10 @@ where cpu not null handlerFreqThreadData(arr: FreqThread[]) { let cpuFreqArr: CpuMeasure[] = (this.cpuFreqMap.get(this.cpu) || []).filter((it) => it.value === this.freq); - let map: Map = new Map(); + let map: Map< + number, + { tid: number; tName: string; pid: number; pName: string; dur: number; durStr: string; ratio: string } + > = new Map(); let sumFreqDur = 0; cpuFreqArr.map((it) => { sumFreqDur += it.dur; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerAppStartup.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerAppStartup.ts index e6adb948..177ddcfe 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerAppStartup.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerAppStartup.ts @@ -13,10 +13,7 @@ * limitations under the License. */ -import { - BaseStruct, - dataFilterHandler, drawString, -} from './ProcedureWorkerCommon.js'; +import { BaseStruct, dataFilterHandler, drawString } from './ProcedureWorkerCommon.js'; import { TraceRow } from '../../component/trace/base/TraceRow.js'; import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; @@ -47,7 +44,9 @@ export class AppStartupRender { for (let re of filter) { AppStartupStruct.draw(req.appStartupContext, re); if (appStartUpRow.isHover) { - if (re.frame && appStartUpRow.hoverX >= re.frame.x - offset && + if ( + re.frame && + appStartUpRow.hoverX >= re.frame.x - offset && appStartUpRow.hoverX <= re.frame.x + re.frame.width + offset ) { AppStartupStruct.hoverStartupStruct = re; @@ -72,7 +71,7 @@ export class AppStartupStruct extends BaseStruct { 'UI Ability Launching', 'UI Ability OnForeground', 'First Frame - APP Phase', - 'First Frame - Render Phase' + 'First Frame - Render Phase', ]; dur: number | undefined; value: string | undefined; @@ -94,21 +93,17 @@ export class AppStartupStruct extends BaseStruct { ctx.textBaseline = 'middle'; ctx.lineWidth = 1; if (data.stepName === undefined) { - data.stepName = `${ AppStartupStruct.getStartupName(data.startName) } (${ (data.dur! / 1000000).toFixed(2) }ms)`; + data.stepName = `${AppStartupStruct.getStartupName(data.startName)} (${(data.dur! / 1000000).toFixed(2)}ms)`; } - let textColor = ColorUtils.FUNC_COLOR[ColorUtils.hashFunc(data.stepName || '', 0, ColorUtils.FUNC_COLOR.length)]; + let textColor = + ColorUtils.FUNC_COLOR[ColorUtils.hashFunc(data.stepName || '', 0, ColorUtils.FUNC_COLOR.length)]; ctx.fillStyle = ColorUtils.funcTextColor(textColor); drawString(ctx, data.stepName, 2, data.frame, data); } if (data === AppStartupStruct.selectStartupStruct) { ctx.strokeStyle = '#232c5d'; ctx.lineWidth = 2; - ctx.strokeRect( - data.frame.x, - data.frame.y, - data.frame.width, - data.frame.height - ); + ctx.strokeRect(data.frame.x, data.frame.y, data.frame.width, data.frame.height); } } } @@ -120,5 +115,4 @@ export class AppStartupStruct extends BaseStruct { return AppStartupStruct.StartUpStep[step]; } } - } diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts index ed5d6054..cc09e7bf 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts @@ -114,13 +114,11 @@ export class CpuRender { TraceRow.range!.endNS, TraceRow.range!.totalNS, row.frame, - req.type == `cpu-data-${SpSystemTrace.wakeupList[i]?.cpu || 0}` - ? SpSystemTrace.wakeupList[i] - : undefined, + req.type == `cpu-data-${SpSystemTrace.wakeupList[i]?.cpu || 0}` ? SpSystemTrace.wakeupList[i] : undefined, currentCpu, true ); - }; + } } render(cpuReq: RequestMessage, list: Array, filter: Array, translateY: number) { diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerClock.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerClock.ts index fc7d9cb1..734274b3 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerClock.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerClock.ts @@ -103,7 +103,7 @@ export class ClockStruct extends BaseStruct { } else { clockContext.lineWidth = 1; clockContext.globalAlpha = 1.0; - clockContext.strokeRect(data.frame.x, data.frame.y + data.frame.height - drawHeight, width, drawHeight) + clockContext.strokeRect(data.frame.x, data.frame.y + data.frame.height - drawHeight, width, drawHeight); clockContext.globalAlpha = 0.6; clockContext.fillRect(data.frame.x, data.frame.y + data.frame.height - drawHeight, width, drawHeight); } diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts index 1611d4eb..be4f76ec 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts @@ -13,10 +13,10 @@ * limitations under the License. */ -import {CpuStruct, WakeupBean} from './ProcedureWorkerCPU.js'; -import {TraceRow} from '../../component/trace/base/TraceRow.js'; -import {TimerShaftElement} from '../../component/trace/TimerShaftElement'; -import {Flag} from '../../component/trace/timer-shaft/Flag.js'; +import { CpuStruct, WakeupBean } from './ProcedureWorkerCPU.js'; +import { TraceRow } from '../../component/trace/base/TraceRow.js'; +import { TimerShaftElement } from '../../component/trace/TimerShaftElement'; +import { Flag } from '../../component/trace/timer-shaft/Flag.js'; export abstract class Render { abstract renderMainThread(req: any, row: TraceRow): void; @@ -107,7 +107,7 @@ export function isFrameContainPoint(frame: Rect, x: number, y: number): boolean return x >= frame.x && x <= frame.x + frame.width && y >= frame.y && y <= frame.y + frame.height; } export const isSurroundingPoint = function (pointX: number, currentRect: Rect, unitPointXRange: number): boolean { - return (pointX >= currentRect?.x - unitPointXRange) && pointX <= currentRect?.x + unitPointXRange; + return pointX >= currentRect?.x - unitPointXRange && pointX <= currentRect?.x + unitPointXRange; }; export const computeUnitWidth = function ( @@ -170,62 +170,62 @@ export function fillCacheData(filterList: Array, condition: FilterConfig): } export function fillCacheDataIdx(filterData: Array, slice: number[], condition: FilterConfig): boolean { - if (condition.useCache && filterData.length > 0) { - let pns = (condition.endNS - condition.startNS) / condition.frame.width; - let y = condition.frame.y + condition.paddingTop; - let height = condition.frame.height - condition.paddingTop * 2; - for (let i = slice[0]; i <= slice[1]; i++) { - let it = filterData[i]; - if (!it) continue; - if ( - (it[condition.startKey] || 0) + (it[condition.durKey] || 0) > condition.startNS && - (it[condition.startKey] || 0) < condition.endNS - ) { - if (!filterData[i].frame) { - filterData[i].frame = {}; - filterData[i].frame.y = y; - filterData[i].frame.height = height; - } - setNodeFrame( - filterData[i], - pns, - condition.startNS, - condition.endNS, - condition.frame, - condition.startKey, - condition.durKey - ); - } else { - filterData[i].frame = null; - } + if (condition.useCache && filterData.length > 0) { + let pns = (condition.endNS - condition.startNS) / condition.frame.width; + let y = condition.frame.y + condition.paddingTop; + let height = condition.frame.height - condition.paddingTop * 2; + for (let i = slice[0]; i <= slice[1]; i++) { + let it = filterData[i]; + if (!it) continue; + if ( + (it[condition.startKey] || 0) + (it[condition.durKey] || 0) > condition.startNS && + (it[condition.startKey] || 0) < condition.endNS + ) { + if (!filterData[i].frame) { + filterData[i].frame = {}; + filterData[i].frame.y = y; + filterData[i].frame.height = height; } - return true; + setNodeFrame( + filterData[i], + pns, + condition.startNS, + condition.endNS, + condition.frame, + condition.startKey, + condition.durKey + ); + } else { + filterData[i].frame = null; + } } - return false; + return true; + } + return false; } export function bsearch(haystack: ArrayLike, needle: any): number { - return searchImpl(haystack, needle, 0, haystack.length); + return searchImpl(haystack, needle, 0, haystack.length); } function searchImpl(stack: ArrayLike, cfg: FilterConfig, i: number, j: number): number { - if (i === j) return -1; - if (i + 1 === j) { - return (cfg.endNS >= stack[i][cfg.startKey]) ? i : -1; - } - const middle = Math.floor((j - i) / 2) + i; - const middleValue = stack[middle][cfg.startKey]; - if (cfg.endNS < middleValue) { - return searchImpl(stack, cfg, i, middle); - } else { - return searchImpl(stack, cfg, middle, j); - } + if (i === j) return -1; + if (i + 1 === j) { + return cfg.endNS >= stack[i][cfg.startKey] ? i : -1; + } + const middle = Math.floor((j - i) / 2) + i; + const middleValue = stack[middle][cfg.startKey]; + if (cfg.endNS < middleValue) { + return searchImpl(stack, cfg, i, middle); + } else { + return searchImpl(stack, cfg, middle, j); + } } export function findRangeIdx(fullData: Array, condition: FilterConfig): number[] { - let a = fullData.findIndex(it => it[condition.startKey] + it[condition.durKey] >= condition.startNS); - let b = bsearch(fullData, condition); - return [a, b + 1]; + let a = fullData.findIndex((it) => it[condition.startKey] + it[condition.durKey] >= condition.startNS); + let b = bsearch(fullData, condition); + return [a, b + 1]; } export function findRange(fullData: Array, condition: FilterConfig): Array { @@ -588,8 +588,20 @@ export function drawFlagLineSegment(ctx: any, hoverFlag: any, selectFlag: any, f ctx.beginPath(); ctx.lineWidth = 1; ctx.strokeStyle = slicesTime.color || '#dadada'; - let x1 = ns2x(slicesTime.startTime, TraceRow.range!.startNS, TraceRow.range!.endNS, TraceRow.range!.totalNS, frame); - let x2 = ns2x(slicesTime.endTime, TraceRow.range!.startNS, TraceRow.range!.endNS, TraceRow.range!.totalNS, frame); + let x1 = ns2x( + slicesTime.startTime, + TraceRow.range!.startNS, + TraceRow.range!.endNS, + TraceRow.range!.totalNS, + frame + ); + let x2 = ns2x( + slicesTime.endTime, + TraceRow.range!.startNS, + TraceRow.range!.endNS, + TraceRow.range!.totalNS, + frame + ); // 划线逻辑 ctx.moveTo(Math.floor(x1), 0); ctx.lineTo(Math.floor(x1), frame.height); //左边的线 @@ -785,8 +797,24 @@ export function drawLinkLines( let maxWidth = tm.getBoundingClientRect().width - 268; for (let i = 0; i < nodes.length; i++) { let it = nodes[i]; - let newFirstNode = new PairPoint(it[0].rowEL, it[0].x, it[0].y, it[0].ns, it[0].offsetY, it[0].isRight, it[0].business); - let newSecondNode = new PairPoint(it[1].rowEL, it[0].x, it[1].y, it[1].ns, it[1].offsetY, it[1].isRight, it[1].business); + let newFirstNode = new PairPoint( + it[0].rowEL, + it[0].x, + it[0].y, + it[0].ns, + it[0].offsetY, + it[0].isRight, + it[0].business + ); + let newSecondNode = new PairPoint( + it[1].rowEL, + it[0].x, + it[1].y, + it[1].ns, + it[1].offsetY, + it[1].isRight, + it[1].business + ); if (it[0].hidden) { continue; } @@ -1302,12 +1330,10 @@ export function drawWakeUpList( frame: Rect, wakeup: WakeupBean | undefined = undefined, currentCpu: number | undefined | null = undefined, - noVerticalLine = false, + noVerticalLine = false ) { if (wake) { - let x1 = Math.floor( - ns2x(wake.wakeupTime || 0, startNS, endNS, totalNS, frame) - ); + let x1 = Math.floor(ns2x(wake.wakeupTime || 0, startNS, endNS, totalNS, frame)); wakeUpListContext.beginPath(); wakeUpListContext.lineWidth = 2; wakeUpListContext.fillStyle = '#000000'; @@ -1327,24 +1353,14 @@ export function drawWakeUpList( } } if (wakeup) { - let x2 = Math.floor( - ns2x( - wakeup.ts || 0, - startNS, - endNS, - totalNS, - frame - ) - ); + let x2 = Math.floor(ns2x(wakeup.ts || 0, startNS, endNS, totalNS, frame)); let y = frame.y + frame.height - 10; wakeUpListContext.moveTo(x1, y); wakeUpListContext.lineTo(x2, y); wakeUpListContext.moveTo(x2, y - 25); wakeUpListContext.lineTo(x2, y + 5); - let s = ns2s( - (wakeup.ts || 0) - (wake.wakeupTime || 0) - ); + let s = ns2s((wakeup.ts || 0) - (wake.wakeupTime || 0)); let wakeUpListDistance = x2 - x1; if (wakeUpListDistance > 12) { wakeUpListContext.moveTo(x1, y); @@ -1356,18 +1372,11 @@ export function drawWakeUpList( wakeUpListContext.moveTo(x2, y); wakeUpListContext.lineTo(x2 - 6, y + 3); let measure = wakeUpListContext.measureText(s); - let tHeight = - measure.actualBoundingBoxAscent + - measure.actualBoundingBoxDescent; + let tHeight = measure.actualBoundingBoxAscent + measure.actualBoundingBoxDescent; let xStart = x1 + Math.floor(wakeUpListDistance / 2 - measure.width / 2); if (wakeUpListDistance > measure.width + 4) { wakeUpListContext.fillStyle = '#ffffff'; - wakeUpListContext.fillRect( - xStart - 2, - y - 4 - tHeight, - measure.width + 4, - tHeight + 4 - ); + wakeUpListContext.fillRect(xStart - 2, y - 4 - tHeight, measure.width + 4, tHeight + 4); wakeUpListContext.font = '10px solid'; wakeUpListContext.fillStyle = '#000000'; wakeUpListContext.textBaseline = 'bottom'; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerCpuAbility.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerCpuAbility.ts index 8b38550b..71d2c66f 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerCpuAbility.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerCpuAbility.ts @@ -52,7 +52,9 @@ export class CpuAbilityRender extends Render { req.context.beginPath(); for (let re of cpuAbilityFilter) { CpuAbilityMonitorStruct.draw(req.context, re, req.maxCpuUtilization, cpuAbilityRow.isHover); - if (cpuAbilityRow.isHover && re.frame && + if ( + cpuAbilityRow.isHover && + re.frame && isFrameContainPoint(re.frame, cpuAbilityRow.hoverX, cpuAbilityRow.hoverY) ) { CpuAbilityMonitorStruct.hoverCpuAbilityStruct = re; @@ -89,7 +91,14 @@ export function cpuAbility( for (let index = 0; index < cpuAbilityFilters.length; index++) { let item = cpuAbilityFilters[index]; if ((item.startNS || 0) + (item.dur || 0) > (startNS || 0) && (item.startNS || 0) < (endNS || 0)) { - CpuAbilityMonitorStruct.setCpuAbilityFrame(cpuAbilityFilters[index], 5, startNS || 0, endNS || 0, totalNS || 0, frame); + CpuAbilityMonitorStruct.setCpuAbilityFrame( + cpuAbilityFilters[index], + 5, + startNS || 0, + endNS || 0, + totalNS || 0, + frame + ); } else { cpuAbilityFilters[index].frame = null; } @@ -152,7 +161,9 @@ export class CpuAbilityMonitorStruct extends BaseStruct { if (cpuAbilityData.startNS === CpuAbilityMonitorStruct.hoverCpuAbilityStruct?.startNS && isHover) { cpuAbilityContext2D.lineWidth = 1; cpuAbilityContext2D.globalAlpha = 0.6; - let drawHeight: number = Math.floor(((cpuAbilityData.value || 0) * (cpuAbilityData.frame.height || 0) * 1.0) / maxCpuUtilization); + let drawHeight: number = Math.floor( + ((cpuAbilityData.value || 0) * (cpuAbilityData.frame.height || 0) * 1.0) / maxCpuUtilization + ); cpuAbilityContext2D.fillRect( cpuAbilityData.frame.x, cpuAbilityData.frame.y + cpuAbilityData.frame.height - drawHeight + 4, @@ -172,14 +183,22 @@ export class CpuAbilityMonitorStruct extends BaseStruct { cpuAbilityContext2D.globalAlpha = 1.0; cpuAbilityContext2D.stroke(); cpuAbilityContext2D.beginPath(); - cpuAbilityContext2D.moveTo(cpuAbilityData.frame.x + 3, cpuAbilityData.frame.y + cpuAbilityData.frame.height - drawHeight + 4); + cpuAbilityContext2D.moveTo( + cpuAbilityData.frame.x + 3, + cpuAbilityData.frame.y + cpuAbilityData.frame.height - drawHeight + 4 + ); cpuAbilityContext2D.lineWidth = 3; - cpuAbilityContext2D.lineTo(cpuAbilityData.frame.x + width, cpuAbilityData.frame.y + cpuAbilityData.frame.height - drawHeight + 4); + cpuAbilityContext2D.lineTo( + cpuAbilityData.frame.x + width, + cpuAbilityData.frame.y + cpuAbilityData.frame.height - drawHeight + 4 + ); cpuAbilityContext2D.stroke(); } else { cpuAbilityContext2D.globalAlpha = 0.6; cpuAbilityContext2D.lineWidth = 1; - let drawHeight: number = Math.floor(((cpuAbilityData.value || 0) * (cpuAbilityData.frame.height || 0)) / maxCpuUtilization); + let drawHeight: number = Math.floor( + ((cpuAbilityData.value || 0) * (cpuAbilityData.frame.height || 0)) / maxCpuUtilization + ); cpuAbilityContext2D.fillRect( cpuAbilityData.frame.x, cpuAbilityData.frame.y + cpuAbilityData.frame.height - drawHeight + 4, diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerDiskIoAbility.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerDiskIoAbility.ts index c3b650ff..f8987b41 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerDiskIoAbility.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerDiskIoAbility.ts @@ -55,7 +55,9 @@ export class DiskIoAbilityRender extends Render { let find = false; for (let re of diskIoFilter) { DiskAbilityMonitorStruct.draw(req.context, re, req.maxDiskRate, diskIoAbilityRow.isHover); - if (diskIoAbilityRow.isHover && re.frame && + if ( + diskIoAbilityRow.isHover && + re.frame && isFrameContainPoint(re.frame, diskIoAbilityRow.hoverX, diskIoAbilityRow.hoverY) ) { DiskAbilityMonitorStruct.hoverDiskAbilityStruct = re; @@ -255,7 +257,9 @@ export class DiskAbilityMonitorStruct extends BaseStruct { if (diskIoAbilityData.startNS === DiskAbilityMonitorStruct.hoverDiskAbilityStruct?.startNS && isHover) { diskIoAbilityContext.lineWidth = 1; diskIoAbilityContext.globalAlpha = 0.6; - let drawHeight: number = Math.floor(((diskIoAbilityData.value || 0) * (diskIoAbilityData.frame.height || 0) * 1.0) / maxDiskRate); + let drawHeight: number = Math.floor( + ((diskIoAbilityData.value || 0) * (diskIoAbilityData.frame.height || 0) * 1.0) / maxDiskRate + ); diskIoAbilityContext.fillRect( diskIoAbilityData.frame.x, diskIoAbilityData.frame.y + diskIoAbilityData.frame.height - drawHeight + 4, @@ -275,14 +279,22 @@ export class DiskAbilityMonitorStruct extends BaseStruct { diskIoAbilityContext.globalAlpha = 1.0; diskIoAbilityContext.stroke(); diskIoAbilityContext.beginPath(); - diskIoAbilityContext.moveTo(diskIoAbilityData.frame.x + 3, diskIoAbilityData.frame.y + diskIoAbilityData.frame.height - drawHeight + 4); + diskIoAbilityContext.moveTo( + diskIoAbilityData.frame.x + 3, + diskIoAbilityData.frame.y + diskIoAbilityData.frame.height - drawHeight + 4 + ); diskIoAbilityContext.lineWidth = 3; - diskIoAbilityContext.lineTo(diskIoAbilityData.frame.x + width, diskIoAbilityData.frame.y + diskIoAbilityData.frame.height - drawHeight + 4); + diskIoAbilityContext.lineTo( + diskIoAbilityData.frame.x + width, + diskIoAbilityData.frame.y + diskIoAbilityData.frame.height - drawHeight + 4 + ); diskIoAbilityContext.stroke(); } else { diskIoAbilityContext.globalAlpha = 0.6; diskIoAbilityContext.lineWidth = 1; - let drawHeight: number = Math.floor(((diskIoAbilityData.value || 0) * (diskIoAbilityData.frame.height || 0)) / maxDiskRate); + let drawHeight: number = Math.floor( + ((diskIoAbilityData.value || 0) * (diskIoAbilityData.frame.height || 0)) / maxDiskRate + ); diskIoAbilityContext.fillRect( diskIoAbilityData.frame.x, diskIoAbilityData.frame.y + diskIoAbilityData.frame.height - drawHeight + 4, diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerEnergySystem.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerEnergySystem.ts index ffe72d25..f0b07418 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerEnergySystem.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerEnergySystem.ts @@ -82,9 +82,12 @@ export class EnergySystemRender extends Render { } if (!find && row.isHover) EnergySystemStruct.hoverEnergySystemStruct = undefined; if (EnergySystemStruct.hoverEnergySystemStruct) { - EnergySystemStruct.hoverEnergySystemStruct!.workScheduler = energySystemData.workScheduler == undefined ? '0' : energySystemData.workScheduler; - EnergySystemStruct.hoverEnergySystemStruct!.power = energySystemData.power == undefined ? '0' : energySystemData.power; - EnergySystemStruct.hoverEnergySystemStruct!.location = energySystemData.location == undefined ? '0' : energySystemData.location; + EnergySystemStruct.hoverEnergySystemStruct!.workScheduler = + energySystemData.workScheduler == undefined ? '0' : energySystemData.workScheduler; + EnergySystemStruct.hoverEnergySystemStruct!.power = + energySystemData.power == undefined ? '0' : energySystemData.power; + EnergySystemStruct.hoverEnergySystemStruct!.location = + energySystemData.location == undefined ? '0' : energySystemData.location; } let spApplication = document.getElementsByTagName('sp-application')[0]; let isDark = spApplication.hasAttribute('dark'); diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerFileSystem.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerFileSystem.ts index a4374793..1cf4f75e 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerFileSystem.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerFileSystem.ts @@ -39,8 +39,9 @@ export class FileSystemRender extends PerfRender { let groupBy10MS = (TraceRow.range?.scale || 50) > 40_000_000; let isDiskIO: boolean = req.type.includes('disk-io'); if (list && fileSystemRow.dataList2.length === 0) { - fileSystemRow.dataList2 = isDiskIO ? - FileSysChartStruct.groupBy10MSWithMaxLatency(list) : FileSysChartStruct.groupBy10MSWithCount(list); + fileSystemRow.dataList2 = isDiskIO + ? FileSysChartStruct.groupBy10MSWithMaxLatency(list) + : FileSysChartStruct.groupBy10MSWithCount(list); } fileSysChart( list, @@ -59,7 +60,10 @@ export class FileSystemRender extends PerfRender { let find = false; let hoverRect: FileSysChartStruct | undefined = undefined; for (let re of filter) { - if (fileSystemRow.isHover && re.frame && fileSystemRow.hoverX >= re.frame.x && + if ( + fileSystemRow.isHover && + re.frame && + fileSystemRow.hoverX >= re.frame.x && fileSystemRow.hoverX <= re.frame.x + re.frame.width ) { if (hoverRect == undefined || re.size! > hoverRect.size!) { diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerFrameAnimation.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerFrameAnimation.ts index 97ac6161..e433354d 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerFrameAnimation.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerFrameAnimation.ts @@ -42,8 +42,11 @@ export class FrameAnimationRender extends Render { for (let index: number = 0; index < frameAnimationFilter.length; index++) { let currentAnimationStruct: FrameAnimationStruct = frameAnimationFilter[index]; FrameAnimationStruct.draw(req.context, index, currentAnimationStruct, row); - if (row.isHover && currentAnimationStruct.frame && - isFrameContainPoint(currentAnimationStruct.frame, row.hoverX, row.hoverY)) { + if ( + row.isHover && + currentAnimationStruct.frame && + isFrameContainPoint(currentAnimationStruct.frame, row.hoverX, row.hoverY) + ) { FrameAnimationStruct.hoverFrameAnimationStruct = currentAnimationStruct; find = true; } @@ -75,15 +78,23 @@ export class FrameAnimationRender extends Render { if (frameAnimationList) { for (let index: number = 0; index < frameAnimationList.length; index++) { let currentFrameAnimation: FrameAnimationStruct = frameAnimationList[index]; - if ((currentFrameAnimation.startTs || 0) + (currentFrameAnimation.dur || 0) > startNS && - (currentFrameAnimation.startTs || 0) < endNS) { - FrameAnimationStruct.setFrameAnimation(currentFrameAnimation, padding, startNS, - endNS || 0, totalNS || 0, frame); + if ( + (currentFrameAnimation.startTs || 0) + (currentFrameAnimation.dur || 0) > startNS && + (currentFrameAnimation.startTs || 0) < endNS + ) { + FrameAnimationStruct.setFrameAnimation( + currentFrameAnimation, + padding, + startNS, + endNS || 0, + totalNS || 0, + frame + ); frameAnimationFilter.push(currentFrameAnimation); } } } - }; + } } export class FrameAnimationStruct extends BaseStruct { @@ -118,8 +129,8 @@ export class FrameAnimationStruct extends BaseStruct { } else { stateEndPointX = ns2x((animationNode.startTs || 0) + (animationNode.dur || 0), startNS, endNS, totalNS, frame); } - let frameWidth: number = stateEndPointX - stateStartPointX <= unitIndex ? unitIndex : - stateEndPointX - stateStartPointX; + let frameWidth: number = + stateEndPointX - stateStartPointX <= unitIndex ? unitIndex : stateEndPointX - stateStartPointX; if (!animationNode.frame) { animationNode.frame = new Rect(0, 0, 0, 0); } @@ -143,24 +154,43 @@ export class FrameAnimationStruct extends BaseStruct { ctx.lineWidth = 1; ctx.lineJoin = 'round'; ctx.fillStyle = ColorUtils.ANIMATION_COLOR[6]; - ctx.fillRect(frameAnimationNode.frame.x, frameAnimationNode.frame.y, - frameAnimationNode.frame.width, frameAnimationNode.frame.height); + ctx.fillRect( + frameAnimationNode.frame.x, + frameAnimationNode.frame.y, + frameAnimationNode.frame.width, + frameAnimationNode.frame.height + ); ctx.fillStyle = ColorUtils.ANIMATION_COLOR[3]; ctx.textBaseline = 'middle'; ctx.font = '8px sans-serif'; - drawString(ctx, `${frameAnimationNode.status} (${(frameAnimationNode.dur / nsToMillisecond). - toFixed(tsFixed)} ms)`, textPadding, frameAnimationNode.frame, frameAnimationNode); + drawString( + ctx, + `${frameAnimationNode.status} (${(frameAnimationNode.dur / nsToMillisecond).toFixed(tsFixed)} ms)`, + textPadding, + frameAnimationNode.frame, + frameAnimationNode + ); ctx.lineWidth = 2; - if ((frameAnimationNode === FrameAnimationStruct.hoverFrameAnimationStruct && isHover) || - frameAnimationNode === FrameAnimationStruct.selectFrameAnimationStruct) { + if ( + (frameAnimationNode === FrameAnimationStruct.hoverFrameAnimationStruct && isHover) || + frameAnimationNode === FrameAnimationStruct.selectFrameAnimationStruct + ) { ctx.globalAlpha = 0.8; ctx.strokeStyle = ColorUtils.ANIMATION_COLOR[3]; - ctx.strokeRect(frameAnimationNode.frame.x + padding, frameAnimationNode.frame.y, - frameAnimationNode.frame.width - padding, frameAnimationNode.frame.height); + ctx.strokeRect( + frameAnimationNode.frame.x + padding, + frameAnimationNode.frame.y, + frameAnimationNode.frame.width - padding, + frameAnimationNode.frame.height + ); } else { ctx.strokeStyle = ColorUtils.ANIMATION_COLOR[2]; - ctx.strokeRect(frameAnimationNode.frame.x + padding, frameAnimationNode.frame.y, - frameAnimationNode.frame.width - padding, frameAnimationNode.frame.height); + ctx.strokeRect( + frameAnimationNode.frame.x + padding, + frameAnimationNode.frame.y, + frameAnimationNode.frame.width - padding, + frameAnimationNode.frame.height + ); } } } diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerFrameDynamic.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerFrameDynamic.ts index 3cb515ac..68c4b83e 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerFrameDynamic.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerFrameDynamic.ts @@ -68,8 +68,9 @@ export class FrameDynamicRender extends Render { selectUnitWidth: number ): boolean { let find: boolean = false; - let findStructList = frameDynamicFilter.filter(filter => - row.isHover && isSurroundingPoint(row.hoverX, filter.frame!, selectUnitWidth / multiple)); + let findStructList = frameDynamicFilter.filter( + (filter) => row.isHover && isSurroundingPoint(row.hoverX, filter.frame!, selectUnitWidth / multiple) + ); if (findStructList.length > 0) { find = true; let hoverIndex: number = 0; @@ -111,34 +112,56 @@ export class FrameDynamicRender extends Render { break; } } - if (currentDynamic.ts < startNS && (dataIndex + unitIndex) < frameDynamicList.length && - frameDynamicList[dataIndex + unitIndex].ts >= startNS && currentDynamic.groupId !== invalidGroupId) { - this.refreshFilterDynamicFrame(frameDynamicFilter, currentDynamic, row.frame, startNS, - endNS, totalNS, groupIdList); + if ( + currentDynamic.ts < startNS && + dataIndex + unitIndex < frameDynamicList.length && + frameDynamicList[dataIndex + unitIndex].ts >= startNS && + currentDynamic.groupId !== invalidGroupId + ) { + this.refreshFilterDynamicFrame( + frameDynamicFilter, + currentDynamic, + row.frame, + startNS, + endNS, + totalNS, + groupIdList + ); } if (currentDynamic.ts >= startNS && currentDynamic.ts <= endNS && currentDynamic.groupId !== invalidGroupId) { - this.refreshFilterDynamicFrame(frameDynamicFilter, currentDynamic, row.frame, startNS, - endNS, totalNS, groupIdList); + this.refreshFilterDynamicFrame( + frameDynamicFilter, + currentDynamic, + row.frame, + startNS, + endNS, + totalNS, + groupIdList + ); } if (currentDynamic.ts >= endNS && currentDynamic.groupId !== invalidGroupId) { - this.refreshFilterDynamicFrame(frameDynamicFilter, currentDynamic, row.frame, startNS, - endNS, totalNS, groupIdList); + this.refreshFilterDynamicFrame( + frameDynamicFilter, + currentDynamic, + row.frame, + startNS, + endNS, + totalNS, + groupIdList + ); break; } } } this.setSimpleGroupId(groupIdList, frameDynamicFilter); } - }; + } - private setSimpleGroupId( - groupIdList: number[], - frameDynamicFilter: FrameDynamicStruct[] - ): void { - let simpleGroup = groupIdList.filter(groupId => { + private setSimpleGroupId(groupIdList: number[], frameDynamicFilter: FrameDynamicStruct[]): void { + let simpleGroup = groupIdList.filter((groupId) => { return groupId !== invalidGroupId && groupIdList.indexOf(groupId) === groupIdList.lastIndexOf(groupId); }); - frameDynamicFilter.forEach(dynamic => { + frameDynamicFilter.forEach((dynamic) => { if (simpleGroup.indexOf(dynamic.groupId!) > invalidGroupId) { dynamic.groupId = 0; } @@ -160,7 +183,7 @@ export class FrameDynamicRender extends Render { FrameDynamicStruct.setFrameDynamic(frameDynamicNode, startNS, endNS, totalNS, frame); } } - }; + } private drawSinglePoint( ctx: CanvasRenderingContext2D, @@ -173,8 +196,10 @@ export class FrameDynamicRender extends Render { let smallArcRadius: number = 2; // @ts-ignore currDynamic.typeValue = currDynamic[modelType]; - currDynamic.frame!.y = row.frame.height - padding - - ((row.frame.height - padding * multiple) * ((currDynamic.typeValue || 0) - minValue) / (maxValue - minValue)); + currDynamic.frame!.y = + row.frame.height - + padding - + ((row.frame.height - padding * multiple) * ((currDynamic.typeValue || 0) - minValue)) / (maxValue - minValue); ctx.beginPath(); ctx.lineWidth = 1; ctx.globalAlpha = 1; @@ -199,7 +224,7 @@ export class FrameDynamicRender extends Render { let pointY = (row.frame.height - padding * multiple) * ((currDynamicValue - minValue) / (maxValue - minValue)); curDynamic.frame.y = row.frame.height - padding - pointY; } - }; + } private drawDynamicPointYStr( ctx: CanvasRenderingContext2D, @@ -218,7 +243,7 @@ export class FrameDynamicRender extends Render { let pointYInterval = totalValue / (yScaleNumber - unitIndex); for (let index = 0; index < yScaleNumber; index++) { let pointYValue = minValue + pointYInterval * index; - let pointYHeight = (frame.height - padding * multiple) * (pointYValue - minValue) / totalValue; + let pointYHeight = ((frame.height - padding * multiple) * (pointYValue - minValue)) / totalValue; let pointY = frame.height - multiple * padding - pointYHeight; if (pointYValue !== 0) { if (maxValue - minValue <= minUnitValue) { @@ -229,20 +254,23 @@ export class FrameDynamicRender extends Render { } } } - }; + } - private getMinAndMaxData( - frameDynamicFilter: FrameDynamicStruct[], - modelType: string - ): [number, number] { - let min: number = Math.min.apply(Math, frameDynamicFilter.map(filterData => { - // @ts-ignore - return filterData[modelType]; - })); - let max: number = Math.max.apply(Math, frameDynamicFilter.map(filterData => { - // @ts-ignore - return filterData[modelType]; - })); + private getMinAndMaxData(frameDynamicFilter: FrameDynamicStruct[], modelType: string): [number, number] { + let min: number = Math.min.apply( + Math, + frameDynamicFilter.map((filterData) => { + // @ts-ignore + return filterData[modelType]; + }) + ); + let max: number = Math.max.apply( + Math, + frameDynamicFilter.map((filterData) => { + // @ts-ignore + return filterData[modelType]; + }) + ); let yScaleMinValue: number = 1; let yScaleMinSpacing: number = 10; @@ -259,7 +287,7 @@ export class FrameDynamicRender extends Render { } } return [min, max]; - }; + } private refreshFilterDynamicFrame( frameDynamicFilter: FrameDynamicStruct[], @@ -273,7 +301,7 @@ export class FrameDynamicRender extends Render { groupIdList.push(currentFrameDynamic.groupId!); frameDynamicFilter.push(currentFrameDynamic); FrameDynamicStruct.setFrameDynamic(currentFrameDynamic, startNS, endNS, totalNS, frame); - }; + } } export class FrameDynamicStruct extends BaseStruct { @@ -339,8 +367,10 @@ export class FrameDynamicStruct extends BaseStruct { currDynamicStruct: FrameDynamicStruct, row: TraceRow ): void { - if ((currDynamicStruct === FrameDynamicStruct.hoverFrameDynamicStruct && row.isHover) || - currDynamicStruct === FrameDynamicStruct.selectFrameDynamicStruct) { + if ( + (currDynamicStruct === FrameDynamicStruct.hoverFrameDynamicStruct && row.isHover) || + currDynamicStruct === FrameDynamicStruct.selectFrameDynamicStruct + ) { FrameDynamicStruct.drawSelectOrHoverArc(ctx, currDynamicStruct); } if (row.getAttribute('check-type') === '2' && FrameDynamicStruct.isSelect(currDynamicStruct)) { @@ -348,13 +378,12 @@ export class FrameDynamicStruct extends BaseStruct { } } - static drawSelectOrHoverArc( - ctx: CanvasRenderingContext2D, - currDynamicStruct: FrameDynamicStruct - ): void { - if (currDynamicStruct.frame && + static drawSelectOrHoverArc(ctx: CanvasRenderingContext2D, currDynamicStruct: FrameDynamicStruct): void { + if ( + currDynamicStruct.frame && currDynamicStruct.ts > TraceRow.range!.startNS && - currDynamicStruct.ts < TraceRow.range!.endNS) { + currDynamicStruct.ts < TraceRow.range!.endNS + ) { let bigArcRadius: number = 3; ctx.beginPath(); ctx.lineWidth = 3; @@ -368,11 +397,13 @@ export class FrameDynamicStruct extends BaseStruct { } static isSelect(currDynamicStruct: FrameDynamicStruct): boolean | 0 | undefined { - return TraceRow.rangeSelectObject && + return ( + TraceRow.rangeSelectObject && TraceRow.rangeSelectObject.startNS && TraceRow.rangeSelectObject.endNS && currDynamicStruct.ts >= TraceRow.rangeSelectObject.startNS && - currDynamicStruct.ts <= TraceRow.rangeSelectObject.endNS; + currDynamicStruct.ts <= TraceRow.rangeSelectObject.endNS + ); } } diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerFrameSpacing.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerFrameSpacing.ts index 0a72036e..adc11530 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerFrameSpacing.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerFrameSpacing.ts @@ -24,8 +24,8 @@ export class FrameSpacingRender extends Render { useCache: boolean; context: CanvasRenderingContext2D; type: string; - frameRate: number - animationRanges: AnimationRanges[] + frameRate: number; + animationRanges: AnimationRanges[]; }, row: TraceRow ): void { @@ -44,29 +44,47 @@ export class FrameSpacingRender extends Render { this.render(req, frameSpacingFilter, row); } - private render(req: { useCache: boolean; context: CanvasRenderingContext2D; type: string; frameRate: number; - animationRanges: AnimationRanges[] }, frameSpacingFilter: Array, - row: TraceRow) : void { + private render( + req: { + useCache: boolean; + context: CanvasRenderingContext2D; + type: string; + frameRate: number; + animationRanges: AnimationRanges[]; + }, + frameSpacingFilter: Array, + row: TraceRow + ): void { if (req.animationRanges.length > 0 && req.animationRanges[0] && frameSpacingFilter.length > 0) { let preFrameSpacing: FrameSpacingStruct = frameSpacingFilter[0]; // @ts-ignore let smallTickStandard = smallTick[req.frameRate]; - let [minValue, maxValue] = this.maxMinData(smallTickStandard.firstLine, - smallTickStandard.thirdLine, frameSpacingFilter); + let [minValue, maxValue] = this.maxMinData( + smallTickStandard.firstLine, + smallTickStandard.thirdLine, + frameSpacingFilter + ); let isDraw = false; let selectUnitWidth: number = 0; for (let index: number = 0; index < frameSpacingFilter.length; index++) { let currentStruct = frameSpacingFilter[index]; - selectUnitWidth = computeUnitWidth(preFrameSpacing.currentTs, currentStruct.currentTs, - row.frame.width, selectUnitWidth); + selectUnitWidth = computeUnitWidth( + preFrameSpacing.currentTs, + currentStruct.currentTs, + row.frame.width, + selectUnitWidth + ); FrameSpacingStruct.refreshHoverStruct(preFrameSpacing, currentStruct, row, minValue, maxValue); if (currentStruct.groupId === 0) { if (currentStruct.currentTs > TraceRow.range!.startNS && currentStruct.currentTs < TraceRow.range!.endNS) { isDraw = true; this.drawPoint(req.context, currentStruct, row, minValue, maxValue); } - } else if (currentStruct.groupId !== invalidGroupId && index > 0 && - currentStruct.groupId === preFrameSpacing!.groupId) { + } else if ( + currentStruct.groupId !== invalidGroupId && + index > 0 && + currentStruct.groupId === preFrameSpacing!.groupId + ) { isDraw = true; FrameSpacingStruct.draw(req.context, preFrameSpacing, currentStruct, row, minValue, maxValue); } @@ -76,8 +94,9 @@ export class FrameSpacingRender extends Render { if (isDraw) { this.drawDashedLines(Object.values(smallTickStandard), req, row, minValue, maxValue); } - let findStructList = frameSpacingFilter.filter(filter => - row.isHover && isSurroundingPoint(row.hoverX, filter.frame!, selectUnitWidth / multiple)); + let findStructList = frameSpacingFilter.filter( + (filter) => row.isHover && isSurroundingPoint(row.hoverX, filter.frame!, selectUnitWidth / multiple) + ); let find = false; if (findStructList.length > 0) { find = true; @@ -93,11 +112,20 @@ export class FrameSpacingRender extends Render { } } - private drawPoint(ctx: CanvasRenderingContext2D, currentStruct: FrameSpacingStruct, - row: TraceRow, minValue: number, maxValue: number): void { - let currentPointY = row.frame.height - Math.floor((currentStruct.frameSpacingResult! - - minValue) * (row.frame.height - padding * multiple) / - (maxValue - minValue)) - padding; + private drawPoint( + ctx: CanvasRenderingContext2D, + currentStruct: FrameSpacingStruct, + row: TraceRow, + minValue: number, + maxValue: number + ): void { + let currentPointY = + row.frame.height - + Math.floor( + ((currentStruct.frameSpacingResult! - minValue) * (row.frame.height - padding * multiple)) / + (maxValue - minValue) + ) - + padding; ctx.beginPath(); ctx.lineWidth = 1; ctx.globalAlpha = 1; @@ -155,8 +183,12 @@ export class FrameSpacingRender extends Render { break; } } - if (item.currentTs < startNS && index + unitIndex < frameSpacingList.length && - frameSpacingList[index + unitIndex].currentTs >= startNS && item.groupId !== invalidGroupId) { + if ( + item.currentTs < startNS && + index + unitIndex < frameSpacingList.length && + frameSpacingList[index + unitIndex].currentTs >= startNS && + item.groupId !== invalidGroupId + ) { this.refreshFrame(frameSpacingFilter, item, startNS, endNS, totalNS, frame, groupIdList); } if (item.currentTs >= startNS && item.currentTs <= endNS && item.groupId !== invalidGroupId) { @@ -173,10 +205,10 @@ export class FrameSpacingRender extends Render { } private grouping(groupIdList: number[], frameSpacingFilter: Array): void { - let simpleGroup = groupIdList.filter(groupId => { + let simpleGroup = groupIdList.filter((groupId) => { return groupId !== invalidGroupId && groupIdList.indexOf(groupId) === groupIdList.lastIndexOf(groupId); }); - frameSpacingFilter.forEach(frameSpacing => { + frameSpacingFilter.forEach((frameSpacing) => { if (simpleGroup.indexOf(frameSpacing.groupId!) > invalidGroupId) { frameSpacing.groupId = 0; frameSpacing.frameSpacingResult = 0; @@ -189,20 +221,33 @@ export class FrameSpacingRender extends Render { }); } - private refreshFrame(frameSpacingFilter: Array, item: FrameSpacingStruct, - startNS: number, endNS: number, totalNS: number, frame: Rect, groupIdList: number[]): void { + private refreshFrame( + frameSpacingFilter: Array, + item: FrameSpacingStruct, + startNS: number, + endNS: number, + totalNS: number, + frame: Rect, + groupIdList: number[] + ): void { frameSpacingFilter.push(item); FrameSpacingStruct.setFrameSpacingFrame(item, startNS, endNS, totalNS, frame); groupIdList.push(item.groupId!); } private maxMinData(tickStandardMin: number, tickStandardMax: number, filter: FrameSpacingStruct[]): [number, number] { - let min = Math.min.apply(Math, filter.map(filterData => { - return filterData.frameSpacingResult!; - })); - let max = Math.max.apply(Math, filter.map(filterData => { - return filterData.frameSpacingResult!; - })); + let min = Math.min.apply( + Math, + filter.map((filterData) => { + return filterData.frameSpacingResult!; + }) + ); + let max = Math.max.apply( + Math, + filter.map((filterData) => { + return filterData.frameSpacingResult!; + }) + ); if (max < tickStandardMax) { max = tickStandardMax + padding; } @@ -247,22 +292,33 @@ export class FrameSpacingStruct extends BaseStruct { frameSpacingNode.frame.x = Math.floor(pointX); } - static isSelect(currSpacingStruct: FrameSpacingStruct) : boolean | 0 | undefined { - return TraceRow.rangeSelectObject && + static isSelect(currSpacingStruct: FrameSpacingStruct): boolean | 0 | undefined { + return ( + TraceRow.rangeSelectObject && TraceRow.rangeSelectObject.startNS && TraceRow.rangeSelectObject.endNS && currSpacingStruct.currentTs >= TraceRow.rangeSelectObject.startNS && - currSpacingStruct.currentTs <= TraceRow.rangeSelectObject.endNS; + currSpacingStruct.currentTs <= TraceRow.rangeSelectObject.endNS + ); } - static refreshHoverStruct(preFrameSpacing: FrameSpacingStruct, frameSpacing: FrameSpacingStruct, - row: TraceRow, minValue: number, maxValue: number): void { + static refreshHoverStruct( + preFrameSpacing: FrameSpacingStruct, + frameSpacing: FrameSpacingStruct, + row: TraceRow, + minValue: number, + maxValue: number + ): void { if (frameSpacing.frame) { - frameSpacing.frame.y = row.frame.height - Math.floor((frameSpacing.frameSpacingResult! - - minValue) * (row.frame.height - padding * multiple) / - (maxValue - minValue)) - padding; + frameSpacing.frame.y = + row.frame.height - + Math.floor( + ((frameSpacing.frameSpacingResult! - minValue) * (row.frame.height - padding * multiple)) / + (maxValue - minValue) + ) - + padding; } - }; + } static draw( ctx: CanvasRenderingContext2D, @@ -277,13 +333,20 @@ export class FrameSpacingStruct extends BaseStruct { } } - static drawSelect(currentStruct: FrameSpacingStruct, ctx: CanvasRenderingContext2D, - rowFrame: TraceRow): void { - if (currentStruct.frame && + static drawSelect( + currentStruct: FrameSpacingStruct, + ctx: CanvasRenderingContext2D, + rowFrame: TraceRow + ): void { + if ( + currentStruct.frame && currentStruct.currentTs > TraceRow.range!.startNS && - currentStruct.currentTs < TraceRow.range!.endNS) { - if ((currentStruct === FrameSpacingStruct.hoverFrameSpacingStruct && rowFrame.isHover) || - currentStruct === FrameSpacingStruct.selectFrameSpacingStruct) { + currentStruct.currentTs < TraceRow.range!.endNS + ) { + if ( + (currentStruct === FrameSpacingStruct.hoverFrameSpacingStruct && rowFrame.isHover) || + currentStruct === FrameSpacingStruct.selectFrameSpacingStruct + ) { ctx.lineWidth = 3; ctx.beginPath(); ctx.arc(currentStruct.frame.x, currentStruct.frame.y, selectRadius, 0, multiple * Math.PI); @@ -318,8 +381,10 @@ export class FrameSpacingStruct extends BaseStruct { minValue: number, maxValue: number ): void { - let pointY = rowFrame.height - Math.floor((dashedLines[index] - minValue) * - (rowFrame.height - padding * multiple) / (maxValue - minValue)) - padding; + let pointY = + rowFrame.height - + Math.floor(((dashedLines[index] - minValue) * (rowFrame.height - padding * multiple)) / (maxValue - minValue)) - + padding; let lineDash = 10; let textPadding = 4; ctx.beginPath(); @@ -351,12 +416,20 @@ export class FrameSpacingStruct extends BaseStruct { maxValue: number ): void { ctx.beginPath(); - let prePointY = rowFrame.frame.height - Math.floor((preFrameSpacing.frameSpacingResult! - - minValue) * (rowFrame.frame.height - padding * multiple) / - (maxValue - minValue)) - padding; - let currentPointY = rowFrame.frame.height - Math.floor((currentStruct.frameSpacingResult! - - minValue) * (rowFrame.frame.height - padding * multiple) / - (maxValue - minValue)) - padding; + let prePointY = + rowFrame.frame.height - + Math.floor( + ((preFrameSpacing.frameSpacingResult! - minValue) * (rowFrame.frame.height - padding * multiple)) / + (maxValue - minValue) + ) - + padding; + let currentPointY = + rowFrame.frame.height - + Math.floor( + ((currentStruct.frameSpacingResult! - minValue) * (rowFrame.frame.height - padding * multiple)) / + (maxValue - minValue) + ) - + padding; if (preFrameSpacing.frame && currentStruct.frame) { ctx.strokeStyle = ColorUtils.ANIMATION_COLOR[2]; ctx.fillStyle = ColorUtils.ANIMATION_COLOR[2]; @@ -381,16 +454,16 @@ const smallTick = { 60: { firstLine: 11.4, secondLine: 13, - thirdLine: 14.6 + thirdLine: 14.6, }, 90: { firstLine: 13.7, secondLine: 19.4, - thirdLine: 25 + thirdLine: 25, }, 120: { firstLine: 13.7, secondLine: 19.4, - thirdLine: 25 - } + thirdLine: 25, + }, }; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfEvent.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfEvent.ts index 88ea697e..ba3749ef 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfEvent.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfEvent.ts @@ -14,12 +14,7 @@ */ import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; -import { - hiPerf, - HiPerfStruct, - PerfRender, - RequestMessage, -} from './ProcedureWorkerCommon.js'; +import { hiPerf, HiPerfStruct, PerfRender, RequestMessage } from './ProcedureWorkerCommon.js'; import { TraceRow } from '../../component/trace/base/TraceRow.js'; export class HiperfEventRender extends PerfRender { diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfProcess.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfProcess.ts index 0666b49e..fb79f363 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfProcess.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfProcess.ts @@ -14,12 +14,7 @@ */ import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; -import { - hiPerf, - HiPerfStruct, - PerfRender, - RequestMessage, -} from './ProcedureWorkerCommon.js'; +import { hiPerf, HiPerfStruct, PerfRender, RequestMessage } from './ProcedureWorkerCommon.js'; import { TraceRow } from '../../component/trace/base/TraceRow.js'; export class HiperfProcessRender extends PerfRender { diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfReport.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfReport.ts index 3e78457c..7c5756ea 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfReport.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfReport.ts @@ -13,10 +13,10 @@ * limitations under the License. */ -import {ColorUtils} from '../../component/trace/base/ColorUtils.js'; -import {HiPerfStruct, PerfRender, RequestMessage,} from './ProcedureWorkerCommon.js'; +import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; +import { HiPerfStruct, PerfRender, RequestMessage } from './ProcedureWorkerCommon.js'; -import {TraceRow} from '../../component/trace/base/TraceRow.js'; +import { TraceRow } from '../../component/trace/base/TraceRow.js'; export class HiperfReportRender extends PerfRender { renderMainThread(hiPerfReportReq: any, row: TraceRow): void { @@ -127,7 +127,8 @@ export function HiPerfReport( if (hiPerfFilters.length == 0) { hiPerfFilters.push(current); } - if (hiPerfFilters[hiPerfFilters.length - 1] && + if ( + hiPerfFilters[hiPerfFilters.length - 1] && Math.abs(current.frame.x - hiPerfFilters[hiPerfFilters.length - 1].frame.x) > 4 ) { hiPerfFilters.push(current); diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfThread.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfThread.ts index b005cdad..012890c8 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfThread.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerHiPerfThread.ts @@ -14,12 +14,7 @@ */ import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; -import { - hiPerf, - HiPerfStruct, - PerfRender, - RequestMessage, -} from './ProcedureWorkerCommon.js'; +import { hiPerf, HiPerfStruct, PerfRender, RequestMessage } from './ProcedureWorkerCommon.js'; import { TraceRow } from '../../component/trace/base/TraceRow.js'; export class HiperfThreadRender extends PerfRender { @@ -68,8 +63,7 @@ export class HiperfThreadRender extends PerfRender { hiPerfThreadReq.context.closePath(); } - render(req: RequestMessage, list: Array, filter: Array, dataList2: Array): void { - } + render(req: RequestMessage, list: Array, filter: Array, dataList2: Array): void {} } export class HiPerfThreadStruct extends HiPerfStruct { diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerJank.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerJank.ts index 7dab688b..88924004 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerJank.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerJank.ts @@ -16,14 +16,7 @@ import { JanksStruct } from '../../bean/JanksStruct.js'; import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; import { TraceRow } from '../../component/trace/base/TraceRow.js'; -import { - BaseStruct, - isFrameContainPoint, - ns2x, - Render, - RequestMessage, - drawString, -} from './ProcedureWorkerCommon.js'; +import { BaseStruct, isFrameContainPoint, ns2x, Render, RequestMessage, drawString } from './ProcedureWorkerCommon.js'; export class JankRender extends Render { renderMainThread( @@ -87,7 +80,7 @@ export function jank( use: boolean ): void { if (use && jankFilter.length > 0) { - for (let i = 0, len = jankFilter.length ; i < len ; i++) { + for (let i = 0, len = jankFilter.length; i < len; i++) { if ((jankFilter[i].ts || 0) + (jankFilter[i].dur || 0) >= startNS && (jankFilter[i].ts || 0) <= endNS) { JankStruct.setJankFrame(jankFilter[i], 0, startNS, endNS, totalNS, frame); } else { @@ -105,7 +98,7 @@ export function jank( return it; }) .reduce((pre, current, index, arr) => { - (pre[`${ current.frame.x }-${ current.depth }`] = pre[`${ current.frame.x }-${ current.depth }`] || []).push(current); + (pre[`${current.frame.x}-${current.depth}`] = pre[`${current.frame.x}-${current.depth}`] || []).push(current); return pre; }, {}); Reflect.ownKeys(groups).map((kv) => { @@ -120,7 +113,14 @@ export class JankStruct extends JanksStruct { static selectJankStruct: JankStruct | undefined; static selectJankStructList: Array = new Array(); - static setJankFrame(jankNode: any, padding: number, startNS: number, endNS: number, totalNS: number, frame: any): void { + static setJankFrame( + jankNode: any, + padding: number, + startNS: number, + endNS: number, + totalNS: number, + frame: any + ): void { let x1: number, x2: number; if ((jankNode.ts || 0) > startNS && (jankNode.ts || 0) < endNS) { x1 = ns2x(jankNode.ts || 0, startNS, endNS, totalNS, frame); @@ -170,7 +170,7 @@ export class JankStruct extends JanksStruct { } if (data.frame.width > 10) { ctx.fillStyle = '#fff'; - drawString(ctx, `${ data.name || '' }`, 5, data.frame, data); + drawString(ctx, `${data.name || ''}`, 5, data.frame, data); } if (JankStruct.isSelected(data)) { ctx.strokeStyle = '#000'; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerLog.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerLog.ts index 64c5eda9..88fad80c 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerLog.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerLog.ts @@ -13,11 +13,11 @@ * limitations under the License. */ -import {TraceRow} from '../../component/trace/base/TraceRow.js'; +import { TraceRow } from '../../component/trace/base/TraceRow.js'; import { ns2x, Rect, Render } from './ProcedureWorkerCommon.js'; -import {BaseStruct} from '../../bean/BaseStruct.js'; -import {ColorUtils} from "../../component/trace/base/ColorUtils.js"; +import { BaseStruct } from '../../bean/BaseStruct.js'; +import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; const LOG_STRUCT_HEIGHT = 7; const X_PADDING = 5; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerMemoryAbility.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerMemoryAbility.ts index 64895a77..1183cbe0 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerMemoryAbility.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerMemoryAbility.ts @@ -55,7 +55,9 @@ export class MemoryAbilityRender extends Render { let find = false; for (let re of memoryAbilityFilter) { MemoryAbilityMonitorStruct.draw(req.context, re, req.maxMemoryByte, memoryAbilityRow.isHover); - if (memoryAbilityRow.isHover && re.frame && + if ( + memoryAbilityRow.isHover && + re.frame && isFrameContainPoint(re.frame, memoryAbilityRow.hoverX, memoryAbilityRow.hoverY) ) { MemoryAbilityMonitorStruct.hoverMemoryAbilityStruct = re; @@ -264,7 +266,9 @@ export class MemoryAbilityMonitorStruct extends BaseStruct { if (memoryAbilityData.startNS === MemoryAbilityMonitorStruct.hoverMemoryAbilityStruct?.startNS && isHover) { memoryAbilityContext2D.lineWidth = 1; memoryAbilityContext2D.globalAlpha = 0.6; - let drawHeight: number = Math.floor(((memoryAbilityData.value || 0) * (memoryAbilityData.frame.height || 0) * 1.0) / maxMemoryByte); + let drawHeight: number = Math.floor( + ((memoryAbilityData.value || 0) * (memoryAbilityData.frame.height || 0) * 1.0) / maxMemoryByte + ); memoryAbilityContext2D.fillRect( memoryAbilityData.frame.x, memoryAbilityData.frame.y + memoryAbilityData.frame.height - drawHeight + 4, @@ -284,14 +288,22 @@ export class MemoryAbilityMonitorStruct extends BaseStruct { memoryAbilityContext2D.globalAlpha = 1.0; memoryAbilityContext2D.stroke(); memoryAbilityContext2D.beginPath(); - memoryAbilityContext2D.moveTo(memoryAbilityData.frame.x + 3, memoryAbilityData.frame.y + memoryAbilityData.frame.height - drawHeight + 4); + memoryAbilityContext2D.moveTo( + memoryAbilityData.frame.x + 3, + memoryAbilityData.frame.y + memoryAbilityData.frame.height - drawHeight + 4 + ); memoryAbilityContext2D.lineWidth = 3; - memoryAbilityContext2D.lineTo(memoryAbilityData.frame.x + width, memoryAbilityData.frame.y + memoryAbilityData.frame.height - drawHeight + 4); + memoryAbilityContext2D.lineTo( + memoryAbilityData.frame.x + width, + memoryAbilityData.frame.y + memoryAbilityData.frame.height - drawHeight + 4 + ); memoryAbilityContext2D.stroke(); } else { memoryAbilityContext2D.globalAlpha = 0.6; memoryAbilityContext2D.lineWidth = 1; - let drawHeight: number = Math.floor(((memoryAbilityData.value || 0) * (memoryAbilityData.frame.height || 0)) / maxMemoryByte); + let drawHeight: number = Math.floor( + ((memoryAbilityData.value || 0) * (memoryAbilityData.frame.height || 0)) / maxMemoryByte + ); memoryAbilityContext2D.fillRect( memoryAbilityData.frame.x, memoryAbilityData.frame.y + memoryAbilityData.frame.height - drawHeight + 4, diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerNetworkAbility.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerNetworkAbility.ts index 0f3de43f..f98577c5 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerNetworkAbility.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerNetworkAbility.ts @@ -43,7 +43,9 @@ export class NetworkAbilityRender extends Render { let find = false; for (let re of networkAbilityFilter) { NetworkAbilityMonitorStruct.draw(req.context, re, req.maxNetworkRate, networkAbilityRow.isHover); - if (networkAbilityRow.isHover && re.frame && + if ( + networkAbilityRow.isHover && + re.frame && isFrameContainPoint(re.frame, networkAbilityRow.hoverX, networkAbilityRow.hoverY) ) { NetworkAbilityMonitorStruct.hoverNetworkAbilityStruct = re; @@ -89,7 +91,9 @@ export class NetworkAbilityMonitorStruct extends BaseStruct { if (networkAbilityData.startNS === NetworkAbilityMonitorStruct.hoverNetworkAbilityStruct?.startNS && isHover) { networkAbilityContext2D.lineWidth = 1; networkAbilityContext2D.globalAlpha = 0.6; - let drawHeight: number = Math.floor(((networkAbilityData.value || 0) * (networkAbilityData.frame.height || 0) * 1.0) / maxNetworkRate); + let drawHeight: number = Math.floor( + ((networkAbilityData.value || 0) * (networkAbilityData.frame.height || 0) * 1.0) / maxNetworkRate + ); networkAbilityContext2D.fillRect( networkAbilityData.frame.x, networkAbilityData.frame.y + networkAbilityData.frame.height - drawHeight + 4, @@ -109,14 +113,22 @@ export class NetworkAbilityMonitorStruct extends BaseStruct { networkAbilityContext2D.globalAlpha = 1.0; networkAbilityContext2D.stroke(); networkAbilityContext2D.beginPath(); - networkAbilityContext2D.moveTo(networkAbilityData.frame.x + 3, networkAbilityData.frame.y + networkAbilityData.frame.height - drawHeight + 4); + networkAbilityContext2D.moveTo( + networkAbilityData.frame.x + 3, + networkAbilityData.frame.y + networkAbilityData.frame.height - drawHeight + 4 + ); networkAbilityContext2D.lineWidth = 3; - networkAbilityContext2D.lineTo(networkAbilityData.frame.x + width, networkAbilityData.frame.y + networkAbilityData.frame.height - drawHeight + 4); + networkAbilityContext2D.lineTo( + networkAbilityData.frame.x + width, + networkAbilityData.frame.y + networkAbilityData.frame.height - drawHeight + 4 + ); networkAbilityContext2D.stroke(); } else { networkAbilityContext2D.globalAlpha = 0.6; networkAbilityContext2D.lineWidth = 1; - let drawHeight: number = Math.floor(((networkAbilityData.value || 0) * (networkAbilityData.frame.height || 0)) / maxNetworkRate); + let drawHeight: number = Math.floor( + ((networkAbilityData.value || 0) * (networkAbilityData.frame.height || 0)) / maxNetworkRate + ); networkAbilityContext2D.fillRect( networkAbilityData.frame.x, networkAbilityData.frame.y + networkAbilityData.frame.height - drawHeight + 4, diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerSnapshot.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerSnapshot.ts index 43e059d4..de73ab6c 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerSnapshot.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerSnapshot.ts @@ -32,7 +32,14 @@ export class SnapshotRender extends Render { for (let item of list) { maxValue = Math.max(maxValue, item.value || 0); } - snapshot(list, filter, maxValue, TraceRow.range?.startNS ?? 0, (TraceRow.range?.endNS ?? 0) - (TraceRow.range?.startNS! ?? 0), row.frame); + snapshot( + list, + filter, + maxValue, + TraceRow.range?.startNS ?? 0, + (TraceRow.range?.endNS ?? 0) - (TraceRow.range?.startNS! ?? 0), + row.frame + ); req.context!.beginPath(); let find = false; for (let re of filter) { diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerSoInit.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerSoInit.ts index 9ad9548d..1bb93b1e 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerSoInit.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerSoInit.ts @@ -15,14 +15,7 @@ import { ColorUtils } from '../../component/trace/base/ColorUtils.js'; import { TraceRow } from '../../component/trace/base/TraceRow.js'; -import { - BaseStruct, - isFrameContainPoint, - ns2x, - Render, - RequestMessage, - drawString, -} from './ProcedureWorkerCommon.js'; +import { BaseStruct, isFrameContainPoint, ns2x, Render, RequestMessage, drawString } from './ProcedureWorkerCommon.js'; export class SoRender extends Render { renderMainThread( @@ -85,7 +78,7 @@ export function soDataFilter( use: boolean ): void { if (use && soFilter.length > 0) { - for (let i = 0, len = soFilter.length ; i < len ; i++) { + for (let i = 0, len = soFilter.length; i < len; i++) { if ((soFilter[i].startTs || 0) + (soFilter[i].dur || 0) >= startNS && (soFilter[i].startTs || 0) <= endNS) { SoStruct.setSoFrame(soFilter[i], 0, startNS, endNS, totalNS, frame); } else { @@ -104,7 +97,7 @@ export function soDataFilter( }) .reduce((pre: any, current, index, arr) => { if (current.frame) { - (pre[`${ current.frame.x }-${ current.depth }`] = pre[`${ current.frame.x }-${ current.depth }`] || []).push(current); + (pre[`${current.frame.x}-${current.depth}`] = pre[`${current.frame.x}-${current.depth}`] || []).push(current); } return pre; }, {}); @@ -136,10 +129,7 @@ export class SoStruct extends BaseStruct { } else { x1 = 0; } - if ( - (soNode.startTs || 0) + (soNode.dur || 0) > startNS && - (soNode.startTs || 0) + (soNode.dur || 0) < endNS - ) { + if ((soNode.startTs || 0) + (soNode.dur || 0) > startNS && (soNode.startTs || 0) + (soNode.dur || 0) < endNS) { x2 = ns2x((soNode.startTs || 0) + (soNode.dur || 0), startNS, endNS, totalNS, frame); } else { x2 = frame.width; @@ -158,7 +148,6 @@ export class SoStruct extends BaseStruct { if (data.frame) { if (data.dur === undefined || data.dur === null) { } else { - ctx.globalAlpha = 1; ctx.fillStyle = ColorUtils.FUNC_COLOR[ColorUtils.hashFunc(data.soName || '', 0, ColorUtils.FUNC_COLOR.length)]; let textColor = ColorUtils.FUNC_COLOR[ColorUtils.hashFunc(data.soName || '', 0, ColorUtils.FUNC_COLOR.length)]; @@ -172,7 +161,7 @@ export class SoStruct extends BaseStruct { ctx.lineWidth = 1; ctx.strokeRect(data.frame.x, data.frame.y, data.frame.width, miniHeight - padding * 2); ctx.fillStyle = ColorUtils.funcTextColor(textColor); - drawString(ctx, `${ data.soName || '' }`, 5, data.frame, data); + drawString(ctx, `${data.soName || ''}`, 5, data.frame, data); } if (data === SoStruct.selectSoStruct) { ctx.strokeStyle = '#000'; @@ -182,7 +171,6 @@ export class SoStruct extends BaseStruct { } } } - } const padding = 1; -- Gitee From 92e10b896eef54a2d4ec2ae58a1f7341f4334be9 Mon Sep 17 00:00:00 2001 From: zhangzepeng Date: Sat, 7 Oct 2023 10:01:53 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix.=E7=A4=BE=E5=8C=BA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangzepeng --- ide/src/base-ui/table/lit-table.ts | 46 +++--- ide/src/base-ui/tree/LitTree.ts | 114 +++++++------ ide/src/base-ui/tree/LitTreeNode.ts | 86 +++++----- ide/src/base-ui/utils/CSVFormater.ts | 31 ++-- ide/src/doc/quickstart_animation.html | 45 +++-- ide/src/doc/quickstart_app_startup.html | 46 ++++-- ide/src/doc/quickstart_arkts.html | 43 +++-- ide/src/doc/quickstart_memory_template.html | 76 ++++++--- ide/src/doc/quickstart_taskpool.html | 31 ++-- ide/src/trace/component/SpRecordTrace.ts | 8 +- ide/src/trace/component/Utils.ts | 14 +- .../component/chart/SpAbilityMonitorChart.ts | 45 ++--- ide/src/trace/component/chart/SpArkTsChart.ts | 18 +- .../trace/component/chart/SpFrameTimeChart.ts | 12 +- ide/src/trace/component/chart/SpHiPerf.ts | 2 +- .../trace/component/chart/SpProcessChart.ts | 12 +- .../trace/component/chart/SpVmTrackerChart.ts | 33 ++-- .../component/trace/TimerShaftElement.ts | 44 ++--- .../trace/component/trace/base/TraceRow.ts | 60 +++---- .../component/trace/base/TraceRowConfig.ts | 4 +- .../trace/component/trace/base/TraceSheet.ts | 156 +++++++++--------- ide/src/trace/component/trace/base/Utils.ts | 44 ++--- .../trace/component/trace/sheet/SheetUtils.ts | 10 +- .../trace/sheet/TabPaneCurrentSelection.ts | 14 +- .../ability/TabPaneDmaAbilityComparison.ts | 10 +- .../sheet/ability/TabPaneDmaSelectAbility.ts | 4 +- .../sheet/ability/TabPaneGpuMemoryAbility.ts | 4 +- .../ability/TabPaneGpuMemoryComparison.ts | 8 +- .../ability/TabPaneGpuMemorySelectAbility.ts | 4 +- .../trace/sheet/ability/TabPanePurgPin.ts | 11 +- .../TabPanePurgPinComparisonAbility.ts | 13 +- .../sheet/ability/TabPanePurgPinSelection.ts | 6 +- .../trace/sheet/ability/TabPanePurgTotal.ts | 11 +- .../TabPanePurgTotalComparisonAbility.ts | 13 +- .../ability/TabPanePurgTotalSelection.ts | 6 +- .../trace/sheet/ark-ts/TabPaneComparison.ts | 26 +-- .../trace/sheet/ark-ts/TabPaneJsCpu.ts | 44 ++--- .../sheet/ark-ts/TabPaneJsCpuBottomUp.ts | 4 +- .../sheet/ark-ts/TabPaneJsCpuCallTree.ts | 4 +- .../sheet/ark-ts/TabPaneJsCpuStatistics.ts | 18 +- .../trace/sheet/ark-ts/TabPaneSummary.ts | 20 +-- .../sheet/energy/TabPaneEnergyAnomaly.ts | 2 +- .../sheet/energy/TabPaneSystemDetails.ts | 2 +- .../sheet/file-system/TabPaneCallTree.ts | 44 ++--- .../TabPaneIOTierStatisticsAnalysis.ts | 10 +- .../trace/sheet/frame/TabFrameSpacing.ts | 4 +- .../trace/sheet/frame/TabPaneFrameDynamic.ts | 8 +- .../trace/sheet/gpu/TabPaneGpuClickSelect.ts | 6 +- .../gpu/TabPaneGpuClickSelectComparison.ts | 12 +- .../component/trace/sheet/gpu/TabPaneGpuGL.ts | 4 +- .../sheet/gpu/TabPaneGpuTotalBoxSelect.ts | 4 +- .../sheet/gpu/TabPaneGpuWindowBoxSelect.ts | 4 +- .../trace/sheet/hiperf/TabPerfBottomUp.ts | 18 +- .../trace/sheet/hiperf/TabPerfProfile.ts | 38 ++--- .../sheet/native-memory/TabPaneNMemory.ts | 44 ++--- .../sheet/smaps/TabPaneSmapsComparison.ts | 15 +- .../trace/sheet/smaps/TabPaneSmapsRecord.ts | 6 +- .../sheet/smaps/TabPaneSmapsStatistics.ts | 10 +- .../trace/sheet/task/TabPaneTaskFrames.ts | 4 +- .../vmtracker/TabPaneDmaSelectVmTracker.ts | 6 +- .../sheet/vmtracker/TabPaneDmaVmTracker.ts | 6 +- .../TabPaneDmaVmTrackerComparison.ts | 12 +- .../TabPaneGpuMemorySelectVmTracker.ts | 6 +- .../vmtracker/TabPaneGpuMemoryVmTracker.ts | 4 +- .../TabPaneGpuMemoryVmTrackerComparison.ts | 10 +- .../vmtracker/TabPanePurgPinComparisonVM.ts | 13 +- .../vmtracker/TabPanePurgTotalComparisonVM.ts | 13 +- .../sheet/vmtracker/TabPaneVmTrackerShm.ts | 4 +- .../TabPaneVmTrackerShmComparison.ts | 14 +- .../component/trace/timer-shaft/RangeRuler.ts | 46 +++--- ide/src/trace/database/SqlLite.ts | 22 ++- ide/src/trace/database/SqlLiteWorker.ts | 10 +- ide/src/trace/database/TraceWorker.ts | 2 +- .../ProcedureLogicWorkerCommon.ts | 2 +- .../ProcedureLogicWorkerFileSystem.ts | 4 +- .../ProcedureLogicWorkerJsCpuProfiler.ts | 8 +- .../ProcedureLogicWorkerNativeNemory.ts | 14 +- .../logic-worker/ProcedureLogicWorkerPerf.ts | 26 +-- .../ui-worker/ProcedureWorkerCommon.ts | 12 +- .../ui-worker/ProcedureWorkerCpuProfiler.ts | 30 ++-- .../ui-worker/ProcedureWorkerEnergySystem.ts | 30 ++-- .../ui-worker/ProcedureWorkerFrameDynamic.ts | 2 +- .../ui-worker/ProcedureWorkerFrameSpacing.ts | 2 +- .../database/ui-worker/ProcedureWorkerFunc.ts | 4 +- .../ui-worker/ProcedureWorkerHeapTimeline.ts | 4 +- .../ui-worker/ProcedureWorkerHiPerfCPU.ts | 4 +- .../ui-worker/ProcedureWorkerHiPerfReport.ts | 4 +- .../ui-worker/ProcedureWorkerTimeline.ts | 4 +- .../ui-worker/ProduceWorkerSdkCounter.ts | 4 +- 89 files changed, 943 insertions(+), 814 deletions(-) diff --git a/ide/src/base-ui/table/lit-table.ts b/ide/src/base-ui/table/lit-table.ts index 0b294fc0..439aee91 100644 --- a/ide/src/base-ui/table/lit-table.ts +++ b/ide/src/base-ui/table/lit-table.ts @@ -998,7 +998,7 @@ export class LitTable extends HTMLElement { return visibleObjects; } - newTableRowObject(item: any, totalHeight: number, depth: number, parentNode?: TableRowObject) { + newTableRowObject(item: any, totalHeight: number, depth: number, parentNode?: TableRowObject): TableRowObject { let tableRowObject = new TableRowObject(); tableRowObject.depth = depth; tableRowObject.data = item; @@ -1894,24 +1894,24 @@ export class LitTable extends HTMLElement { ); } - setCurrentSelection(selectionData: any) { + setCurrentSelection(selectionData: any): void { if (this.isRecycleList) { - if (selectionData.isSelected != undefined) { + if (selectionData.isSelected !== undefined) { this.currentTreeDivList.forEach((itemEl) => { - if ((itemEl as any).data == selectionData) { + if ((itemEl as any).data === selectionData) { this.setSelectedRow(selectionData.isSelected, [itemEl]); } }); this.currentRecycleList.forEach((recycleItem) => { - if ((recycleItem as any).data == selectionData) { + if ((recycleItem as any).data === selectionData) { this.setSelectedRow(selectionData.isSelected, [recycleItem]); } }); } } else { - if (selectionData.isSelected != undefined) { + if (selectionData.isSelected !== undefined) { this.normalDs.forEach((item) => { - if ((item as any).data == selectionData) { + if ((item as any).data === selectionData) { this.setSelectedRow(selectionData.isSelected, [item]); } }); @@ -1919,27 +1919,27 @@ export class LitTable extends HTMLElement { } } - setCurrentHover(data: any) { + setCurrentHover(data: any): void { if (this.isRecycleList) { this.setMouseIn(false, this.currentTreeDivList); this.setMouseIn(false, this.currentRecycleList); - if (data.isHover != undefined) { + if (data.isHover !== undefined) { this.currentTreeDivList.forEach((hoverItem) => { - if ((hoverItem as any).data == data) { + if ((hoverItem as any).data === data) { this.setMouseIn(data.isHover, [hoverItem]); } }); this.currentRecycleList.forEach((hoverItem) => { - if ((hoverItem as any).data == data) { + if ((hoverItem as any).data === data) { this.setMouseIn(data.isHover, [hoverItem]); } }); } } else { this.setMouseIn(false, this.normalDs); - if (data.isHover != undefined) { - this.normalDs.forEach((item) => { - if ((item as any).data == data) { + if (data.isHover !== undefined) { + this.normalDs.forEach((item): void => { + if ((item as any).data === data) { this.setMouseIn(data.isHover, [item]); } }); @@ -1947,13 +1947,13 @@ export class LitTable extends HTMLElement { } } - dispatchRowClickEventIcon(rowData: any, elements: any[]) { + dispatchRowClickEventIcon(rowData: any, elements: any[]): void { this.dispatchEvent( new CustomEvent('icon-click', { detail: { ...rowData.data, data: rowData.data, - callBack: (isSelected: boolean) => { + callBack: (isSelected: boolean): void => { //是否爲单选 if (isSelected) { this.clearAllSelection(rowData.data); @@ -1966,13 +1966,13 @@ export class LitTable extends HTMLElement { ); } - dispatchRowClickEvent(rowObject: any, elements: any[]) { + dispatchRowClickEvent(rowObject: any, elements: any[]): void { this.dispatchEvent( new CustomEvent('row-click', { detail: { ...rowObject.data, data: rowObject.data, - callBack: (isSelected: boolean) => { + callBack: (isSelected: boolean): void => { //是否爲单选 if (isSelected) { this.clearAllSelection(rowObject.data); @@ -1985,12 +1985,12 @@ export class LitTable extends HTMLElement { ); } - dispatchRowHoverEvent(rowObject: any, elements: any[]) { + dispatchRowHoverEvent(rowObject: any, elements: any[]): void { this.dispatchEvent( new CustomEvent('row-hover', { detail: { data: rowObject.data, - callBack: () => { + callBack: (): void => { this.clearAllHover(rowObject.data); this.setMouseIn(rowObject.data.isHover, elements); }, @@ -2000,7 +2000,7 @@ export class LitTable extends HTMLElement { ); } - formatName(key: string, name: any) { + formatName(key: string, name: any): any { let content = name; if (this.itemTextHandleMap.has(key)) { content = this.itemTextHandleMap.get(key)?.(name) || ''; @@ -2011,7 +2011,7 @@ export class LitTable extends HTMLElement { return ''; } - setHighLight(isSearch: boolean, element: any) { + setHighLight(isSearch: boolean, element: any): void { if (isSearch) { element.setAttribute('high-light', ''); } else { @@ -2019,7 +2019,7 @@ export class LitTable extends HTMLElement { } } - createTextColor(rowData: any, divElement: any) { + createTextColor(rowData: any, divElement: any): void { let nodeText = document.createElement('text'); nodeText.classList.add('functionName'); nodeText.textContent = rowData.data.name; diff --git a/ide/src/base-ui/tree/LitTree.ts b/ide/src/base-ui/tree/LitTree.ts index 4252aeab..9890d8bb 100644 --- a/ide/src/base-ui/tree/LitTree.ts +++ b/ide/src/base-ui/tree/LitTree.ts @@ -15,7 +15,7 @@ import './LitTreeNode.js'; import { BaseElement, element } from '../BaseElement.js'; -import { LitTreeNode } from './LitTreeNode.js'; +import { type LitTreeNode } from './LitTreeNode.js'; export interface TreeItemData { key: string; @@ -37,7 +37,7 @@ export class LitTree extends BaseElement { private srcDragElement: any; private dragDirection: string | null | undefined; - static get observedAttributes() { + static get observedAttributes(): string[] { return ['show-line', 'show-icon', 'checkable', 'foldable', 'dragable', 'multiple']; //foldable 表示点击目录是否可以折叠 } @@ -49,10 +49,10 @@ export class LitTree extends BaseElement { /*双向绑定*/ const handler = { - get: (target: any, propkey: any) => { + get: (target: any, propkey: any): any => { return target[propkey]; }, - set: (target: any, propkey: any, value: any, receiver: any) => { + set: (target: any, propkey: any, value: any, receiver: any): boolean => { if (target[propkey] !== value) { if (!value.children) { value.children = new Proxy([], handler); @@ -80,7 +80,7 @@ export class LitTree extends BaseElement { return true; }, }; - let setProxy = (v: Array) => { + let setProxy = (v: Array): void => { v.forEach((a) => { if (!a.children) { a.children = new Proxy([], handler); @@ -102,11 +102,11 @@ export class LitTree extends BaseElement { } } - get multiple() { + get multiple(): boolean { return this.hasAttribute('multiple'); } - get treeData() { + get treeData(): TreeItemData[] { return this.proxyData; } @@ -127,8 +127,8 @@ export class LitTree extends BaseElement { } //当 custom element首次被插入文档DOM时,被调用。 - connectedCallback() { - this.onclick = (ev) => { + connectedCallback(): void { + this.onclick = (ev): void => { this.contextMenu!.style.display = 'none'; this.currentSelectedData = null; this.currentSelectedNode = null; @@ -136,27 +136,27 @@ export class LitTree extends BaseElement { }; } - getCheckdKeys() { + getCheckdKeys(): any[] { return Array.from(this.shadowRoot!.querySelectorAll('lit-tree-node[checked]')).map((a: any) => a.data.key); } - getCheckdNodes() { + getCheckdNodes(): any[] { return Array.from(this.shadowRoot!.querySelectorAll('lit-tree-node[checked]')).map((a: any) => a.data); } //展开所有节点 - expandKeys(keys: Array) { + expandKeys(keys: Array): void { keys.forEach((k) => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => b.expand())); } //收起所有节点 - collapseKeys(keys: Array) { + collapseKeys(keys: Array): void { keys.forEach((k) => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => b.collapse()) ); } - checkedKeys(keys: Array) { + checkedKeys(keys: Array): void { keys.forEach((k) => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => { b.setAttribute('checked', 'true'); @@ -165,7 +165,7 @@ export class LitTree extends BaseElement { ); } - uncheckedKeys(keys: Array) { + uncheckedKeys(keys: Array): void { keys.forEach((k) => this.shadowRoot!.querySelectorAll(`lit-tree-node[key='${k}']`).forEach((b: any) => { b.removeAttribute('checked'); @@ -175,7 +175,7 @@ export class LitTree extends BaseElement { ); } - drawTree(parent: any, array: Array, topDepth: boolean = false) { + drawTree(parent: any, array: Array, topDepth: boolean = false): void { let that = this; array.forEach((a) => { let li = document.createElement('li'); @@ -201,7 +201,7 @@ export class LitTree extends BaseElement { node.selected = a.selected || false; //是否选中行 node.checked = a.checked || false; // 是否勾选 node.data = a; - node.addEventListener('change', (e: any) => { + node.addEventListener('change', (e: any): void => { if (e.detail && !this.multiple) { this.nodeList.forEach((item) => { item.checked = item.data!.key === node.data!.key; @@ -251,7 +251,7 @@ export class LitTree extends BaseElement { } node.arrow = false; } - li.onclick = (e) => { + li.onclick = (e): void => { e.stopPropagation(); if (this.hasAttribute('foldable')) { // @ts-ignore @@ -269,7 +269,7 @@ export class LitTree extends BaseElement { } }; // node 添加右键菜单功能 - node.oncontextmenu = (ev) => { + node.oncontextmenu = (ev): void => { ev.preventDefault(); this.selectedNode(node); this.currentSelectedNode = node; @@ -279,7 +279,7 @@ export class LitTree extends BaseElement { this.contextMenu!.style.top = ev.pageY + 'px'; }; }); - this.oncontextmenu = (ev) => { + this.oncontextmenu = (ev): void => { ev.preventDefault(); this.contextMenu!.style.display = 'block'; this.contextMenu!.style.left = ev.pageX + 'px'; @@ -288,7 +288,7 @@ export class LitTree extends BaseElement { } //取消所有节点的选中状态 然后选中当前node节点 - selectedNode(node: LitTreeNode | null | undefined) { + selectedNode(node: LitTreeNode | null | undefined): void { this.shadowRoot!.querySelectorAll('lit-tree-node').forEach((a) => { a.selected = false; }); @@ -297,32 +297,34 @@ export class LitTree extends BaseElement { } } - closeContextMenu() { + closeContextMenu(): void { this.contextMenu!.style.display = 'none'; } - onDrag(e: MouseEvent) {} + onDrag(e: MouseEvent): void {} - onDragStart(ev: MouseEvent) { + onDragStart(ev: MouseEvent): undefined { this.srcDragElement = ev.target; (ev.target! as LitTreeNode).open = 'true'; (ev.target! as LitTreeNode).autoExpand(); return undefined; } - onDragEnd(ev: MouseEvent) { + onDragEnd(ev: MouseEvent): undefined { this.srcDragElement = null; return undefined; } - onDragEnter(ev: MouseEvent) { + onDragEnter(ev: MouseEvent): undefined { (ev.target as LitTreeNode).style.backgroundColor = '#42b98333'; return undefined; } - onDragOver(ev: MouseEvent) { + onDragOver(ev: MouseEvent): undefined { let node = ev.target as LitTreeNode; - if (this.srcDragElement.data.key === node.data!.key) return; + if (this.srcDragElement.data.key === node.data!.key) { + return; + } let rect = (ev.currentTarget! as any).getBoundingClientRect(); if (ev.clientX >= rect.left + rect.width / 3 && ev.clientX < rect.left + rect.width) { //bottom-right @@ -340,19 +342,21 @@ export class LitTree extends BaseElement { return undefined; } - onDragLeave(ev: MouseEvent) { + onDragLeave(ev: MouseEvent): undefined { (ev.target as LitTreeNode).style.backgroundColor = '#ffffff00'; (ev.target as LitTreeNode).drawLine(''); return undefined; } - onDrop(ev: MouseEvent) { + onDrop(ev: MouseEvent): undefined { (ev.target as LitTreeNode).style.backgroundColor = '#ffffff00'; (ev.target as LitTreeNode).drawLine(''); //移动的不是node节点 而是上层的li节点 let srcData = this.srcDragElement.data; //获取原节点的data数据 let dstData = (ev.target as LitTreeNode).data; //获取目标节点的data数据 - if (srcData.key === dstData!.key) return; //同一个节点不用处理 + if (srcData.key === dstData!.key) { + return; + } //同一个节点不用处理 let srcElement = this.srcDragElement.parentElement; let srcParentElement = srcElement.parentElement; let dstElement = (ev.target as LitTreeNode).parentElement; @@ -373,9 +377,13 @@ export class LitTree extends BaseElement { } let ul1 = dstElement!.querySelector('ul'); //如果拖动后目标节点的子节点没有记录,需要关闭arrow箭头 if (ul1) { - if (ul1.childElementCount == 0) (ul1.previousElementSibling! as LitTreeNode).arrow = false; + if (ul1.childElementCount === 0) { + (ul1.previousElementSibling! as LitTreeNode).arrow = false; + } } - if (srcParentElement.childElementCount === 0) srcParentElement.previousElementSibling.arrow = false; //如果拖动的原节点的父节点没有子节点需要 关闭arrow箭头 + if (srcParentElement.childElementCount === 0) { + srcParentElement.previousElementSibling.arrow = false; + } //如果拖动的原节点的父节点没有子节点需要 关闭arrow箭头 //拖动调整结构后修改 data树形数据结构 this.removeDataNode(this._treeData, srcData); this.addDataNode(this._treeData, srcData, dstData!.key, this.dragDirection!); @@ -394,7 +402,7 @@ export class LitTree extends BaseElement { } //移除treeData中指定的节点 通过key匹配 - removeDataNode(arr: Array, d: TreeItemData) { + removeDataNode(arr: Array, d: TreeItemData): void { let delIndex = arr.findIndex((v) => v.key === d.key); if (delIndex > -1) { arr.splice(delIndex, 1); @@ -408,11 +416,13 @@ export class LitTree extends BaseElement { } //中array中匹配到key为k的节点, t='bottom-right' 把d加入到该节点的children中去 t='top' 添加到找到的节点前面 t='bottom' 添加到找到的节点后面 - addDataNode(arr: Array, d: TreeItemData, k: string, t: string) { + addDataNode(arr: Array, d: TreeItemData, k: string, t: string): void { for (let i = 0; i < arr.length; i++) { if (arr[i].key === k) { if (t === 'bottom-right') { - if (!arr[i].children) arr[i].children = []; + if (!arr[i].children) { + arr[i].children = []; + } arr[i].children!.push(d); } else if (t === 'top') { arr.splice(i, 0, d); @@ -421,12 +431,14 @@ export class LitTree extends BaseElement { } return; } else { - if (arr[i].children) this.addDataNode(arr[i].children || [], d, k, t); + if (arr[i].children) { + this.addDataNode(arr[i].children || [], d, k, t); + } } } } - insert(obj: TreeItemData) { + insert(obj: TreeItemData): void { if (this.currentSelectedData) { this.currentSelectedData.children.push(obj); } else { @@ -434,26 +446,28 @@ export class LitTree extends BaseElement { } } - _insertNode(parent: any, a: any) { - if (!parent) parent = this.shadowRoot!.querySelector('#root'); + _insertNode(parent: any, a: any): void { + if (!parent) { + parent = this.shadowRoot!.querySelector('#root'); + } let li = document.createElement('li'); let insertNode = document.createElement('lit-tree-node') as LitTreeNode; insertNode.title = a.title; insertNode.setAttribute('key', a.key); if (this.hasAttribute('dragable')) { insertNode.draggable = true; - document.ondragover = function (e) { + document.ondragover = function (e): void { e.preventDefault(); }; //在拖动目标上触发事件 (源元素) - insertNode.ondrag = (ev) => this.onDrag(ev); //元素正在拖动时触发 - insertNode.ondragstart = (ev) => this.onDragStart(ev); //用户开始拖动元素时触发 - insertNode.ondragend = (ev) => this.onDragEnd(ev); // 用户完成元素拖动后触发 + insertNode.ondrag = (ev): void => this.onDrag(ev); //元素正在拖动时触发 + insertNode.ondragstart = (ev): undefined => this.onDragStart(ev); //用户开始拖动元素时触发 + insertNode.ondragend = (ev): undefined => this.onDragEnd(ev); // 用户完成元素拖动后触发 //释放目标时触发的事件: - insertNode.ondragenter = (ev) => this.onDragEnter(ev); //当被鼠标拖动的对象进入其容器范围内时触发此事件 - insertNode.ondragover = (ev) => this.onDragOver(ev); //当某被拖动的对象在另一对象容器范围内拖动时触发此事件 - insertNode.ondragleave = (ev) => this.onDragLeave(ev); //当被鼠标拖动的对象离开其容器范围内时触发此事件 - insertNode.ondrop = (ev) => this.onDrop(ev); //在一个拖动过程中,释放鼠标键时触发此事件 + insertNode.ondragenter = (ev): undefined => this.onDragEnter(ev); //当被鼠标拖动的对象进入其容器范围内时触发此事件 + insertNode.ondragover = (ev): undefined => this.onDragOver(ev); //当某被拖动的对象在另一对象容器范围内拖动时触发此事件 + insertNode.ondragleave = (ev): undefined => this.onDragLeave(ev); //当被鼠标拖动的对象离开其容器范围内时触发此事件 + insertNode.ondrop = (ev): undefined => this.onDrop(ev); //在一个拖动过程中,释放鼠标键时触发此事件 } insertNode.selected = a.selected || false; //是否选中行 insertNode.checked = a.checked || false; // 是否勾选 @@ -502,7 +516,7 @@ export class LitTree extends BaseElement { } insertNode.arrow = false; } - li.onclick = (e) => { + li.onclick = (e): void => { e.stopPropagation(); if (this.hasAttribute('foldable')) { // @ts-ignore @@ -520,7 +534,7 @@ export class LitTree extends BaseElement { } }; // node 添加右键菜单功能 - insertNode.oncontextmenu = (ev) => { + insertNode.oncontextmenu = (ev): void => { ev.preventDefault(); this.selectedNode(insertNode); this.currentSelectedNode = insertNode; diff --git a/ide/src/base-ui/tree/LitTreeNode.ts b/ide/src/base-ui/tree/LitTreeNode.ts index e9e32c34..a8900287 100644 --- a/ide/src/base-ui/tree/LitTreeNode.ts +++ b/ide/src/base-ui/tree/LitTreeNode.ts @@ -16,9 +16,9 @@ import '../icon/LitIcon.js'; import '../checkbox/LitCheckBox.js'; import { BaseElement, element } from '../BaseElement.js'; -import { LitCheckBox } from '../checkbox/LitCheckBox.js'; -import { LitIcon } from '../icon/LitIcon.js'; -import { TreeItemData } from './LitTree.js'; +import { type LitCheckBox } from '../checkbox/LitCheckBox.js'; +import { type LitIcon } from '../icon/LitIcon.js'; +import { type TreeItemData } from './LitTree.js'; @element('lit-tree-node') export class LitTreeNode extends BaseElement { @@ -28,7 +28,7 @@ export class LitTreeNode extends BaseElement { private iconElement: LitIcon | null | undefined; private _data: TreeItemData | null | undefined; - static get observedAttributes() { + static get observedAttributes(): string[] { return [ 'icon-name', 'icon-size', @@ -45,7 +45,7 @@ export class LitTreeNode extends BaseElement { ]; } - get checkable() { + get checkable(): string { return this.getAttribute('checkable') || 'false'; } @@ -53,7 +53,7 @@ export class LitTreeNode extends BaseElement { this._data = value; } - get data() { + get data(): TreeItemData | null | undefined { return this._data; } @@ -73,11 +73,11 @@ export class LitTreeNode extends BaseElement { } } - get multiple() { + get multiple(): boolean { return this.hasAttribute('multiple'); } - get iconName() { + get iconName(): string { return this.getAttribute('icon-name') || ''; } @@ -85,7 +85,7 @@ export class LitTreeNode extends BaseElement { this.setAttribute('icon-name', value); } - get topDepth() { + get topDepth(): boolean { return this.hasAttribute('top-depth'); } @@ -97,7 +97,7 @@ export class LitTreeNode extends BaseElement { } } - get arrow() { + get arrow(): boolean { return this.hasAttribute('arrow'); } @@ -109,7 +109,7 @@ export class LitTreeNode extends BaseElement { } } - get open() { + get open(): string { return this.getAttribute('open') || 'true'; } @@ -117,7 +117,7 @@ export class LitTreeNode extends BaseElement { this.setAttribute('open', value); } - get selected() { + get selected(): boolean { return this.hasAttribute('selected'); } @@ -129,7 +129,7 @@ export class LitTreeNode extends BaseElement { } } - get checked() { + get checked(): boolean { return this.hasAttribute('checked'); } @@ -146,26 +146,26 @@ export class LitTreeNode extends BaseElement { this.iconElement = this.shadowRoot!.querySelector('#icon'); this.itemElement = this.shadowRoot!.querySelector('#item'); this.checkboxElement = this.shadowRoot!.querySelector('#checkbox'); - this.arrowElement!.onclick = (e) => { + this.arrowElement!.onclick = (e): void => { e.stopPropagation(); this.autoExpand(); }; - this.checkboxElement!.onchange = (e: any) => { + this.checkboxElement!.onchange = (e: any): boolean => { e.stopPropagation(); this.onChange(e.detail.checked); return false; }; //这里需要给checkbox 添加onclick时间 并停止冒泡,不然onchange事件会触发父节点中的 onclick事件 - this.checkboxElement!.onclick = (e) => { + this.checkboxElement!.onclick = (e): void => { e.stopPropagation(); }; - this.itemElement!.onclick = (e) => { + this.itemElement!.onclick = (e): void => { e.stopPropagation(); this.onChange(!this.data?.checked); }; } - onChange(checked: boolean) { + onChange(checked: boolean): void { this.checked = checked; this.data!.checked = checked; this.checkHandler(); @@ -335,12 +335,14 @@ export class LitTreeNode extends BaseElement { } //当 custom element首次被插入文档DOM时,被调用。 - connectedCallback() { - if (this.hasAttribute('checked')) this.checkboxElement!.checked = true; + connectedCallback(): void { + if (this.hasAttribute('checked')) { + this.checkboxElement!.checked = true; + } this.checkHandler(); } - checkHandler() { + checkHandler(): void { if (this.checked) { this.removeAttribute('missing'); } @@ -355,7 +357,7 @@ export class LitTreeNode extends BaseElement { this.nextElementSibling.querySelectorAll('lit-tree-node').forEach((a: any) => (a.checked = false)); } } - let setCheckStatus = (element: any) => { + let setCheckStatus = (element: any): void => { if ( element.parentElement.parentElement.previousElementSibling && element.parentElement.parentElement.previousElementSibling.tagName === 'LIT-TREE-NODE' @@ -383,21 +385,25 @@ export class LitTreeNode extends BaseElement { } } - expand() { - if (this.open === 'true') return; + expand(): void { + if (this.open === 'true') { + return; + } let uul = this.parentElement!.querySelector('ul'); this.expandSection(uul); this.arrowElement!.style.transform = 'translateX(-50%) rotateZ(0deg)'; } - collapse() { - if (this.open === 'false') return; + collapse(): void { + if (this.open === 'false') { + return; + } let uul = this.parentElement!.querySelector('ul'); this.collapseSection(uul); this.arrowElement!.style.transform = 'translateX(-50%) rotateZ(-90deg)'; } - autoExpand() { + autoExpand(): void { let uul = this.parentElement!.querySelector('ul'); if (this.open === 'true') { this.collapseSection(uul); @@ -409,8 +415,10 @@ export class LitTreeNode extends BaseElement { } //收起 - collapseSection(element: any) { - if (!element) return; + collapseSection(element: any): void { + if (!element) { + return; + } let sectionHeight = element.scrollHeight; let elementTransition = element.style.transition; element.style.transition = ''; @@ -425,11 +433,13 @@ export class LitTreeNode extends BaseElement { } //展开 - expandSection(element: any) { - if (!element) return; + expandSection(element: any): void { + if (!element) { + return; + } let sectionHeight = element.scrollHeight; element.style.height = sectionHeight + 'px'; - element.ontransitionend = (e: any) => { + element.ontransitionend = (e: any): void => { element.ontransitionend = null; element.style.height = null; this.open = 'true'; @@ -437,13 +447,13 @@ export class LitTreeNode extends BaseElement { } //当 custom element从文档DOM中删除时,被调用。 - disconnectedCallback() {} + disconnectedCallback(): void {} //当 custom element被移动到新的文档时,被调用。 - adoptedCallback() {} + adoptedCallback(): void {} //当 custom element增加、删除、修改自身属性时,被调用。 - attributeChangedCallback(name: string, oldValue: any, newValue: any) { + attributeChangedCallback(name: string, oldValue: any, newValue: any): void { if (name === 'title') { this.shadowRoot!.querySelector('#title')!.textContent = newValue; } else if (name === 'icon-name') { @@ -471,9 +481,11 @@ export class LitTreeNode extends BaseElement { } //在node top top-right bottom bottom-right 画线条 - drawLine(direction: string /*string[top|bottom|top-right|bottom-right]*/) { + drawLine(direction: string /*string[top|bottom|top-right|bottom-right]*/): void { let item = this.shadowRoot!.querySelector('#item'); - if (!item) return; + if (!item) { + return; + } item.removeAttribute('line-top'); item.removeAttribute('line-top-right'); item.removeAttribute('line-bottom'); diff --git a/ide/src/base-ui/utils/CSVFormater.ts b/ide/src/base-ui/utils/CSVFormater.ts index 8686b11c..3bbc8235 100644 --- a/ide/src/base-ui/utils/CSVFormater.ts +++ b/ide/src/base-ui/utils/CSVFormater.ts @@ -14,14 +14,16 @@ */ export class JSONToCSV { - static setCsvData(obj: any) { + static setCsvData(obj: any): void { let that = this; let browserType = this.browserType(); - if (browserType['ie'] < 9) return; - let data = obj['data']; - let isShowLabel = typeof obj['showLabel'] === 'undefined' ? true : obj['showLabel']; - let fileName = (obj['fileName'] || 'UserExport') + '.csv'; - let columns = obj['columns'] || { + if (browserType.ie < 9) { + return; + } + let data = obj.data; + let isShowLabel = typeof obj.showLabel === 'undefined' ? true : obj.showLabel; + let fileName = (obj.fileName || 'UserExport') + '.csv'; + let columns = obj.columns || { title: [], key: [], formatter: undefined, @@ -77,13 +79,15 @@ export class JSONToCSV { row.slice(0, row.length - 1); // 删除最后一个, csv += row + '\r\n'; // 添加换行符号 }); - if (!csv) return; + if (!csv) { + return; + } this.saveCsvFile(fileName, csv); } - static saveCsvFile(fileName: any, csvData: any) { + static saveCsvFile(fileName: any, csvData: any): void { let browserType: any = this.browserType(); - if (!browserType['edge'] || !browserType['ie']) { + if (!browserType.edge || !browserType.ie) { let alink: any = document.createElement('a'); alink.id = 'csvDownloadLink'; alink.href = this.getDownloadUrl(csvData); @@ -92,7 +96,7 @@ export class JSONToCSV { linkDom.setAttribute('download', fileName); linkDom.click(); document.body.removeChild(linkDom); - } else if (browserType['ie'] >= 10 || browserType['edge'] == 'edge') { + } else if (browserType.ie >= 10 || browserType.edge === 'edge') { (navigator as any).msSaveBlob( new Blob(['\uFEFF' + csvData], { type: 'text/csv', @@ -118,7 +122,7 @@ export class JSONToCSV { } } - static browserType() { + static browserType(): any { let type: any = {}; let agent = navigator.userAgent.toLowerCase(); let has; @@ -164,7 +168,10 @@ export class JSONToCSV { return result; } - static columnsData(columns: Array) { + static columnsData(columns: Array): { + titleList: any[]; + ketList: any[]; + } { let titleList: Array = []; let ketList: Array = []; columns.forEach((column) => { diff --git a/ide/src/doc/quickstart_animation.html b/ide/src/doc/quickstart_animation.html index c1263cdf..19e39833 100644 --- a/ide/src/doc/quickstart_animation.html +++ b/ide/src/doc/quickstart_animation.html @@ -795,7 +795,8 @@

Animation抓取参数的配置

- GitHub Logo
+ GitHub Logo +
配置项说明:

    @@ -812,12 +813,20 @@ Animation effect:动效配置项的总开关。

    Animation泳道图展示

    - Animation的响应时延泳道图显示,泳道图的Slice会显示响应时延,如下图中的Completion delay(683.035938ms)。
    - GitHub Logo
    - Animation的动效曲线和帧间距的总泳道图,如图点击leashWindow40旁边的小齿轮可以切换leashWindow。
    - GitHub Logo
    - Animation的动效曲线泳道图展示,如下:
    - GitHub Logo
    + Animation的响应时延泳道图显示,泳道图的Slice会显示响应时延,如下图中的Completion delay(683.035938ms)。 +
    + GitHub Logo + 。 +
    + Animation的动效曲线和帧间距的总泳道图,如图点击leashWindow40旁边的小齿轮可以切换leashWindow。 +
    + GitHub Logo + 。 +
    + Animation的动效曲线泳道图展示,如下: +
    + GitHub Logo +
    泳道图说明:

      @@ -835,8 +844,10 @@ Animation Effect Curve泳道图红色的曲线代表的是异常判断点,也

    - Animation的帧间距泳道图展示,如下:
    - GitHub Logo
    + Animation的帧间距泳道图展示,如下: +
    + GitHub Logo +
    泳道图说明:

      @@ -850,7 +861,8 @@ Frame spacing泳道图显示相邻两帧在时间尺度上相对于设备物理

      动效曲线泳道图点选功能

      - 点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。
      + 点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。 +
      GitHub Logo

        @@ -876,7 +888,8 @@ Value:属性值。

        动效曲线泳道图框选功能

        - 框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。
        + 框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。 +
        GitHub Logo

          @@ -903,7 +916,8 @@ Value:属性值。

          点选帧间距泳道图,Frame - spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。
          + spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。 +
          GitHub Logo

            @@ -965,7 +979,8 @@ result:帧间距。

            帧间距泳道图框选功能

            - 框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。
            + 框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。 +
            GitHub Logo

              @@ -1029,10 +1044,10 @@ result:帧间距。 + } + }; + diff --git a/ide/src/doc/des_tables.html b/ide/src/doc/des_tables.html index db8fe5e1..99f02531 100644 --- a/ide/src/doc/des_tables.html +++ b/ide/src/doc/des_tables.html @@ -791,3913 +791,5034 @@
              -

              TraceStreamer数据表概述

              - -

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

              -

              TraceStreamer输出的数据表分类

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

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

              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              表名称作用
              app_name记录HiSysEvent事件的事件名与IDE部分事件的字段名为APPNAME中存放的相关信息的映射关系
              args记录方法参数集合
              bio_latency_sample记录IO操作相关方法调用,及调用栈数据
              callstack - 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号 -
              clk_event_filter记录时钟相关的信息
              clock_event_filter此结构用来维护时钟事件,cpu与唯一的ID做关联
              cpu_measure_filtercpu事件过滤器表
              cpu_usage记录CPU使用率事件
              data_dict记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据
              data_type记录数据类型和typeId的关联关系
              diskio记录磁盘读写数据事件
              ebpf_callstack记录了采样相关信息
              file_system_samp记录了调用栈的相关信息
              hidump记录FPS(Frame Per Second)数据
              hisys_event_measure记录了HiSysEvent事件相关数据,目前HiSysEvent事件包括了异常事件,IDE事件,器件状态事件
              instant记录Sched_waking, sched_wakeup事件, 用作ThreadState表的上下文使用
              irq记录中断相关事件
              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_filter - 记录一个递增的filterid队列,所有其他的filter类型在获取过程中,均从此数据列表中获取下一个可用的filter_id并做记录 -
              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),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 -
              symbols记录系统调用名称和其函数指针的对应关系,trace中用addr来映射function_name来节省存储空间
              syscall记录用户空间函数与内核空间函数相互调用记录
              sys_event_filter记录所有的filter
              sys_mem_measure记录了所有的系统内存相关的测量信息
              thread记录所有的线程信息
              thread_filter过滤线程
              thread_state记录线程状态信息
              trace_range记录ftrace数据与其他类型数据的时间交集,供前端展示数据时使用
              clock_snapshot时钟号和时间,时钟名的映射表
              datasource_clockid数据源和时钟号的映射表
              -

              表与事件来源

              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              表名称事件源插件名备注
              app_name-hisysevent-pluginJSON数据源
              args-ftrace-plugin配合callstack使用
              callstack-ftrace-plugin异步或非异步的调用
              cpu_measure_filter-ftrace-plugincpu跟踪器,cpu频率等
              cpu_usage-cpu-plugincpu使用率
              data_dict通用的-所有字符串的记录
              data_type通用的-辅助表
              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_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内存数据
              live_process-process-pluginMonitor数据
              network-network-pluginMonitor数据
              diskio-diskio-pluginMonitor数据
              log-hilog-plugin系统日志
              measure通用的-系统中的计量值(数值型)
              measure_filter通用的-计量值的查询辅助表
              meta通用的-记录解析现场数据(解析时间,数据类型,解析工具等)
              native_hook-nativehook/hookdaemonmalloc && mmap内存数据
              native_hook_frame-nativehook/hookdaemonnative_hook调用栈数据
              native_hook_statistic-nativehook/hookdaemonmalloc && mmap统计数据
              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_range通用的-trace数据的时长
              thread_filter通用的ftrace-plugin线程计量跟踪表(比较少用)
              clock_snapshot通用的通用的时钟号和时间,时钟名的映射表
              datasource_clockid通用的通用的数据源和时钟号的映射表
              -

              - 表格关系图 -

              - -
              -

              进程表与线程表关系

              - -

              - 当一个进程或者线程结束后,系统可能再次将该进程号或者线程号分配给其他进程或者线程,造成一个进程号或线程号代表多个进程或线程的情况。
              - 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

              -

              查询举例

              - -
                -
              • -

                - 已知同步后的时间戳为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内存数据的文件名和文件索引

              -

              1683163158954

              -

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

              -

              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
              -

              表描述

              +

              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

              +

              查询举例

              + +
                +
              • - 记录调用堆栈和异步调用信息,其中depth,stack_id和parent_stack_id仅在非异步的调用中有效。当cookid不为空时,为异步调用,此时callid为进程唯一号,否则为线程唯一号。 + 已知同步后的时间戳为28463134340470,查询采样数据
                + select * from perf_sample where timestamp_trace = 28463134340470

                -

                字段详细描述

                -
                  -
                • 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:调用栈的唯一标识。与ebpf_callstack表中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_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:调用栈父节点
                • -
                -

                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并做记录。 + 已知同步后的时间戳为28463134340470,查询采样数据对应的的调用栈信息
                + select A.* from perf_callchain as A, perf_sample as B where B.timestamp_trace = 28463134340470 and + A.sample_id = B.sample_id

                -

                字段详细描述

                +
              • +
              • - 过滤分类(type),过滤名称(key2),数据ID(key1)。
                - 数据ID在process_measure_filter, sys_event_filter中作为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

                -

                meta表

                -

                表结构

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

                表描述

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

                -

                主要字段描述

                -
                  -
                • 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工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 + 已知进程号为7863,查询所有的采样记录
                + select A.* from perf_sample as A, perf_thread as B where B.process_id = 7863 and A.thread_id = + B.thread_id

                -

                主要字段描述

                -
                  -
                • - 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表中。 + 查询所有采样对应的事件类型
                + select A.*, B.report_value from perf_sample as A, perf_report as B where A.event_type_id = B.id

                -

                主要字段描述

                -
                  -
                • 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
                -

                表描述

                +
              • +
              +

              帧渲染表之间的关系图

              + +

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

              +

              查询示例

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

                -

                字段详细描述

                -
                  -
                • 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),数据的损失等,查看此结构对应的表,可对数据源有基本的了解。 + 已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧
                + select * from frame_slice where id = 12

                -

                主要字段描述

                -
                  -
                • 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表中。 + 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长
                + select * from gpu_slice where frame_row = 14

                -

                主要字段描述

                -
                  -
                • 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状态
                +    
              • +
              +

              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状态
               "S", interruptible sleep
               "D", uninterruptible sleep
               "D-IO", uninterruptible io
               "D-NIO", uninterruptible nio
               "Runing", Runing状态
              -"I", interrupted
              -"T", Traced
              +"T", Task stoped.
              +"t"  Traced.
               "X", ExitedDead
               "Z", Zombie
              -"I", CloneThread
              -"I", TaskKilled
              +"P", Parked
              +"I", Task_Dead
               "DK",
               "DK-IO",
               "DK-NIO",
               "TK", TracedKill
              -"R", WakeKill
              -"P", Parked
              -"R+", ForeGround
              +"R+", WakeKill
              +"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 表示实际渲染帧卡帧, 2 - 表示数据不需要绘制(没有frameNum信息) -
              • -
              • 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的结束时间,纳秒为单位
              • -
              -
              - - - +

              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/md/des_tables.md b/ide/src/doc/md/des_tables.md index b6569f69..509d3a73 100644 --- a/ide/src/doc/md/des_tables.md +++ b/ide/src/doc/md/des_tables.md @@ -1,717 +1,689 @@ -# 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) - -## TraceStreamer 输出数据库包含以下表格 - -| 表名称 | 作用 | -| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -| app_name | 记录 HiSysEvent 事件的事件名与 IDE 部分事件的字段名为 APPNAME 中存放的相关信息的映射关系 | -| args | 记录方法参数集合 | -| bio_latency_sample | 记录 IO 操作相关方法调用,及调用栈数据 | -| callstack | 记录调用堆栈和异步调用信息,其中 depth,stack_id 和 parent_stack_id 仅在非异步调用中有效。当 cookid 不为空时,为异步调用,此时 callid 为进程唯一号,否则为线程唯一号 | -| clk_event_filter | 记录时钟相关的信息 | -| clock_event_filter | 此结构用来维护时钟事件,cpu 与唯一的 ID 做关联 | -| cpu_measure_filter | cpu 事件过滤器表 | -| cpu_usage | 记录 CPU 使用率事件 | -| data_dict | 记录常用的字符串,将字符串和索引关联,降低程序运行的内存占用,用作辅助数据 | -| data_type | 记录数据类型和 typeId 的关联关系 | -| diskio | 记录磁盘读写数据事件 | -| ebpf_callstack | 记录了采样相关信息 | -| file_system_samp | 记录了调用栈的相关信息 | -| hidump | 记录 FPS(Frame Per Second)数据 | -| hisys_event_measure | 记录了 HiSysEvent 事件相关数据,目前 HiSysEvent 事件包括了异常事件,IDE 事件,器件状态事件 | -| instant | 记录 Sched_waking, sched_wakeup 事件, 用作 ThreadState 表的上下文使用 | -| irq | 记录中断相关事件 | -| 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_filter | 记录一个递增的 filterid 队列,所有其他的 filter 类型在获取过程中,均从此数据列表中获取下一个可用的 filter_id 并做记录 | -| 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),数据的损失等,查看此结构对应的表,可对数据源有基本的了解 | -| symbols | 记录系统调用名称和其函数指针的对应关系,trace 中用 addr 来映射 function_name 来节省存储空间 | -| syscall | 记录用户空间函数与内核空间函数相互调用记录 | -| sys_event_filter | 记录所有的 filter | -| sys_mem_measure | 记录了所有的系统内存相关的测量信息 | -| thread | 记录所有的线程信息 | -| thread_filter | 过滤线程 | -| thread_state | 记录线程状态信息 | -| trace_range | 记录 ftrace 数据与其他类型数据的时间交集,供前端展示数据时使用 | -| clock_snapshot | 时钟号和时间,时钟名的映射表 | -| datasource_clockid | 数据源和时钟号的映射表 | - +# 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) +## 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数据与其他类型数据的时间交集,供前端展示数据时使用| ## 表与事件来源 - -| 表名称 | 事件源 | 插件名 | 备注 | -| --------------------------- | ------ | --------------------- | -------------------------------------------------- | -| app_name | - | hisysevent-plugin | JSON 数据源 | -| args | - | ftrace-plugin | 配合 callstack 使用 | -| callstack | - | ftrace-plugin | 异步或非异步的调用 | -| cpu_measure_filter | - | ftrace-plugin | cpu 跟踪器,cpu 频率等 | -| cpu_usage | - | cpu-plugin | cpu 使用率 | -| data_dict | 通用的 | - | 所有字符串的记录 | -| data_type | 通用的 | - | 辅助表 | -| 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_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 内存数据 | -| live_process | - | process-plugin | Monitor 数据 | -| network | - | network-plugin | Monitor 数据 | -| diskio | - | diskio-plugin | Monitor 数据 | -| log | - | hilog-plugin | 系统日志 | -| measure | 通用的 | - | 系统中的计量值(数值型) | -| measure_filter | 通用的 | - | 计量值的查询辅助表 | -| meta | 通用的 | - | 记录解析现场数据(解析时间,数据类型,解析工具等) | -| native_hook | - | nativehook/hookdaemon | malloc && mmap 内存数据 | -| native_hook_frame | - | nativehook/hookdaemon | native_hook 调用栈数据 | -| native_hook_statistic | - | nativehook/hookdaemon | malloc && mmap 统计数据 | -| 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_range | 通用的 | - | trace 数据的时长 | -| thread_filter | 通用的 | ftrace-plugin | 线程计量跟踪表(比较少用) | -| clock_snapshot | 通用的 | 通用的 | 时钟号和时间,时钟名的映射表 | -| datasource_clockid | 通用的 | 通用的 | 数据源和时钟号的映射表 | - -## **_表格关系图_** - +| 表名称 | 事件源 | 插件名 | 备注 | +| ---- | ---- | ---- | ---- | +|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 字段。 -thread 表通过 ipid 字段关联 process 表的 id 字段,可以查询线程归属进程。 -![GitHub Logo](../../figures/traceStreamer/process_thread.png) - +Process和Thread表中的id字段可以唯一标识进程和线程。process表中的id在其他表中用作ipid字段。thread表中的id在其他表中用作itid字段。 +thread表通过ipid字段关联process表的id字段,可以查询线程归属进程。 +![GitHub Logo](../../figures/traceStreamer/process_thread.png) ### 查询举例 - -- 已知 pid = 123,查看当前进程下的所有线程信息,可以使用如下 SQL 语句: - `select thread.* from thread, process where process.pid = 123 and thread.ipid = process.id` +- 已知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](../../figures/traceStreamer/thread_state.png) - +thread_state表记录所有线程的运行状态信息,包含ts(状态起始时间),dur(状态持续时间),cpu, itid, state(线程状态)。 thread表的id字段与thread_state表的itid字段相关联。 +![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` +- 已知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表记录堆内存申请(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) +native_hook_frame表记录内存申请/释放的调用堆栈。通过callChainId区分一组调用堆栈,depth为堆栈深度,depth为0时,表示当前行为栈顶数据。 +![GitHub Logo](../../figures/traceStreamer/dump_and_mem.png) -native_hook_statistic 表记录内存申请/释放的统计信息。通过 callChainId 区分一组调用堆栈。每个统计事件将记录当前事件的 callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。 -![GitHub Logo](../../figures/traceStreamer/db_native_hook_statistic.png) +native_hook_statistic表记录内存申请/释放的统计信息。通过callChainId区分一组调用堆栈。每个统计事件将记录当前事件的callChainId,并统计当前调用栈内存分配/释放的总次数和总大小。 +![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` -- 已知 callchainid = 1, 查看当前内存变化调用堆栈 - `select * from native_hook_frame where callchain_id = 1` -- 已知 callchainid = 1, 查看当前内存变化调用堆栈对应的统计信息 - `select * from native_hook_statistic where callchain_id = 1` +- 已知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 字段的连续性,来判断是否存在日志丢失的情况。 +log表记录日志信息。可以根据seq字段的连续性,来判断是否存在日志丢失的情况。 ![GitHub Logo](../../figures/traceStreamer/log.png) - ### 查询举例 +- 已知tid = 123,查看当前线程的所有error级别的日志,可以使用如下SQL语句: +```select * from log where tid = 123 and level = "error"``` -- 已知 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](../../figures/traceStreamer/perf.png) +### 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) ### 查询举例 +- 已知同步后的时间戳为28463134340470,查询采样数据 +```select * from perf_sample where timestamp_trace = 28463134340470``` -- 已知同步后的时间戳为 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``` -- 已知同步后的时间戳为 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``` -- 已知同步后的时间戳为 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``` -- 已知线程号为 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` +- 已知进程号为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` +```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) - +frame_slice: 记录RS(RenderService)和应用的帧渲染。 +gpu_slice: 记录RS的帧对应的gpu渲染时长。 +frame_maps:记录应用到RS的帧的映射关系。 +![GitHub Logo](../../figures/traceStreamer/frames.jpg) ### 查询示例 - - 已知进程,查询进程对应的实际渲染帧 - `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` +```select * from frame_slice where ipid = 1``` -### JS 内存数据表关系图 +- 已知进程的实际渲染帧的dst为12,求其对应的RS进程的渲染帧 +```select * from frame_slice where id = 12 ``` -js_heap_files:记录 js 内存数据的文件名和文件索引 +- 已知RS的渲染帧在frame_slice中所在行是14,求其对应的GPU渲染时长 +```select * from gpu_slice where frame_row = 14``` -![GitHub Logo](../../figures/traceStreamer/js_heap_files.png) +### JS内存数据表关系图 -js_heap_nodes:记录 js 内存类对象数据 -js_heap_edges:记录 js 内存类对象的成员数据 -js_heap_trace_node:记录 timeline 的调用栈信息 -js_heap_sample:记录 timeline 的时间轴信息 -![GitHub Logo](../../figures/traceStreamer/js_heap_nodes.png) +js_heap_files:记录js内存数据的文件名和文件索引 -## TraceStreamer 输出数据库表格详细介绍 - -### app_name 表 +![1683163158954](image/des_tables/js_heap_files.png) +js_heap_nodes:记录js内存类对象数据 +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 的表关联信息。 - +记录HiSysevent上报事件中的IDE相关事件中APPNAME的表关联信息。 #### 字段详细描述 +- id:用于与表hisys_event_measure表中的key_id字段做对应 +- app_name:对应的事件的信息ID +- app_key:对应的事件的APPNAME字段的信息ID -- id:用于与表 hisys_event_measure 表中的 key_id 字段做对应 -- app_name:对应的事件的信息 ID -- app_key:对应的事件的 APPNAME 字段的信息 ID - -### args 表 - +### 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 表 - +### 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 操作相关方法调用,及调用栈数据。 - +记录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 表 - +- 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 为进程唯一号,否则为线程唯一号。 - +记录调用堆栈和异步调用信息,其中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 表 - +### 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 表 - +### 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 做关联。 - +此结构用来维护时钟事件,cpu与唯一的ID做关联。 #### 主要字段描述 - -- Type:时钟事件类型 +- Type:时钟事件类型 - Name:时钟事件名称 -### cpu_measure_filter 表 - +### 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。 - +将cpu号作为key1,cpu的频率,空闲等状态作为key2,唯一确定一个filter_id。 #### 主要字段描述 +- Id(filterid), cpu:事件名称,cpu号 -- Id(filterid), cpu:事件名称,cpu 号 - -### cpu_usage 表 - +### 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 使用率相关的数据。 - +记录了与CPU使用率相关的数据。 #### 主要字段描述 - -- total_load:总负荷 -- user_load:用户负载 -- system_load:系统负载 +- total_load:总负荷 +- user_load:用户负载 +- system_load:系统负载 - process_num:线程数 -### data_dict 表 - +### data_dict表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| id | INT | -| data | TEXT | - +|---- |---- | +|id |INT | +|data |TEXT | #### 表描述 - -此表记录了一个数据类型 ID 和字符串的映射。 - +此表记录了一个数据类型ID和字符串的映射。 #### 主要字段描述 - -- id:索引值 +- id:索引值 - data:字符串 -### data_type 表 - +### data_type表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| id | INT | -| typeId | INT | -| desc | TEXT | - +|---- |---- | +|id |INT | +|typeId |INT | +|desc |TEXT | #### 表描述 - -此表记录了一个数据类型 ID 和数据描述的映射。 - +此表记录了一个数据类型ID和数据描述的映射。 #### 主要字段描述 - -- typeId::数据类型 id +- typeId::数据类型id - Desc:数据类型描述 -### diskio 表 - +### 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 表 - +### 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:调用栈深度。取值为零时表示栈顶 +- ip:调用栈ip +- symbols_id:调用栈函数名称, 与data_dict中的id字段关联 +- file_path_id:调用栈函数所属文件路径, 与data_dict中的id字段关联 -- callchain_id:调用栈的唯一标识。与 ebpf_callstack 表中 Callchain_id 字段关联 -- depth:调用栈深度。取值为零时表示栈顶 -- ip:调用栈 ip -- symbols_id:调用栈函数名称, 与 data_dict 中的 id 字段关联 -- file_path_id:调用栈函数所属文件路径, 与 data_dict 中的 id 字段关联 - -### file_system_sample 表 - +### 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 表 - +### hidump表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| id | INT | -| ts | INT | -| fps | INT | - +|---- |---- | +|id |INT | +|ts |INT | +|fps |INT | #### 表描述 - 此表记录了设备的帧率信息,fps。 - #### 相关字段描述 - - fps:帧率值 -### hisys_event_measure 表 - +### 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 事件的相关数据,及其相关表的映射信息。 - +记录所有的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 表 - +- 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 事件。 - +记录了系统中的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 +- dur:调用中断时长 +- callid:调用中断者的ID,比如针对线程表里面的id +- cat:调用栈数据类型(取值范围:irq,softirq...) +- name:调用中断的名称 +- depth:中断调用的深度 +- parent_id:父调用中断的id - spanId:分布式调用中断关联关系 -### js_heap_edges 表 +### js_config表 +#### 表结构 +| 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 | +#### 表描述 +记录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 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 | +#### 表描述 +记录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 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:数据上报的起始时间。 +- end_time:数据上报的终止时间。 +- dur:数据上报的间隔时间。 +### js_heap_edges表 +#### 表结构 | Columns Name | SQL TYPE | | ------------- | -------- | | file_id | INT | @@ -721,25 +693,19 @@ js_heap_sample:记录 timeline 的时间轴信息 | to_node | INT | | from_node_id | INT | | to_node_id | INT | - #### 表描述 - -记录 js 内存数据类对象对应的成员的信息。 - +记录js内存数据类对象对应的成员的信息。 #### 相关字段描述 - -- file_id:文件 ID +- 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 表 +- 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 Name | SQL TYPE | | ------------ | -------- | | id | INT | @@ -747,23 +713,17 @@ js_heap_sample:记录 timeline 的时间轴信息 | start_time | INT | | end_time | INT | | pid | INT | - #### 表描述 - -记录了 js 内存数据的文件名称和时间。 - +记录了js内存数据的文件名称和时间。 #### 相关字段描述 - -- id:文件 ID +- id:文件ID - file_name:文件名称 - start_time:数据抓取的起始时间 - end_time:数据抓取的终止时间 - pid:进程号 -### js_heap_info 表 - +### js_heap_info表 #### 表结构 - | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | @@ -771,23 +731,17 @@ js_heap_sample:记录 timeline 的时间轴信息 | type | INT | | int_value | INT | | str_value | TEXT | - #### 表描述 - -记录了 js 内存数据类型,如 nodes 和 edges 的字段类型和数据总数。 - +记录了js内存数据类型,如nodes和edges的字段类型和数据总数。 #### 相关字段描述 - -- file_id:文件 ID +- file_id:文件ID - key:类型名称 - type:数据类型索引 -- int_value:int 类型的数据值,如 count 类型数据 -- str_value:string 类型的数据值,如 typename - -### js_heap_location 表 +- int_value:int类型的数据值,如count类型数据 +- str_value:string类型的数据值,如typename +### js_heap_location表 #### 表结构 - | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | @@ -795,23 +749,17 @@ js_heap_sample:记录 timeline 的时间轴信息 | script_id | INT | | line | INT | | column | INT | - #### 表描述 - -记录了 js 内存 location 节点相关数据,此表目前无抓取到的数据。 - +记录了js内存location节点相关数据,此表目前无抓取到的数据。 #### 相关字段描述 - -- file_id:文件 ID -- object_index:与 location 关联的类对象的索引,取值为 js_heap_nodes 的下标索引 -- script_id:关联到的类对象所在文件的绝对路径 ID +- file_id:文件ID +- object_index:与location关联的类对象的索引,取值为js_heap_nodes的下标索引 +- script_id:关联到的类对象所在文件的绝对路径ID - line:在类对象所在的文件中的行号 - column:在类对象所在的文件中的列号 -### js_heap_nodes 表 - +### js_heap_nodes表 #### 表结构 - | Columns Name | SQL TYPE | | ------------- | -------- | | file_id | INT | @@ -823,67 +771,49 @@ js_heap_sample:记录 timeline 的时间轴信息 | edge_count | INT | | trace_node_id | INT | | detachedness | INT | - #### 表描述 - -记录了 js 内存数据中类对象的数据。 - +记录了js内存数据中类对象的数据。 #### 相关字段描述 - -- file_id:文件 ID +- file_id:文件ID - node_index:类对象的索引 - type:类对象的类型 - name:类对象的名称 -- id:类对象的唯一 ID +- id:类对象的唯一ID - self_size:该类对象所有成员的大小(以字节为单位) - edge_count:该类对象指向的类成员的个数 -- trace_node_id:该类对象关联到 js_heap_trace_node 表中的调用栈 ID -- detachedness:是否可以从 window 全局对象访问此节点,0 表示是,1 表示否 - -### js_heap_sample 表 +- trace_node_id:该类对象关联到js_heap_trace_node表中的调用栈ID +- detachedness:是否可以从window全局对象访问此节点,0表示是,1表示否 +### js_heap_sample表 #### 表结构 - | Columns Name | SQL TYPE | | ---------------- | -------- | | file_id | INT | | timestamp_us | INT | | last_assigned_id | INT | - #### 表描述 - -记录了 timeline 模式下的时间轴信息。 - +记录了timeline模式下的时间轴信息。 #### 相关字段描述 - -- file_id:文件 ID +- file_id:文件ID - timestamp_us:时间信息 -- last_assigned_id:当前时间点的 id - -### js_heap_string 表 +- last_assigned_id:当前时间点的id +### js_heap_string表 #### 表结构 - | Columns Name | SQL TYPE | | ------------ | -------- | | file_id | INT | | file_index | INT | | string | TEXT | - #### 表描述 - -记录了 js 内存数据中的字符串。 - +记录了js内存数据中的字符串。 #### 相关字段描述 - -- file_id:文件 ID +- file_id:文件ID - file_index:索引 - string:对应的字符串信息 -### js_heap_trace_function_info 表 - +### js_heap_trace_function_info表 #### 表结构 - | Columns Name | SQL TYPE | | -------------- | -------- | | file_id | INT | @@ -894,26 +824,20 @@ js_heap_sample:记录 timeline 的时间轴信息 | script_id | INT | | line | INT | | column | INT | - #### 表描述 - -记录了 timeline 模式下的调用栈的每个函数信息。 - +记录了timeline模式下的调用栈的每个函数信息。 #### 相关字段描述 - -- file_id:文件 ID +- file_id:文件ID - function_index:函数索引 -- function_id:函数 ID +- function_id:函数ID - name:函数名称 - script_name:关联到的类对象所在文件的绝对路径名称 -- script_id:关联到的类对象所在文件的绝对路径 ID +- script_id:关联到的类对象所在文件的绝对路径ID - line:在类对象所在的文件中的行号 - column:在类对象所在的文件中的列号 -### js_heap_trace_node 表 - +### js_heap_trace_node表 #### 表结构 - | Columns Name | SQL TYPE | | ------------------- | -------- | | file_id | INT | @@ -922,957 +846,1050 @@ js_heap_sample:记录 timeline 的时间轴信息 | count | INT | | size | INT | | parent_id | INT | - #### 表描述 - -记录了 timeline 模式下的调用栈的信息。 - +记录了timeline模式下的调用栈的信息。 #### 相关字段描述 - -- file_id:文件 ID +- file_id:文件ID - id:调用栈节点索引 - function_info_index:函数信息索引 - count:调用栈个数 - size:调用栈大小 - parent_id:调用栈父节点 -### live_process 表 - +### app_startup表 #### 表结构 - -| 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 | +| ------------------- | -------- | +| 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:内部线程号 +- start_time:阶段开始时间 +- end_time:阶段结束时间 +- start_name:阶段名称 +- 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 | +#### 表描述 +记录了so初始化的相关信息。 +#### 相关字段描述 +- call_id:调用者的ID,比如针对线程表里面的id +- ipid:内部进程号 +- tid:内部线程号 +- start_time:阶段开始时间 +- end_time:阶段结束时间 +- so_name:so文件名称 +- 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 | #### 表描述 - 记录了一些实时的进程中执行的一些数据(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 表 - +### 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 表 - +### 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:数值 +- filter_id:对应filter表中的ID -- type:固定字段(measure) -- ts:事件时间 -- dur:该值持续的时长 -- value:数值 -- filter_id:对应 filter 表中的 ID - -### measure_filter 表 - +### 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。 -记录一个递增的 filterid 队列,所有其他的 filter 类型在获取过程中,均从此数据列表中获取下一个可用的 filter_id 并做记录。 - -#### 字段详细描述 - -过滤分类(type),过滤名称(key2),数据 ID(key1)。 -数据 ID 在 process_measure_filter, sys_event_filter 中作为 id。 - -### meta 表 - +### meta表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| name | TEXT | -| value | TEXT | - +|---- |---- | +|name |TEXT | +|value |TEXT | #### 表描述 - -此表记录了数据解析或导出时的一些现场数据,比如使用的 TraceStreamer 版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 - +此表记录了数据解析或导出时的一些现场数据,比如使用的TraceStreamer版本, 工具的发布时间,数据解析的时间,数据的持续时长,以及原始数据的格式。 #### 主要字段描述 +- Name:指定元数据的key +- Value:指定元数据的value -- Name:指定元数据的 key -- Value:指定元数据的 value - -### native_hook 表 - +### 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 抓取的某个进程的堆内存,内存映射相关数据。 - +记录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 表 - +- 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 表 - +### 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 +- callchain_id:内存分配的回调链id +- ipid:进程id - ts:统计数据上报时间 -- type:事件类型,0 代表 malloc 事件,1 代表 mmap 事件 +- type:事件类型,0代表malloc事件,1代表mmap事件 - apply_count:当前调用栈内存分配总次数 - release_count:当前调用栈内存释放总次数 - apply_size:当前调用栈累计分配总大小 - release_size:当前调用栈累计释放总大小 -### network 表 - +### 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 表 - +### 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:操作页数 -- itid:TS 内部线程号 - -### perf_callchain 表 - +- 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 采样数据的调用栈信息。 - +记录了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 表 - +### 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 工具采集到的函数符号表和文件名。 - +记录Hiperf工具采集到的函数符号表和文件名。 #### 主要字段描述 - -- file_id:文件编号 -- serial_id:一个文件中可能有多个函数,serial_id 表示函数的编号 -- symbol:函数名 +- file_id:文件编号 +- serial_id:一个文件中可能有多个函数,serial_id表示函数的编号 +- symbol:函数名 - path:文件路径 -### perf_report 表 - +### perf_report表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| id | INT | -| report_type | TEXT | -| report_value | TEXT | - +|---- |---- | +|id |INT | +|report_type |TEXT | +|report_value |TEXT | #### 表描述 - -记录 Hiperf 工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 - +记录Hiperf工具采集数据时的配置信息。包括:抓取的事件类型,抓取数据的命令, 抓数据时指定的进程名称。 #### 主要字段描述 - -- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) +- report_type:数据类型。取值只有三种类型:config_name(事件类型), workload(抓取的进程名), cmdline(抓取命令) - report_value:对应类型的取值 -### perf_sample 表 - +### 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 工具的采样信息。 - +记录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 表 - +- 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 工具采集到的进程和线程数据。 - +记录Hiperf工具采集到的进程和线程数据。 #### 主要字段描述 - -- thread_id:线程号 -- process_id:进程号 +- thread_id:线程号 +- process_id:进程号 - thread_name:线程名 -### process 表 - +### 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 表 - +### 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作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在filter表中。 #### 主要字段描述 +- id:进程id +- type:固定取值:process_filter +- name:进程名 +- ipid:该进程表中的id与process表中的id相关联 -- id:进程 id -- type:固定取值:process_filter -- name:进程名 -- ipid:该进程表中的 id 与 process 表中的 id 相关联 - -### process_measure 表 - +### 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:数值 +- filter_id:对应process_measure_filter表中的ID -- ts:事件时间 -- value:数值 -- filter_id:对应 process_measure_filter 表中的 ID - -### process_measure_filter 表 - +### 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 表中。 - +将进程ID作为key1,进程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在measure_filter表中。 #### 字段详细描述 - -- type:固定取值:process_measure_filter -- name:cpu 状态名 +- type:固定取值:process_measure_filter +- name:cpu状态名 - ipid:进程内部编号 -### raw 表 - +### 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 数据。 - +记录了系统中的waking、wakup、cpu_idel、cpu_frequency数据。 #### 相关字段描述 +- type:固定字段(raw) +- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking) +- cpu:事件发生在哪个CPU +- itid:时间对应哪个utid -- type:固定字段(raw) -- name:调度名称(取值:cpu_idle,sched_wakeup,sched_waking) -- cpu:事件发生在哪个 CPU -- itid:时间对应哪个 utid - -### sched_slice 表 - +### 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 事件的原始记录。 - +此数据结构主要作为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 表 - +### 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 字段相关联 -- path_id:如果区域是从文件映射的,则这是文件的名称对应的 id 序号与表 data_dict 的 id 字段相关联 - -### stat 表 - +- 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 表 - +### symbols表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| id | INT | -| funcname | TEXT | -| addr | INT | - +|---- |---- | +|id |INT | +|funcname |TEXT | +|addr |INT | #### 表描述 - 此表记录了被调用函数与其地址的映射关系。 - #### 相关字段描述 - -- funcname:系统调用名称 +- funcname:系统调用名称 - adr:系统调用地址 -### syscall 表 - +### 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:时间戳 +- ret:返回值,在type为exit时有效 -- syscall_num:系统调用的序号 -- type:固定取值:enter 或者 exit -- ipid:线程所属的进程 ID -- ts:时间戳 -- ret:返回值,在 type 为 exit 时有效 - -### sys_event_filter 表 - +### sys_event_filter表 #### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| id | INT | -| type | TEXT | -| name | TEXT | - +|---- |---- | +|id |INT | +|type |TEXT | +|name |TEXT | #### 表描述 - -记录所有的 filter。 - +记录所有的filter。 #### 相关字段描述 - -- type:文件类型 +- type:文件类型 - name:文件名 -### sys_mem_measure 表 - +### 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:数值 +- filter_id:对应filter表中的ID -- ts:事件时间 -- value:数值 -- filter_id:对应 filter 表中的 ID - -### thread 表 - +### 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 表 - +### 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作为key1,线程的内存,界面刷新,屏幕亮度等信息作为key2,唯一确定一个filter_id, filter_id同时被记录在filter表中。 #### 主要字段描述 +- id:线程id +- type:线程类型 +- name:线程名称 +- itid:该表中的tid与thread表中的tid相关联 -- id:线程 id -- type:线程类型 -- name:线程名称 -- itid:该表中的 tid 与 thread 表中的 tid 相关联 - -### thread_state 表 - +### 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状态 -"I", interrupted -"T", Traced -"X", ExitedDead -"Z", Zombie -"I", CloneThread -"I", TaskKilled -"DK", -"DK-IO", -"DK-NIO", -"TK", TracedKill -"R", WakeKill +- 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 -"R+", ForeGround +"I", Task_Dead +"DK", +"DK-IO", +"DK-NIO", +"TK", TracedKill +"R+", WakeKill +"R+", TaskNew +"R-B", Task runnable binder. ``` -### clock_snapshot 表 - +### 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 - -### datasource_clockid 表 +时钟快照是用来对齐不同时钟号的时间 +比如,时钟号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 仍然需要知道原始的时钟号是怎样的 - -### frame_slice 表 +- clock_id:时钟号,对应clock_snapshot中的时钟号 +这个表是用来告诉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 之间的关联关系。 - +应用的实际渲染帧和期望渲染帧的开始时间,持续时长,以及RenderService和App之间的关联关系。 #### 关键字段描述 - -- callstack_id:该帧数据对应着 callstack 表的调用栈所在的行数 -- dur:该帧渲染时长(当数据不完整时,改行数据为空) -- src:该帧是被哪一帧(该表中对应的行数)触发的,有多个值时,用逗号分割 -- dst:该帧对应的渲染帧是哪一行 -- type: 0 说明该行数据是实际渲染帧, 1 说明该行数据是期望渲染帧 -- flag: 空时,为不完整的数据;0 表示实际渲染帧不卡帧, 1 表示实际渲染帧卡帧, 2 表示数据不需要绘制(没有 frameNum 信息) +- 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 表 - +### 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 的关系。 - +该表记录了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 表 - +### gpu_slice表 ### 表结构 - | Columns Name | SQL TYPE | -| ------------ | -------- | -| frame_row | INT | -| dur | INT | - +|---- |---- | +|frame_row |INT | +|dur |INT | #### 表描述 - -该表记录了每一帧数据在 GPU 上的渲染时长。 - +该表记录了每一帧数据在GPU上的渲染时长。 #### 关键字段描述 +- frame_row:frame_slice表中渲染帧所在的行 +- dur:帧渲染时长 -- frame_row:frame_slice 表中渲染帧所在的行 -- dur:帧渲染时长 - -### trace_range 表 - +### 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 | +#### 表描述 +该表记录了任务池相关数据,与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 Name | SQL TYPE | +|---- |---- | +|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 | +#### 表描述 +该表记录动效帧的坐标、分辨率、结束时间等信息。 +#### 关键字段描述 +- x:坐标x +- y:坐标y +- width:宽 +- height:高 +- alpha:透明度 +- name:当前动效帧名字 +- end_time:结束时间 + +### device_info表 +#### 表结构 +| 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 | +#### 表描述 +该表记录设备屏幕亮度,蓝牙,位置,wifi,音乐,媒体等信息。 +#### 关键字段描述 +- brightness:屏幕亮度 +- bt_state:蓝牙状态 +- location:位置信息 +- wifi:无线网络状态 +- voice_call:语音通话 +- music:音乐播放 +- media:多媒体 +- voice_assistant:语音助手 +- system:系统 +- alarm:闹钟 +- notification:消息通知 +- bt_sco:蓝牙语音 +- accessibility:访问权限 +- recording:录音 + +### trace_config表 +#### 表结构 +| Columns Name | SQL TYPE | +|---- |---- | +|id |INT | +|trace_source |INT | +|key |INT | +|value |INT | +#### 表描述 +该表记录trace数据源,proto的事件-plugin与其process_name(目前只有HisysEvent事件在用)。 #### 关键字段描述 +- trace_source:事件源 +- key:事件需要关注的信息名 +- value:事件需要关注的信息名对应的信息值 -- start_ts:trace 的开始时间,纳秒为单位 -- end_ts:trace 的结束时间,纳秒为单位 +### 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 | +#### 表描述 +该表记录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 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内存文件描述符 +- size:dma内存大小 +- exp_pid:申请者的进程号 +- buf_name_id:dma内存名 +- exp_name_id:申请者进程名 +- 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 | +#### 表描述 +该表记录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 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 +- module_name_id:模块名 +- category_name_id:目录名 +- size:内存大小 +- 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 | +#### 表描述 +该表记录了so初始化相关数据。 +#### 关键字段描述 +- ipid:内部进程号 +- tid:内部线程号 +- call_id:调用者的ID,对应线程表里面的itid +- start_time:阶段开始时间 +- end_time:阶段结束时间 +- so_name:so文件名称 +- depth:泳道图的深度 \ No newline at end of file diff --git a/ide/src/doc/md/quickstart_Application_operation_skills.md b/ide/src/doc/md/quickstart_Application_operation_skills.md index a43cf087..785b7e32 100644 --- a/ide/src/doc/md/quickstart_Application_operation_skills.md +++ b/ide/src/doc/md/quickstart_Application_operation_skills.md @@ -1,24 +1,90 @@ ## 应用操作技巧 - -应用操作技巧主要展示各个小模块的使用技巧。 + 应用操作技巧主要展示各个小模块的使用技巧。 ###可导入符号表 -符号表导入适用于所有支持调用栈的 Tab 页,选择一个文件夹,获取文件下及其子文件夹的所有 so 文件,更新数据库中符号数据。文件夹内 so 的格式需要与在设备上的路径一致,例如下图中,选择的文件夹为 import,选择导入的 libnative_hook.z.so,在设备上的路径是/system/lib64/,那么在本地选择的文件夹内也需要保证路径是 import/system/lib64/libnative_hook.z.so。 +符号表导入适用于所有支持调用栈的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 下的调用栈没有符号化完全。 +以NativeMemory举例,导入NativeMemory文件,点击Call info的Tab页,在搜索框中输入libnative_hook.z.so,会发现该so下的调用栈没有符号化完全。 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_nativehook.jpg) -将本地编译的 so 通过导入按钮导入,本地导入路径是 import/system/lib64/libnative_hook.z.so,红框处是导入按钮 +将本地编译的so通过导入按钮导入,本地导入路径是import/system/lib64/libnative_hook.z.so,红框处是导入按钮 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_local.jpg) -导入 so 以后,在搜索框中输入 libnative_hook.z.so,会发现符号化数据已经更新 +导入so以后,在搜索框中输入libnative_hook.z.so,会发现符号化数据已经更新 ![GitHub Logo](../../figures/OperationSkills/Operation_soimport_new.jpg) ###网页连接文件打开接口 -网页连接文件打开接口可以在网址后增加文件地址,打开后直接打开 trace。 -接口的 url 路径如下: +网页连接文件打开接口可以在网址后增加文件地址,打开后直接打开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(固定格式)。 + +###Tab页信息和泳道图可跳转(点击和框选场景,框选类似搜索) +泳道图高亮场景:框选Cpu Frequency 或者Cpu State泳道图后,弹出Cpu Frequency或Cpu State Tab页,在点击Tab页表格的行时,框选范围泳道图的当前行的Value值一样的部分上方会出现一条以圆点开头颜色比趋势图颜色同色但稍深的粗线条,如下图: +![GitHub Logo](../../figures/OperationSkills/Tabskill.jpg) +搜索场景:框选函数调用栈的泳道图,弹出Slices Tab页,点击表格行,会跳转到框选范围内的第一条调用栈的位置,点击下图Slices Tab页的H:FlushVsync调用栈。 +![GitHub Logo](../../figures/OperationSkills/Tabskillcalltack.jpg) +会跳转到H:FlushVsync调用栈的位置。 +![GitHub Logo](../../figures/OperationSkills/Tabcallstackskip.jpg) +###Tab页中start time支持绝对时间 +在有startTime的点选Tab页(目前有PurgeTotal、PurgePin、Current Selection三个)中添加绝对时间,startTime是以抓取时间为参考,开始抓取时间为0,取当前点选数据的startTs属性即可,绝对时间是数据上报的时间显示,如下图: +![GitHub Logo](../../figures/OperationSkills/Tababsolutetime.jpg) +###支持基于优先级的线程状态展示 +Sched Priority Tab页,按优先级显示调度,显示框选范围内所有Running以及Running之前的Runnable线程的最小,最大,平均耗时。 +![GitHub Logo](../../figures/OperationSkills/schedpritab.jpg) +###内容支持宽度可伸缩 +原来表格的单元格宽度是设置好的,有些单元格里的内容比较长,看不到全部,现在每行的表头添加一个灰色竖线,拖动时单元格宽度随之改变。 +![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负载预览颜色随着负载降低,亮度降低的能力对比度提升 +原来表示负载的颜色利用了透明度,对比不够明显,此次修改利用颜色的亮度,负载越大颜色更深,最深的接近黑色,负载越小颜色越浅,最浅的的为白色。 +![GitHub Logo](../../figures/OperationSkills/colorcontrast.jpg) +###导航栏/泳道图背景颜色支持颜色可选,字体颜色可感知slice的颜色而进行变化,颜色动态可配 +给用户提供两种模式,浅色模式(导航栏白底黑字,泳道图颜色偏淡)和深色模式(导航栏黑底白字,泳道图颜色偏深),点击最左下方的小桶标志用户可以按需选择,并且用户可以自定义systemTrace页面的颜色,给用户更多自由,自己动手设置自己喜欢的颜色,提升用户体验。 +![GitHub Logo](../../figures/OperationSkills/colorchoose.jpg) +###高阶debug sql指导:Sample queries,比如CPU,线程,内存,io的等 +用户根据需要了解的trace数据,可以点击预置好的sql查询出对应的数据。 +![GitHub Logo](../../figures/OperationSkills/sqlselect.jpg) +###鼠标滚轮放大、缩小(已支持),ctrl+滚轮左右拖动跟手性优化 +用户可以利用鼠标滚轮对界面进行放大和缩小,ctrl+滚轮左右拖动。 +###历史搜索关键字可显示/可选择查找 +在搜索框里的关键字可以保留显示,用户可以直接选择对应的关键字进行搜索,点击删除也可以将关键字删除。 +![GitHub Logo](../../figures/OperationSkills/searchskill.jpg) +###线程唤醒关系树 +线程唤醒关系树功能是指在系统打开trace文件解析完成之后,在CPU泳道图上点选,可以查看该线程Slice的唤醒关系树,点击GetWakeupList会以链式结构和表格分别在泳道图和tab上展示线程的唤醒关系树信息,点击GetWakeupList按钮旁边的星号按钮可以对唤醒树对应的泳道图一键收藏。 +![GitHub Logo](../../figures/OperationSkills/threadtree.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 diff --git a/ide/src/doc/md/quickstart_animation.md b/ide/src/doc/md/quickstart_animation.md index 650f2353..4bfe801c 100644 --- a/ide/src/doc/md/quickstart_animation.md +++ b/ide/src/doc/md/quickstart_animation.md @@ -1,79 +1,58 @@ -# Animation 的抓取和展示说明 - +# Animation的抓取和展示说明 通过动效模板的指标项对图形子系统和应用做动效卡顿类问题分析。 - -### Animation 抓取参数的配置 - +### Animation抓取参数的配置 ![GitHub Logo](../../figures/animation/animationconfig.jpg) 配置项说明: - -- Animation effect:动效配置项的总开关。 - -### Animation 展示说明 - -将抓取的 Animation 文件导入到 smartperf 工具中,查看图形子系统和应用动效卡顿类问题。 - -### Animation 泳道图展示 - -Animation 的响应时延泳道图显示,泳道图的 Slice 会显示响应时延,如下图中的 Completion delay(683.035938ms)。 ++ Animation effect:动效配置项的总开关。 +### Animation展示说明 +将抓取的Animation文件导入到smartperf工具中,查看图形子系统和应用动效卡顿类问题。 +### Animation泳道图展示 +Animation的响应时延和完成时延泳道图显示,泳道图的Slice会显示响应时延和完成时延,如下图中的Response delay(79.379165ms),Completion delay(2606.938539ms)。 ![GitHub Logo](../../figures/animation/anrsdelayrow.jpg)。 -Animation 的动效曲线和帧间距的总泳道图,如图点击 leashWindow40 旁边的小齿轮可以切换 leashWindow。 +Animation的动效曲线和帧间距的总泳道图,如图点击WindowScene_mm37旁边的小齿轮可以切换WindowScene。 ![GitHub Logo](../../figures/animation/anrsallrow.jpg)。 -Animation 的动效曲线泳道图展示,如下: +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 页会显示相关信息。 +点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。 ![GitHub Logo](../../figures/animation/anieffectcurvselect.jpg) - -- Timestamp: 时间戳信息。 -- Index: 属性索引。 -- Value:属性值。 - ++ Timestamp: 时间戳信息。 ++ Index: 属性索引。 ++ Value:属性值。 ### 动效曲线泳道图框选功能 - -框选动效曲线泳道图,Frame Dynamic 的 Tab 页会显示框选范围内每个点的属性值。 +框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。 ![GitHub Logo](../../figures/animation/anieffectcurvdrag.jpg) - -- Timestamp: 时间戳信息。 -- Index: 属性索引。 -- Value:属性值。 - ++ Timestamp: 时间戳信息。 ++ Index: 属性索引。 ++ Value:属性值。 ### 帧间距泳道图点选功能 - -点选帧间距泳道图,Frame spacing 的 Tab 页会显示这一个点的帧间距计算数据,一个点要计算两个属性的的帧间距,所以需要显示两个属性的。 +点选帧间距泳道图,Frame spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算四个属性的的帧间距,所以需要显示四个属性的。 ![GitHub Logo](../../figures/animation/anispacingselect.jpg) - -- Timestamp: 时间戳信息。 -- Index: 属性索引。 -- property:动效宽度或高度属性。 -- Value2: 当前帧的属性值。 -- Value1: 前一帧的属性值。 -- Screen:存储设备的物理宽度/高度。 -- T2(s): 当前帧的结束时间。 -- T1(s): 前一帧的结束时间。 -- result:帧间距。 - ++ Timestamp: 时间戳信息。 ++ Index: 属性索引。 ++ property:动效宽度,高度,X,Y的属性。 ++ Value2: 当前帧的属性值。 ++ Value1: 前一帧的属性值。 ++ Screen:存储设备的物理宽度/高度。 ++ T2(s): 当前帧的结束时间。 ++ T1(s): 前一帧的结束时间。 ++ result:帧间距。 ### 帧间距泳道图框选功能 - -框选帧间距泳道图,Frame spacing 的 Tab 页会显示框选范围内帧间距数据。 +框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。 ![GitHub Logo](../../figures/animation/anispacingdrag.jpg) - -- Timestamp: 时间戳信息。 -- Index: 属性索引。 -- property:动效宽度或高度属性。 -- Value2: 当前帧的属性值。 -- Value1: 前一帧的属性值。 -- Screen:存储设备的物理宽度/高度。 -- T2(s): 当前帧的结束时间。 -- T1(s): 前一帧的结束时间。 -- result:帧间距。 ++ Timestamp: 时间戳信息。 ++ Index: 属性索引。 ++ property:动效宽度,高度,X,Y的属性。 ++ Value2: 当前帧的属性值。 ++ Value1: 前一帧的属性值。 ++ Screen:存储设备的物理宽度/高度。 ++ T2(s): 当前帧的结束时间。 ++ T1(s): 前一帧的结束时间。 ++ result:帧间距。 \ No newline at end of file diff --git a/ide/src/doc/md/quickstart_app_startup.md b/ide/src/doc/md/quickstart_app_startup.md index f6f20762..c57dda80 100644 --- a/ide/src/doc/md/quickstart_app_startup.md +++ b/ide/src/doc/md/quickstart_app_startup.md @@ -1,82 +1,54 @@ -# App startup 的抓取和展示说明 - +# App startup的抓取和展示说明 应用启动分析功能主要是提供应用启动分析模板帮助系统调优人员做应用启动慢场景问题分析,快速查找系统侧启动慢阶段和耗时长调用栈信息。 - -### App startup 抓取参数的配置 - +### App startup抓取参数的配置 ![GitHub Logo](../../figures/appstartup/appstartupconfig.jpg) 配置项说明: - -- App startup:配置项的总开关。 - -### App startup 展示说明 - -将抓取的 App startup 文件导入到 smartperf 工具中,查看应用启动各阶段耗时的情况。 - -### App startup 泳道图展示 - -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 点选为例: +应用启动包括六个阶段,分别是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:应用启动的持续时间。 - -### App startup 泳道图 Tab 页跳转功能 - -点击各阶段的起始或者结束时间后面的跳转图标,跳转至关联 Slice,并显示该 Slice 的详细信息。 -以 Process Creating 的跳转为例: ++ 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。 - -### App startup 泳道图的框选功能 - ++ 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:应用各阶段启动时长。 -- %:应用各阶段启动时长的占比。 - -### So 初始化泳道图展示 - -So 初始化的泳道图展示: ++ Process / Startup: 应用名称和启动阶段名称。 ++ Duration:应用各阶段启动时长。 ++ %:应用各阶段启动时长的占比。 +### So初始化泳道图展示 +So初始化的泳道图展示: ![GitHub Logo](../../figures/appstartup/staticinitilizationrow.jpg) - -### So 初始化泳道图的点选功能 - -点选 So 初始化的 Slice,展示该 so 初始化信息的 tab 页。 +### So初始化泳道图的点选功能 +点选So初始化的Slice,展示该so初始化信息的tab页。 ![GitHub Logo](../../figures/appstartup/staticinitilizationslice.jpg) - -- Name:So的名称。 -- StartTime(Relative):So初始化开始时间(相对时间)。 -- StartTime(Absolute):So初始化开始时间(绝对时间)。 -- Duration:So初始化耗时。 - -### So 初始化泳道图 Tab 页跳转功能 - -点击 So 初始化开始时间后面的跳转图标,跳转至关联 Slice,并显示该 Slice 的详细信息。 ++ 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。 - -### So 初始化泳道图的框选功能 - -So 初始化泳道图框选功能主要是框选 So 初始化泳道图之后,统计各个进程下各个 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的耗费时长。 ++ Process / Lib: 应用名称和So名称。 ++ Duration:So的耗费时长。 \ No newline at end of file diff --git a/ide/src/doc/md/quickstart_hilog.md b/ide/src/doc/md/quickstart_hilog.md new file mode 100644 index 00000000..622beb5d --- /dev/null +++ b/ide/src/doc/md/quickstart_hilog.md @@ -0,0 +1,22 @@ +# 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 diff --git a/ide/src/doc/md/quickstart_taskpool.md b/ide/src/doc/md/quickstart_taskpool.md index 9b48d7b2..c3a98c17 100644 --- a/ide/src/doc/md/quickstart_taskpool.md +++ b/ide/src/doc/md/quickstart_taskpool.md @@ -1,61 +1,40 @@ -# TaskPool 抓取和展示说明 - -TaskPool 分析模块主要展示应用程序使用 taskpool 时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。 - -## TaskPool 的抓取 - -#### TaskPool 的抓取配置参数 - -打开 Task pool 开关抓取 taskpool 数据。 +# TaskPool抓取和展示说明 +TaskPool分析模块主要展示应用程序使用taskpool时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。 +## TaskPool的抓取 +#### TaskPool的抓取配置参数 +打开Task pool开关抓取taskpool数据。 ![GitHub Logo](../../figures/Taskpool/taskpoolconfig.jpg) - -### TaskPool 展示说明 - -将抓取的 taskpool 文件导入到 smartperf 中,查看任务的关联关系等信息。 +### TaskPool展示说明 +将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。 ![GitHub Logo](../../figures/Taskpool/taskpoolrow.jpg) - -### TaskPool 的任务关联关系跟踪 - -任务关联关系就是根据任务的 executeId,把一个 taskpool 任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。 +### 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:任务返回。 - -### TaskPool 的并发度 - -点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是 3。 +如上图所示,点击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:任务返回。 +### TaskPool的并发度 +点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是3。 ![GitHub Logo](../../figures/Taskpool/taskpoolconcurrency.jpg) - -### TaskPool 泳道图的点选功能 - -点选 taskpool 的 Slice,展示该 taskpool 信息的 tab 页。 +### TaskPool泳道图的点选功能 +点选taskpool的Slice,展示该taskpool信息的tab页。 ![GitHub Logo](../../figures/Taskpool/taskpoolselect.jpg) - -- Name: 任务调用栈名称。 -- StartTime: 任务调用栈开始时间。 -- Duration:任务调用栈持续时间。 -- depth:调用栈层级。 - -### TaskPool 泳道图的框选功能 - -框选 taskpool 的泳道图,展示 Frames 的 tab 页。 ++ 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):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。 - -### TaskPool 的队列任务数和线程池里线程状态统计 - ++ 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) +如上图,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 diff --git a/ide/src/doc/quickstart_Application_operation_skills.html b/ide/src/doc/quickstart_Application_operation_skills.html index b57f6b1f..255e9c0f 100644 --- a/ide/src/doc/quickstart_Application_operation_skills.html +++ b/ide/src/doc/quickstart_Application_operation_skills.html @@ -799,9 +799,13 @@ 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

@@ -816,8 +820,7 @@
  •  蓝色框:是Smartperf工具的url(https://localhost:9000/application/)。
    -
    +
  • @@ -825,19 +828,155 @@
                   第一部分是?trace=(固定格式)。
                   第二部分是trace文件的url(https://iot.itocm.com:9001/upload/ftrace_small.txt),此处根据文件的url实际地址填写。
                   第三部分,&link=true(固定格式)。
    -
    +
  • +

    Tab页信息和泳道图可跳转(点击和框选场景,框选类似搜索)

    + +

    + 泳道图高亮场景:框选Cpu Frequency 或者Cpu State泳道图后,弹出Cpu Frequency或Cpu State + Tab页,在点击Tab页表格的行时,框选范围泳道图的当前行的Value值一样的部分上方会出现一条以圆点开头颜色比趋势图颜色同色但稍深的粗线条,如下图:
    + GitHub Logo
    + 搜索场景:框选函数调用栈的泳道图,弹出Slices + Tab页,点击表格行,会跳转到框选范围内的第一条调用栈的位置,点击下图Slices Tab页的H:FlushVsync调用栈。
    + GitHub Logo
    + 会跳转到H:FlushVsync调用栈的位置。
    + GitHub Logo +

    +

    Tab页中start time支持绝对时间

    + +

    + 在有startTime的点选Tab页(目前有PurgeTotal、PurgePin、Current + Selection三个)中添加绝对时间,startTime是以抓取时间为参考,开始抓取时间为0,取当前点选数据的startTs属性即可,绝对时间是数据上报的时间显示,如下图:
    + GitHub Logo +

    +

    支持基于优先级的线程状态展示

    + +

    + Sched Priority + Tab页,按优先级显示调度,显示框选范围内所有Running以及Running之前的Runnable线程的最小,最大,平均耗时。
    + GitHub Logo +

    +

    内容支持宽度可伸缩

    + +

    + 原来表格的单元格宽度是设置好的,有些单元格里的内容比较长,看不到全部,现在每行的表头添加一个灰色竖线,拖动时单元格宽度随之改变。
    + GitHub Logo +

    +

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

    + +

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

    +

    + 支持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负载预览颜色随着负载降低,亮度降低的能力对比度提升

    + +

    + 原来表示负载的颜色利用了透明度,对比不够明显,此次修改利用颜色的亮度,负载越大颜色更深,最深的接近黑色,负载越小颜色越浅,最浅的的为白色。
    + GitHub Logo +

    +

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

    + +

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

    +

    高阶debug sql指导:Sample queries,比如CPU,线程,内存,io的等

    + +

    + 用户根据需要了解的trace数据,可以点击预置好的sql查询出对应的数据。
    + GitHub Logo +

    +

    鼠标滚轮放大、缩小(已支持),ctrl+滚轮左右拖动跟手性优化

    + +

    用户可以利用鼠标滚轮对界面进行放大和缩小,ctrl+滚轮左右拖动。

    +

    历史搜索关键字可显示/可选择查找

    + +

    + 在搜索框里的关键字可以保留显示,用户可以直接选择对应的关键字进行搜索,点击删除也可以将关键字删除。
    + GitHub Logo +

    +

    线程唤醒关系树

    + +

    + 线程唤醒关系树功能是指在系统打开trace文件解析完成之后,在CPU泳道图上点选,可以查看该线程Slice的唤醒关系树,点击GetWakeupList会以链式结构和表格分别在泳道图和tab上展示线程的唤醒关系树信息,点击GetWakeupList按钮旁边的星号按钮可以对唤醒树对应的泳道图一键收藏。
    + GitHub Logo +

    +

    Trace抓取动态可停

    + +

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

    +

    Smartperf web端集成hdc命令能力

    + +

    + 在现有的配置界面上,新增一个Web版本的shell界面,可以支持shell命令
    + GitHub Logo +

    + + diff --git a/ide/src/doc/quickstart_taskpool.html b/ide/src/doc/quickstart_taskpool.html index 386e60a1..a0152dfc 100644 --- a/ide/src/doc/quickstart_taskpool.html +++ b/ide/src/doc/quickstart_taskpool.html @@ -791,33 +791,26 @@

    TaskPool抓取和展示说明

    -

    TaskPool分析模块主要展示应用程序使用taskpool时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。

    TaskPool的抓取

    -

    TaskPool的抓取配置参数

    -

    - 打开Task pool开关抓取taskpool数据。 -
    + 打开Task pool开关抓取taskpool数据。
    GitHub Logo

    TaskPool展示说明

    - 将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。 -
    + 将抓取的taskpool文件导入到smartperf中,查看任务的关联关系等信息。
    GitHub Logo

    TaskPool的任务关联关系跟踪

    - 任务关联关系就是根据任务的executeId,把一个taskpool任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。 -
    - GitHub Logo -
    + 任务关联关系就是根据任务的executeId,把一个taskpool任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。
    + GitHub Logo
    如上图所示,点击H:Task Perform: taskId : 2, executeId : 2的调用栈会出现红色连线,红色连线展示了executeId是2的任务的关联关系,连接的调用栈分别是:

    @@ -825,116 +818,99 @@
  •  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。 -
    + 点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是3。
    GitHub Logo

    TaskPool泳道图的点选功能

    - 点选taskpool的Slice,展示该taskpool信息的tab页。 -
    + 点选taskpool的Slice,展示该taskpool信息的tab页。
    GitHub Logo

    •  Name: 任务调用栈名称。
      -
      +
    •  StartTime: 任务调用栈开始时间。
      -
      +
    •  Duration:任务调用栈持续时间。
      -
      +
    •  depth:调用栈层级。
      -
      +

    TaskPool泳道图的框选功能

    - 框选taskpool的泳道图,展示Frames的tab页。 -
    + 框选taskpool的泳道图,展示Frames的tab页。
    GitHub Logo

    •  Execute Id: 任务id。
      -
      +
    •  Task Priority: 任务优先级(HIGH,MEDIUM,LOW)。
      -
      +
    •  Scheduling Time(ms):调度耗时(任务执行起始时间 - 任务分发起始时间)。
      -
      +
    •  Execution Time(ms):执行耗时(任务执行的duration)。
      -
      +
    •  Return Time(ms):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。
      -
      +

    TaskPool的队列任务数和线程池里线程状态统计

    - GitHub Logo -
    + GitHub Logo
    如上图,H:threadNum,H:runningThreadNum,H:idleThreadNum,H:timeoutThreadNum是线程池里线程状态统计,H:taskNum是队列任务数。

    TaskPool的任务超时退出

    - 在带有H:Thread Timeout Exit的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。 -
    + 在带有H:Thread Timeout Exit的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。
    GitHub Logo

    -
    +

    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�`V2SilYL0o+HQqVGp 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 NMRWqoG0iVu{s-#{yK(>k literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/Tabskilltemple.jpg b/ide/src/figures/OperationSkills/Tabskilltemple.jpg new file mode 100644 index 0000000000000000000000000000000000000000..184e1ff8e7fe3d91e0bcd86c028f22e96d52e130 GIT binary patch literal 136725 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 literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/collectskilldrag.jpg b/ide/src/figures/OperationSkills/collectskilldrag.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae18dce8807d32d9e1ceab75d2f2dcf58ff999bd GIT binary patch literal 153430 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 O$ES$oPg(=}AN~(nDm`uh literal 0 HcmV?d00001 diff --git a/ide/src/figures/OperationSkills/collectskillg.jpg b/ide/src/figures/OperationSkills/collectskillg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4bdf5183c7aa3aa6c24dea3ca46a863915a04f4 GIT binary patch literal 115704 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