From 0145a2188df80e21ac76c5c0d1a13c7337f56464 Mon Sep 17 00:00:00 2001 From: wangziyi Date: Thu, 12 Oct 2023 11:36:09 +0800 Subject: [PATCH] first modify Signed-off-by: wangziyi --- ide/src/trace/component/SpSystemTrace.ts | 26 +++++++++++++++-- .../trace/sheet/TabPaneCurrentSelection.ts | 29 ++++++++++--------- .../trace/sheet/cpu/TabPaneCounterSample.ts | 3 ++ .../trace/sheet/cpu/TabPaneCpuStateClick.ts | 2 +- .../component/trace/sheet/freq/TabPaneFreq.ts | 2 +- .../database/ui-worker/ProcedureWorkerCPU.ts | 4 +++ 6 files changed, 48 insertions(+), 18 deletions(-) diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index 2dac1609..9a71d03b 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -272,11 +272,26 @@ export class SpSystemTrace extends BaseElement { if (SpSystemTrace.btnTimer) { return; } - // 唤醒树有值则不再重复添加 + // 唤醒树有值则不再重复添加 + const startIndex = CpuStruct.selectCpuStruct!.displayProcess?.indexOf('[') if (SpSystemTrace.wakeupList.length === 0) { SpSystemTrace.wakeupList.unshift(CpuStruct.wakeupBean!); this.queryCPUWakeUpList(CpuStruct.wakeupBean!); CpuStruct.selectCpuStruct!.ts = CpuStruct.selectCpuStruct!.startTime; + CpuStruct.selectCpuStruct!.thread = CpuStruct.selectCpuStruct!.name; + CpuStruct.selectCpuStruct!.pid = CpuStruct.selectCpuStruct!.processId; + CpuStruct.selectCpuStruct!.process = CpuStruct.selectCpuStruct!.displayProcess?.substring(0, startIndex).trim(); + CpuStruct.selectCpuStruct!.itid = CpuStruct.wakeupBean!.itid; + sessionStorage.setItem('saveselectcpustruct', JSON.stringify(CpuStruct.selectCpuStruct)) + } else { + this.wakeupListNull() + SpSystemTrace.wakeupList.unshift(CpuStruct.wakeupBean!); + this.queryCPUWakeUpList(CpuStruct.wakeupBean!); + CpuStruct.selectCpuStruct!.ts = CpuStruct.selectCpuStruct!.startTime; + CpuStruct.selectCpuStruct!.thread = CpuStruct.selectCpuStruct!.name; + CpuStruct.selectCpuStruct!.pid = CpuStruct.selectCpuStruct!.processId; + CpuStruct.selectCpuStruct!.process = CpuStruct.selectCpuStruct!.displayProcess?.substring(0, startIndex).trim(); + CpuStruct.selectCpuStruct!.itid = CpuStruct.wakeupBean!.itid; sessionStorage.setItem('saveselectcpustruct', JSON.stringify(CpuStruct.selectCpuStruct)) } setTimeout(() => { @@ -2515,14 +2530,19 @@ export class SpSystemTrace extends BaseElement { for (const item of SpSystemTrace.wakeupList) { if (item.ts === CpuStruct.wakeupBean.ts && item.wakeupTime === CpuStruct.wakeupBean.wakeupTime) { checkHandlerKey = false; - if (SpSystemTrace.wakeupList[0].itid) { + if (SpSystemTrace.wakeupList[0].schedulingDesc) { SpSystemTrace.wakeupList.unshift(JSON.parse(sessionStorage.getItem('saveselectcpustruct')!)) } this.refreshCanvas(true) break; } } - if (checkHandlerKey) { + // 点击线程在唤醒树内 + if (!checkHandlerKey) { + // 查询获取tab表格数据 + window.publish(window.SmartEvent.UI.WakeupList, SpSystemTrace.wakeupList); + } else { + // 不在唤醒树内,清空数组 this.wakeupListNull() this.refreshCanvas(true) } diff --git a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts index 90f10b4e..8697e6b7 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts @@ -159,7 +159,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startTime || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTime || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Duration', value: getTimeString(data.dur || 0) }); list.push({ name: 'Prio', value: data.priority || 0 }); @@ -324,7 +324,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Duration', @@ -342,7 +342,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); contentList.push({ name: 'StartTime(Absolute)', - value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); contentList.push({ name: 'Duration', @@ -385,7 +385,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startNS || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startNS || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Value', @@ -410,7 +410,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startTime || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTime || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Value', value: data.value }); list.push({ name: 'Delta', value: data.delta }); @@ -436,7 +436,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startNS || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startNS || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Name', value: data.name }); list.push({ name: 'Duration', value: getTimeString(data.dur || 0) }); @@ -472,7 +472,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startTime || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTime || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Duration', value: getTimeString(data.dur || 0) }); let state; @@ -761,7 +761,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.ts || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.ts || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'end time', @@ -783,7 +783,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.rs_ts || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.rs_ts || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'end time', @@ -843,7 +843,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); if (data.dur && data.dur > 0) { list.push({ @@ -927,7 +927,7 @@ export class TabPaneCurrentSelection extends BaseElement { }); list.push({ name: 'StartTime(Absolute)', - value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.startTs || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Duration', value: getTimeString(data.dur || 0) }); this.currentSelectionTbl!.dataSource = list; @@ -1007,7 +1007,7 @@ export class TabPaneCurrentSelection extends BaseElement { list.push({ name: 'StartTime(Relative)', value: getTimeString(data.ts || 0) }); list.push({ name: 'StartTime(Absolute)', - value: ((data.ts || 0) + (window as any).recordStartNS) / 1000000000, + value: ((data.ts || 0) + (window as any).recordStartNS) / 1000000000 + 's', }); list.push({ name: 'Duration', value: data.dur ? getTimeString(data.dur) : ' ' }); if (data.frame_type !== 'frameTime') { @@ -1260,7 +1260,10 @@ export class TabPaneCurrentSelection extends BaseElement { return wake; }); if (this.selectWakeupBean) { - resource.unshift(this.selectWakeupBean); + // 点击第一层唤醒树时向数组头部添加当前点击信息 + if (data[0].schedulingLatency) { + resource.unshift(this.selectWakeupBean); + } maxDuration = Math.max(maxDuration, this.selectWakeupBean.dur); maxPriority = Math.max(maxPriority, this.selectWakeupBean.priority); } diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts index f3272ad2..6429cd8d 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneCounterSample.ts @@ -185,6 +185,7 @@ export class TabPaneCounterSample extends BaseElement { sampleMap.set(item.filterId + '-' + item.value, { ...item, counter: 'Cpu ' + item.cpu, + count:initCounterResultList.filter(ele => ele.value === item.value).length }); } }); @@ -259,6 +260,8 @@ export class TabPaneCounterSample extends BaseElement { + +
diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuStateClick.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuStateClick.ts index 56a8f5c6..99cb870d 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuStateClick.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneCpuStateClick.ts @@ -27,7 +27,7 @@ export class TabPaneCpuStateClick extends BaseElement { this.cpuStateClickTbl!.recycleDataSource = [ { startNS: Utils.getTimeString(cpuStateClickValue.startTs), - absoluteTime: (cpuStateClickValue.startTs + (window as any).recordStartNS) / 1000000000, + absoluteTime: (cpuStateClickValue.startTs + (window as any).recordStartNS) / 1000000000 + 's', dur: Utils.getProbablyTime(cpuStateClickValue.dur), state: cpuStateClickValue.value, cpu: `Cpu ${cpuStateClickValue.cpu}`, diff --git a/ide/src/trace/component/trace/sheet/freq/TabPaneFreq.ts b/ide/src/trace/component/trace/sheet/freq/TabPaneFreq.ts index 3c37d3d3..d5d97ffe 100644 --- a/ide/src/trace/component/trace/sheet/freq/TabPaneFreq.ts +++ b/ide/src/trace/component/trace/sheet/freq/TabPaneFreq.ts @@ -28,7 +28,7 @@ export class TabPaneFreq extends BaseElement { this.freqTbl!.recycleDataSource = [ { startNS: Utils.getTimeString(freqData.startNS >= 0 ? freqData.startNS : 0), - absoluteTime: (freqData.startNS + (window as any).recordStartNS) / 1000000000, + absoluteTime: (freqData.startNS + (window as any).recordStartNS) / 1000000000 + 's', dur: Utils.getProbablyTime(freqData.dur), freq: `${ColorUtils.formatNumberComma(freqData.value!)} kHz`, cpu: `Cpu ${freqData.cpu}`, diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts index 374a5329..a7849a9e 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerCPU.ts @@ -300,6 +300,10 @@ export class CpuStruct extends BaseStruct { v: boolean = false; nofinish: boolean = false; ts:number | undefined; + itid: number | undefined; + process: string | undefined; + pid: number | undefined; + thread: string | undefined; static draw(ctx: CanvasRenderingContext2D, data: CpuStruct, translateY: number) { if (data.frame) { let width = data.frame.width || 0; -- Gitee