From e4624c688907ffc5daeb48d55bd2872e2cbdac1c Mon Sep 17 00:00:00 2001 From: wangyujie Date: Thu, 26 Dec 2024 17:28:35 +0800 Subject: [PATCH 01/26] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8Dtid=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=B7=B7=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangyujie --- ide/src/trace/component/SpSystemTrace.event.ts | 4 ++-- ide/src/trace/component/SpSystemTrace.line.ts | 3 ++- ide/src/trace/component/SpSystemTrace.ts | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ide/src/trace/component/SpSystemTrace.event.ts b/ide/src/trace/component/SpSystemTrace.event.ts index 6dc092458..4b29adc14 100644 --- a/ide/src/trace/component/SpSystemTrace.event.ts +++ b/ide/src/trace/component/SpSystemTrace.event.ts @@ -349,8 +349,8 @@ function cpuClickHandlerFunc(sp: SpSystemTrace) { } sp.observerScrollHeightEnable = true; let threadRow = sp.queryAllTraceRow>( - `trace-row[row-id='${Utils.getDistributedRowId(d.tid)}'][row-type='thread']`, - (row) => row.rowId === `${d.tid}` && row.rowType === 'thread' + `trace-row[row-id='${Utils.getDistributedRowId(d.tid)}'][row-type='thread'][row-parent-id='${traceRow?.rowId}']`, + (row) => row.rowId === `${d.tid}` && row.rowType === 'thread' && row.rowParentId === traceRow?.rowId )[0]; sp.currentRow = threadRow; if (threadRow) { diff --git a/ide/src/trace/component/SpSystemTrace.line.ts b/ide/src/trace/component/SpSystemTrace.line.ts index 0deb3b05b..f2b0f2624 100644 --- a/ide/src/trace/component/SpSystemTrace.line.ts +++ b/ide/src/trace/component/SpSystemTrace.line.ts @@ -768,7 +768,8 @@ export function spSystemTraceDrawThreadLine( return; } let selectRowId = selectThreadStruct.tid; - let startRow = sp.getStartRow(selectRowId, collectList); + let selectRowPid = selectThreadStruct.pid; + let startRow = sp.getStartRow(selectRowId, selectRowPid, collectList); if (endParentRow) { //@ts-ignore diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index c4fb40d1b..238e7379f 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -1647,14 +1647,14 @@ export class SpSystemTrace extends BaseElement { spSystemTraceDrawFuncLine(this, endParentRow, selectFuncStruct, data, binderTid); } - getStartRow(selectRowId: number | undefined, collectList: unknown[]): unknown { + getStartRow(selectRowId: number | undefined, selectRowPid: number | undefined, collectList: unknown[]): unknown { let startRow = this.shadowRoot?.querySelector>( - `trace-row[row-id='${selectRowId}'][row-type='thread']` + `trace-row[row-id='${selectRowId}'][row-parent-id='${selectRowPid}'][row-type='thread']` ); if (!startRow) { for (let collectChart of collectList) { // @ts-ignore - if (collectChart.rowId === selectRowId?.toString() && collectChart.rowType === 'thread') { + if (collectChart.rowId === selectRowId?.toString() && collectChart.rowParentId === selectRowPid?.toString() && collectChart.rowType === 'thread') { // @ts-ignore startRow = collectChart; break; -- Gitee From 73eca1d4ba6e8842e137f817438aec150e0bfd81 Mon Sep 17 00:00:00 2001 From: liufei Date: Thu, 26 Dec 2024 18:02:26 +0800 Subject: [PATCH 02/26] =?UTF-8?q?fix:ai=E9=97=AE=E7=AD=94=E5=92=8C?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=8E=A5=E5=8F=A3=E5=88=86=E7=A6=BB=EF=BC=8C?= =?UTF-8?q?token=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liufei --- .../statistics/util/SpStatisticsHttpUtil.ts | 8 ++-- ide/src/trace/component/SpAiAnalysisPage.ts | 40 +++++++++++-------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/ide/src/statistics/util/SpStatisticsHttpUtil.ts b/ide/src/statistics/util/SpStatisticsHttpUtil.ts index ff29b5394..a1d4a77f0 100644 --- a/ide/src/statistics/util/SpStatisticsHttpUtil.ts +++ b/ide/src/statistics/util/SpStatisticsHttpUtil.ts @@ -217,7 +217,7 @@ export class SpStatisticsHttpUtil { } // ai对话接口--获取token - static async getAItoken(): Promise { + static async getAItoken(params:string): Promise { let controller = new AbortController(); let response: AiResponse = { status: 0, @@ -226,7 +226,7 @@ export class SpStatisticsHttpUtil { setTimeout(() => { controller.abort(); }, 60000); - let res = await window.fetch(`https://${window.location.host}/takeToken`, { + let res = await window.fetch(`https://${window.location.host}/${params}`, { method: 'post', signal: controller.signal, headers: { @@ -247,7 +247,7 @@ export class SpStatisticsHttpUtil { // ai对话接口--问答 // @ts-ignore - static askAi(requestBody): Promise { + static askAi(requestBody,params:string): Promise { return new Promise((resolve, reject) => { let controller = new AbortController(); let date = Date.now(); @@ -262,7 +262,7 @@ export class SpStatisticsHttpUtil { setTimeout(() => { controller.abort(); }, 60000); - window.fetch(`https://${window.location.host}/ask`, { + window.fetch(`https://${window.location.host}/${params}`, { method: 'post', signal: controller.signal, headers: { diff --git a/ide/src/trace/component/SpAiAnalysisPage.ts b/ide/src/trace/component/SpAiAnalysisPage.ts index 538801982..201d6b417 100644 --- a/ide/src/trace/component/SpAiAnalysisPage.ts +++ b/ide/src/trace/component/SpAiAnalysisPage.ts @@ -56,7 +56,8 @@ export class SpAiAnalysisPage extends BaseElement { private showPageFlag: string = 'chat'; private tipContentArr: Array = []; private question: string = ''; - private token: string = ''; + private chatToken: string = ''; + private detectToken: string = ''; // 是否点击了新建聊天 private isNewChat: boolean = false; isCtrlDown: boolean = false; @@ -187,7 +188,7 @@ export class SpAiAnalysisPage extends BaseElement { this.newChatEl?.addEventListener('click', () => { this.isNewChat = true; this.isResultBack = true; - this.token = ''; + this.chatToken = ''; this.q_a_window!.innerHTML = ''; this.createAiChatBox('有什么可以帮助您的吗?'); }); @@ -365,10 +366,10 @@ export class SpAiAnalysisPage extends BaseElement { this.createAiChatBox('AI智能分析中...'); this.q_a_window!.scrollTop = this.q_a_window!.scrollHeight; // 没有token - if (this.token === '') { - await this.getToken90Min(true); + if (this.chatToken === '') { + await this.getToken90Min('aiTakeToken', true); } - if (this.token !== '') { + if (this.chatToken !== '') { this.answer(); } this.isResultBack = true; @@ -378,13 +379,13 @@ export class SpAiAnalysisPage extends BaseElement { // ai对话 async answer(): Promise { let requestBody = { - token: this.token, + token: this.chatToken, question: this.question, collection: 'smart_perf_test', scope: 'smartperf' }; - await SpStatisticsHttpUtil.askAi(requestBody).then(res => { + await SpStatisticsHttpUtil.askAi(requestBody, 'aiAsk').then(res => { if (res.status === 200) { SpStatisticsHttpUtil.generalRecord('AI_statistic', 'large_model_q&a', []); } @@ -456,8 +457,9 @@ export class SpAiAnalysisPage extends BaseElement { //生成表格导航 //@ts-ignore this.renderTblNav(dataList); - if (this.token === '') { - await this.getToken90Min(false); + this.renderTblNav(dataList); + if (this.detectToken === '') { + await this.getToken90Min('takeToken', false); } // @ts-ignore for (let i = 0; i < dataList.length; i++) { @@ -570,15 +572,19 @@ export class SpAiAnalysisPage extends BaseElement { super.connectedCallback(); } - async getToken(isChat?: boolean): Promise { - let data = await SpStatisticsHttpUtil.getAItoken(); + async getToken(params: string, isChat?: boolean): Promise { + let data = await SpStatisticsHttpUtil.getAItoken(params); if (data.status !== 200) { if (isChat) { this.aiAnswerBox!.firstElementChild!.innerHTML = '获取token失败'; } return; } else { - this.token = data.data; + if (isChat) { + this.chatToken = data.data; + } else { + this.detectToken = data.data; + } } } @@ -620,10 +626,10 @@ export class SpAiAnalysisPage extends BaseElement { } // 每90min重新获取token - async getToken90Min(isChat: boolean): Promise { - await this.getToken(isChat); + async getToken90Min(params: string, isChat: boolean): Promise { + await this.getToken(params, isChat); setInterval(async () => { - await this.getToken(isChat); + await this.getToken(params, isChat); }, 5400000); } @@ -635,11 +641,11 @@ export class SpAiAnalysisPage extends BaseElement { timeList: Array ): void { SpStatisticsHttpUtil.askAi({ - token: this.token, + token: this.detectToken, // @ts-ignore question: dataList[i].description + ',请问该怎么优化?', collection: '' - }).then((suggestion) => { + },'ask').then((suggestion) => { this.appendMsg(dataList, i, suggestonDiv, timeList, suggestion); }).catch((error) => { this.appendMsg(dataList, i, suggestonDiv, timeList, error); -- Gitee From 122f6d91fcef3d723a7aab12622bb0880d47783c Mon Sep 17 00:00:00 2001 From: liufei Date: Fri, 27 Dec 2024 18:39:52 +0800 Subject: [PATCH 03/26] =?UTF-8?q?fix:=E9=97=AE=E9=A2=98=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E4=BF=AE=E6=94=B97=E4=B8=AA=E9=97=AE=E9=A2=98=EF=BC=8Cthread?= =?UTF-8?q?=20states=E8=A1=A8=E6=A0=BC=E9=97=B4=E8=B7=9D=E8=B0=83=E6=95=B4?= =?UTF-8?q?=EF=BC=8Cai=E9=97=AE=E7=AD=94=E9=93=BE=E6=8E=A5=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E6=96=B0=E5=BC=80=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liufei --- ide/src/trace/component/SpAiAnalysisPage.ts | 16 +++++++++ .../trace/sheet/hiperf/TabPanePerfAnalysis.ts | 36 ++++++++++--------- .../trace/sheet/hiperf/TabPerfBottomUp.ts | 21 +++++++++-- .../TabPaneNMStatisticAnalysis.ts | 2 +- .../trace/sheet/parallel/ParallelUtil.ts | 6 ++-- .../trace/sheet/process/TabPaneSlices.ts | 9 +++-- .../sheet/states/TabPaneFreqStatesDataCut.ts | 24 ++++++------- 7 files changed, 76 insertions(+), 38 deletions(-) diff --git a/ide/src/trace/component/SpAiAnalysisPage.ts b/ide/src/trace/component/SpAiAnalysisPage.ts index 201d6b417..de0a2c69e 100644 --- a/ide/src/trace/component/SpAiAnalysisPage.ts +++ b/ide/src/trace/component/SpAiAnalysisPage.ts @@ -98,6 +98,21 @@ export class SpAiAnalysisPage extends BaseElement { html: true, typographer: true }); + // 自定义 link_open 规则 + // @ts-ignore + this.md.renderer.rules.link_open = (tokens, idx) => { + // @ts-ignore + const href = tokens![idx].attrIndex('href'); + if (href < 0) { + return ''; + } + // @ts-ignore + tokens[idx].attrPush(['target', '_blank']); // 添加 target="_blank" + // @ts-ignore + tokens[idx].attrPush(['rel', 'noopener noreferrer']); // 推荐添加 rel="noopener noreferrer" 以提高安全性 + // @ts-ignore + return ``; + }; let aiAssistant = document.querySelector('body > sp-application')!.shadowRoot!.querySelector('#sp-ai-analysis'); this.chatBar = this.shadowRoot?.querySelector('.chatBar'); let closeBtn = document.querySelector('body > sp-application')!.shadowRoot!.querySelector('#sp-ai-analysis')!.shadowRoot!.querySelector('div.rightTabBar > lit-icon')!.shadowRoot!.querySelector('#icon'); @@ -326,6 +341,7 @@ export class SpAiAnalysisPage extends BaseElement { // 重新导trace、db时,初始化诊断功能 clear(): void { + this.tipContentArr = []; // 判断是否有上一次未完成的优化建议请求,如果有则断掉 if (SpStatisticsHttpUtil.controllersMap.size > 0) { SpStatisticsHttpUtil.isInterrupt = true; diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts index a2ae261cd..a5137cb8e 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts @@ -25,6 +25,7 @@ import { LitCheckBox } from '../../../../../base-ui/checkbox/LitCheckBox'; import { initSort } from '../SheetUtils'; import { TabpanePerfProfile } from './TabPerfProfile'; import { TabPanePerfAnalysisHtml } from './TabPanePerfAnalysis.html'; +import { TabpanePerfBottomUp } from './TabPerfBottomUp'; @element('tabpane-perf-analysis') export class TabPanePerfAnalysis extends BaseElement { @@ -119,7 +120,7 @@ export class TabPanePerfAnalysis extends BaseElement { let perfProfileTab = this.parentElement?.parentElement?.querySelector( '#box-perf-profile > tabpane-perf-profile' ); - if (detail.button === 2) { + if (detail.button === 2 && detail.tableName && detail.tableName !== '') { perfProfileTab!.cWidth = this.clientWidth; perfProfileTab!.currentLevel = this.currentLevel; if (this.hideProcessCheckBox?.checked && this.hideThreadCheckBox?.checked) { @@ -336,25 +337,25 @@ export class TabPanePerfAnalysis extends BaseElement { tip: (perfObj): string => { return `
Process:${ - // @ts-ignore - perfObj.obj.tableName - }
+ // @ts-ignore + perfObj.obj.tableName + }
Sample Count:${ - // @ts-ignore - perfObj.obj.count - }
+ // @ts-ignore + perfObj.obj.count + }
Percent:${ - // @ts-ignore - perfObj.obj.percent - }%
+ // @ts-ignore + perfObj.obj.percent + }%
Event Count:${ - // @ts-ignore - perfObj.obj.eventCount - }
+ // @ts-ignore + perfObj.obj.eventCount + }
Percent:${ - // @ts-ignore - perfObj.obj.eventPercent - }%
+ // @ts-ignore + perfObj.obj.eventPercent + }% `; }, @@ -1080,7 +1081,7 @@ export class TabPanePerfAnalysis extends BaseElement { // @ts-ignore other.percent = ((other.count / this.sumCount!) * 100).toFixed(2); // @ts-ignore - other.eventCount += res[i].eventCount; + other.eventCount += res[i].eventCount; // @ts-ignore other.eventPercent = ((other.eventCount / this.sumEventCount!) * 100).toFixed(2); } @@ -1110,6 +1111,7 @@ export class TabPanePerfAnalysis extends BaseElement { } this.progressEL!.loading = false; this.getHiperfProcess(val); + TabpanePerfBottomUp.isStartGetData = true; }); } diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts index e5de9abcd..ba564fd71 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts @@ -37,6 +37,8 @@ export class TabpanePerfBottomUp extends BaseElement { private progressEL: LitProgressBar | null | undefined; private searchValue: string = ''; private currentSelection: SelectionParam | undefined; + private static instance: TabpanePerfBottomUp | null;; + static isStartGetData: boolean = true; public initElements(): void { this.bottomUpTable = this.shadowRoot?.querySelector('#callTreeTable') as LitTable; @@ -61,6 +63,12 @@ export class TabpanePerfBottomUp extends BaseElement { }); } + public getBottomData(data: SelectionParam) { + this.getDataByWorker(data, (results: Array) => { + this.setBottomUpTableData(results); + }); + } + private getDataByWorker(val: SelectionParam, handler: (results: Array) => void): void { this.progressEL!.loading = true; const args = [ @@ -91,9 +99,16 @@ export class TabpanePerfBottomUp extends BaseElement { this.sortKey = ''; this.sortType = 0; this.bottomUpFilter!.filterValue = ''; - this.getDataByWorker(data, (results: Array) => { - this.setBottomUpTableData(results); - }); + if (TabpanePerfBottomUp.isStartGetData) { + this.getBottomData(data); + } else { + let timer = setInterval(() => { + if (TabpanePerfBottomUp.isStartGetData) { + this.getBottomData(data); + clearInterval(timer); + } + }, 1000) + } } private setBottomUpTableData(results: Array): void { 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 852d6ad5c..c7ad06e3d 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatisticAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMStatisticAnalysis.ts @@ -294,7 +294,7 @@ export class TabPaneNMStatisticAnalysis extends BaseElement { private clickRight(evt: unknown, title: string): void { // @ts-ignore - if (evt.detail.button === 2) { + if (evt.detail.button === 2 && evt.detail.tableName && evt.detail.tableName !== '') { let treeTab = this.parentElement?.parentElement?.querySelector( '#box-native-calltree > tabpane-nm-calltree' ); diff --git a/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts b/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts index 4b5918bcc..5ea366b5e 100644 --- a/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts +++ b/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts @@ -19,19 +19,19 @@ export function HanldParalLogic( func: (dumpObj: unknown, value?: unknown, param?: unknown) => unknown, value: unknown, param?: unknown): unknown { - // @ts-ignore + // @ts-ignore let arr = value.stateItem; let waitArr: unknown = []; let globalTs: number = 0; let index: number = 0; // @ts-ignore - while (index < arr.length || waitArr.length > 0) { + while (index < arr.length) { // @ts-ignore let minEndTs = Math.min(...waitArr.map((item: unknown) => item.endTs)); // @ts-ignore let minIndex = waitArr.findIndex((item: unknown) => item.endTs === minEndTs); //当waitArr为空时 - // @ts-ignore + // @ts-ignore if (waitArr.length === 0) { globalTs = arr[index].ts; // @ts-ignore diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts b/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts index 7b90d708a..4350b4fd0 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts @@ -93,7 +93,7 @@ export class TabPaneSlices extends BaseElement { this.isDbClick = true; FuncStruct.funcSelect = false; // @ts-ignore - data && this.orgnazitionData(data); + data && this.orgnazitionData(data, false); } }); this.slicesTbl!.addEventListener('contextmenu', () => { @@ -240,7 +240,8 @@ export class TabPaneSlices extends BaseElement { this.slicesTbl!.loading = false; }); } - async orgnazitionData(data: Object): Promise { + // @ts-ignore + async orgnazitionData(data: Object, isDbClick?: false): unknown { // @ts-ignore if (data!.tabTitle === 'Summary') { FuncStruct.funcSelect = true; @@ -259,6 +260,10 @@ export class TabPaneSlices extends BaseElement { // @ts-ignore await spSystemTrace!.searchFunction([], asyncFuncArr, data.name).then((mixedResults) => { if (mixedResults && mixedResults.length === 0) { + FuncStruct.funcSelect = true; + if (!isDbClick) { + this.isDbClick = false; + } return; } // @ts-ignore diff --git a/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts b/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts index b2db241a6..943633df1 100644 --- a/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts +++ b/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts @@ -785,34 +785,34 @@ export class TabPaneFreqStatesDataCut extends BaseElement {
-
+
- + - + - + - + - + - + - + - + - + - +
-
+
Cycle A: -- Gitee From bd547e58f7b5ca141f7902ec84a660118de31302 Mon Sep 17 00:00:00 2001 From: wangziyi Date: Sat, 28 Dec 2024 11:53:15 +0800 Subject: [PATCH 04/26] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangziyi --- ide/src/base-ui/popover/LitPopoverV.ts | 2 +- ide/src/base-ui/table/lit-table.ts | 2 +- ide/src/command/Cmd.ts | 8 +- ide/src/trace/SpApplication.ts | 10 +-- ide/src/trace/bean/BoxSelection.ts | 78 +++++++++---------- .../trace/component/SpRecordConfigModel.ts | 4 +- ide/src/trace/component/SpRecordTrace.ts | 49 ++++++------ ide/src/trace/component/SpSystemTrace.init.ts | 4 +- ide/src/trace/component/SpSystemTrace.ts | 10 +-- .../trace/component/chart/SpFrameTimeChart.ts | 4 +- .../trace/component/chart/SpProcessChart.ts | 4 +- .../component/chart/SpSegmentationChart.ts | 2 +- .../trace/component/chart/SpXpowerChart.ts | 16 ++-- ide/src/trace/component/setting/SpArkTs.ts | 2 +- .../trace/component/setting/SpRecordPerf.ts | 5 +- .../component/setting/SpRecordSetting.ts | 4 +- .../trace/component/setting/SpXPowerRecord.ts | 18 ++--- .../setting/utils/PluginConvertUtils.ts | 4 +- .../trace/component/trace/base/TraceRow.ts | 10 +-- .../component/trace/base/TraceRowConfig.ts | 2 +- .../component/trace/base/TraceSheetConfig.ts | 10 +-- ide/src/trace/component/trace/base/Utils.ts | 2 +- .../component/trace/sheet/TabPaneFilter.ts | 2 +- .../trace/sheet/cpu/TabPaneFrequencySample.ts | 2 +- .../trace/sheet/process/TabPaneSliceChild.ts | 24 ++++-- .../xpower/TabPaneXpowerComponentAudio.ts | 2 +- .../xpower/TabPaneXpowerComponentCamera.ts | 4 +- .../sheet/xpower/TabPaneXpowerComponentCpu.ts | 2 +- .../xpower/TabPaneXpowerComponentDisplay.ts | 2 +- .../sheet/xpower/TabPaneXpowerComponentTop.ts | 6 +- .../sheet/xpower/TabPaneXpowerGpuFreq.ts | 4 +- .../xpower/TabPaneXpowerGpuFreqSelection.ts | 4 +- .../TabPaneXpowerStatisticCurrentData.ts | 2 +- .../sheet/xpower/TabPaneXpowerThreadEnergy.ts | 8 +- .../TabPaneXpowerThreadInfoSelection.ts | 8 +- .../sheet/xpower/TabPaneXpowerThreadLoad.ts | 2 +- .../sheet/xpower/TabPaneXpowerWifiPackets.ts | 2 +- .../trace/sheet/xpower/XpowerUtil.ts | 8 +- .../component/trace/timer-shaft/RangeRuler.ts | 2 +- ide/src/trace/database/StateBusyTimeWorker.ts | 4 +- .../trace/database/TabPaneFreqUsageWorker.ts | 3 +- .../data-trafic/FrameJanksReceiver.ts | 2 +- .../xpower/XpowerGpuFrequencyRecevier.ts | 6 +- .../xpower/XpowerGpuFrequencySender.ts | 4 +- .../logic-worker/ProcedureLogicWorkerPerf.ts | 22 +++--- ide/src/trace/database/sql/Xpower.sql.ts | 12 +-- .../database/ui-worker/ProcedureWorker.ts | 2 +- .../ui-worker/ProcedureWorkerSnaps.ts | 4 +- .../ui-worker/ProcedureWorkerXpowerGpuFreq.ts | 2 +- .../ProcedureWorkerXpowerGpuFreqCount.ts | 4 +- .../ProcedureWorkerXpowerStatistic.ts | 2 +- .../ProcedureWorkerXpowerThreadCount.ts | 20 ++++- .../ProcedureWorkerXpowerThreadInfo.ts | 14 ++-- ide/src/webSocket/WebSocketManager.ts | 12 +-- 54 files changed, 238 insertions(+), 209 deletions(-) diff --git a/ide/src/base-ui/popover/LitPopoverV.ts b/ide/src/base-ui/popover/LitPopoverV.ts index d16bab7c1..f06f5a6f1 100644 --- a/ide/src/base-ui/popover/LitPopoverV.ts +++ b/ide/src/base-ui/popover/LitPopoverV.ts @@ -463,7 +463,7 @@ export class LitPopover extends BaseElement { }; // @ts-ignore popover.onmouseleave = (): void => { this.focus(); - if(this.haveCheckbox){ + if (this.haveCheckbox) { // @ts-ignore this.visible = false; } diff --git a/ide/src/base-ui/table/lit-table.ts b/ide/src/base-ui/table/lit-table.ts index 4a3c39128..d5b410511 100644 --- a/ide/src/base-ui/table/lit-table.ts +++ b/ide/src/base-ui/table/lit-table.ts @@ -90,7 +90,7 @@ export class LitTable extends HTMLElement { } get slotArr(): Array { - return this.st!.assignedElements() + return this.st!.assignedElements(); } set mode(mode: TableMode) { diff --git a/ide/src/command/Cmd.ts b/ide/src/command/Cmd.ts index 6d0e68fe8..72eb6981c 100644 --- a/ide/src/command/Cmd.ts +++ b/ide/src/command/Cmd.ts @@ -234,12 +234,16 @@ export class Cmd { resolve(Cmd.convertOutProcessList(res)); }); } else if (SpRecordTrace.useExtend) { - WebSocketManager.getInstance()!.sendMessage(TypeConstants.USB_TYPE, TypeConstants.USB_GET_PROCESS, new TextEncoder().encode(SpRecordTrace.serialNumber)); + WebSocketManager.getInstance()!.sendMessage( + TypeConstants.USB_TYPE, + TypeConstants.USB_GET_PROCESS, + new TextEncoder().encode(SpRecordTrace.serialNumber) + ); setTimeout(() => { if (SpRecordTrace.allProcessListStr) { resolve(Cmd.convertOutProcessList(SpRecordTrace.allProcessListStr)); } - }, 1000) + }, 1000); } else { HdcDeviceManager.connect(SpRecordTrace.serialNumber).then((conn): void => { if (conn) { diff --git a/ide/src/trace/SpApplication.ts b/ide/src/trace/SpApplication.ts index 0c8cc8db4..6c521e1e3 100644 --- a/ide/src/trace/SpApplication.ts +++ b/ide/src/trace/SpApplication.ts @@ -17,7 +17,7 @@ import { BaseElement, element } from '../base-ui/BaseElement'; import '../base-ui/menu/LitMainMenu'; import '../base-ui/icon/LitIcon'; import '../base-ui/loading/LitLoading'; -import '../base-ui/like/LitLike'; +import '../base-ui/like/LitLike'; import { SpMetrics } from './component/SpMetrics'; import { SpHelp } from './component/SpHelp'; import './component/SpHelp'; @@ -665,7 +665,7 @@ export class SpApplication extends BaseElement { }; } - private judgeDBOrWasm(ev: File, typeHeader: Blob, showFileName: string) { + private judgeDBOrWasm(ev: File, typeHeader: Blob, showFileName: string): void { let fileReader: FileReader | null = new FileReader(); fileReader.readAsText(typeHeader); fileReader.onload = (event): void => { @@ -680,10 +680,10 @@ export class SpApplication extends BaseElement { this.wasm = true; this.handleWasmMode(ev, showFileName, ev.size, ev.name); } - } + }; } - private judgeZip(typeHeader: Blob) { + private judgeZip(typeHeader: Blob): void { const fileReader = new FileReader(); fileReader.readAsArrayBuffer(typeHeader); fileReader.onload = (event):void => { @@ -2547,7 +2547,7 @@ export class SpApplication extends BaseElement { }, 4000); // 存入缓存 const blob = new Blob([reqBufferDB]); - const response = new Response(blob) + const response = new Response(blob); caches.open('DB-file').then(cache => { return cache.put(`/${fileName}`, response); }) diff --git a/ide/src/trace/bean/BoxSelection.ts b/ide/src/trace/bean/BoxSelection.ts index 0ce5f4184..380d96548 100644 --- a/ide/src/trace/bean/BoxSelection.ts +++ b/ide/src/trace/bean/BoxSelection.ts @@ -74,29 +74,29 @@ export class SelectionParam { >(); dmaFenceNameData: Array = [];//新增框选dma_fence数据 xpowerMapData: Map Promise> | undefined) | undefined> = new Map< - string, - ((arg: unknown) => Promise> | undefined) | undefined ->(); -xpowerComponentTopMapData: Map Promise> | undefined) | undefined> = new Map< -string, -((arg: unknown) => Promise> | undefined) | undefined ->(); + string, + ((arg: unknown) => Promise> | undefined) | undefined + >(); + xpowerComponentTopMapData: Map Promise> | undefined) | undefined> = new Map< + string, + ((arg: unknown) => Promise> | undefined) | undefined + >(); xpowerStatisticMapData: Map Promise> | undefined) | undefined> = new Map(); xpowerDisplayMapData: Map Promise> | undefined) | undefined> = new Map(); xpowerWifiPacketsMapData: Map Promise> | undefined) | undefined> = new Map(); xpowerWifiBytesMapData: Map Promise> | undefined) | undefined> = new Map(); -xpowerThreadEnergyMapData: Map Promise> | undefined) | undefined> = new Map< -string, -((arg: unknown) => Promise> | undefined) | undefined ->(); -xpowerThreadLoadMapData: Map Promise> | undefined) | undefined> = new Map< -string, -((arg: unknown) => Promise> | undefined) | undefined ->(); -xpowerGpuFreqMapData: Map Promise> | undefined) | undefined> = new Map< -string, -((arg: unknown) => Promise> | undefined) | undefined ->(); + xpowerThreadEnergyMapData: Map Promise> | undefined) | undefined> = new Map< + string, + ((arg: unknown) => Promise> | undefined) | undefined + >(); + xpowerThreadLoadMapData: Map Promise> | undefined) | undefined> = new Map< + string, + ((arg: unknown) => Promise> | undefined) | undefined + >(); + xpowerGpuFreqMapData: Map Promise> | undefined) | undefined> = new Map< + string, + ((arg: unknown) => Promise> | undefined) | undefined + >(); hangMapData: Map Promise> | undefined) | undefined> = new Map(); irqCallIds: Array = []; @@ -396,12 +396,12 @@ string, filterFunc.funName!.indexOf('H:Task ') >= 0; // @ts-ignore let taskData = it.dataListCache.filter((taskData: FuncStruct) => { - taskData!.tid = isNaN(Number(it.rowId!)) && typeof it.rowId! === 'string' ? - (function(): number | undefined { - const match = (it.rowId!).match(/-(\d+)/); - return match ? parseInt(match[1]) : undefined; - })() : - parseInt(it.rowId!); + taskData!.tid = isNaN(Number(it.rowId!)) && typeof it.rowId! === 'string' ? + (function (): number | undefined { + const match = (it.rowId!).match(/-(\d+)/); + return match ? parseInt(match[1]) : undefined; + })() : + parseInt(it.rowId!); return isIntersect(taskData, TraceRow.rangeSelectObject!); }); if (taskData.length > 0) { @@ -1197,14 +1197,14 @@ string, } if (it.rowType === TraceRow.ROW_TYPE_XPOWER_SYSTEM) { this.xpowerMapData.set(it.rowId || '', it.getCacheData); - if(it.rowId === 'Battery.RealCurrent'){ + if (it.rowId === 'Battery.RealCurrent') { this.xpowerComponentTopMapData.set(it.rowId || '', it.getCacheData); } } - if (it.rowType === TraceRow.ROW_TYPE_XPOWER_STATISTIC){ + if (it.rowType === TraceRow.ROW_TYPE_XPOWER_STATISTIC) { this.xpowerStatisticMapData.set(it.rowId || '', it.getCacheData); } - if (it.rowType === TraceRow.ROW_TYPE_XPOWER_APP_DETAIL_DISPLAY){ + if (it.rowType === TraceRow.ROW_TYPE_XPOWER_APP_DETAIL_DISPLAY) { this.xpowerDisplayMapData.set(it.rowId || '', it.getCacheData); } if (it.rowType === TraceRow.ROW_TYPE_XPOWER_WIFI_PACKETS) { @@ -1214,27 +1214,27 @@ string, this.xpowerWifiBytesMapData.set(it.rowId || '', it.getCacheData); } if (it.rowType === TraceRow.ROW_TYPE_XPOWER_THREAD_COUNT) { - this.xpowerMapData.set(it.rowId || '', it.getCacheData); - } - if (it.rowType === TraceRow.ROW_TYPE_XPOWER_GPU_COUNT) { - this.xpowerMapData.set(it.rowId || '', it.getCacheData); - } + this.xpowerMapData.set(it.rowId || '', it.getCacheData); + } + if (it.rowType === TraceRow.ROW_TYPE_XPOWER_GPU_COUNT) { + this.xpowerMapData.set(it.rowId || '', it.getCacheData); + } } // @ts-ignore pushXpowerThreadInfo(it: TraceRow, sp: SpSystemTrace): void { if (it.rowType === TraceRow.ROW_TYPE_XPOWER_THREAD_INFO) { - if(it.rowId == THREAD_ENERGY){ - this.xpowerThreadEnergyMapData.set(it.rowId || '', it.getCacheData); - }else if(it.rowId == THREAD_LOAD){ - this.xpowerThreadLoadMapData.set(it.rowId || '', it.getCacheData); - } + if (it.rowId === THREAD_ENERGY) { + this.xpowerThreadEnergyMapData.set(it.rowId || '', it.getCacheData); + } else if (it.rowId === THREAD_LOAD) { + this.xpowerThreadLoadMapData.set(it.rowId || '', it.getCacheData); + } } } // @ts-ignore pushXpowerGpuFreq(it: TraceRow, sp: SpSystemTrace): void { if (it.rowType === TraceRow.ROW_TYPE_XPOWER_GPU_FREQUENCY) { - this.xpowerGpuFreqMapData.set(it.rowId || '', it.getCacheData); + this.xpowerGpuFreqMapData.set(it.rowId || '', it.getCacheData); } } // @ts-ignore diff --git a/ide/src/trace/component/SpRecordConfigModel.ts b/ide/src/trace/component/SpRecordConfigModel.ts index bc4513903..27f1e0106 100644 --- a/ide/src/trace/component/SpRecordConfigModel.ts +++ b/ide/src/trace/component/SpRecordConfigModel.ts @@ -512,7 +512,7 @@ export function createNativePluginConfig( if (spAllocations!.appProcess !== '' && spAllocations!.startSamp) { let nativeConfig = initNativePluginConfig(spAllocations, selectVersion); let maxProcessSize = 4; - if (selectVersion !== undefined && selectVersion !== '3.2' && selectVersion !=='unknown') { + if (selectVersion !== undefined && selectVersion !== '3.2' && selectVersion !== 'unknown') { nativeConfig.callframeCompress = true; nativeConfig.recordAccurately = spAllocations!.record_accurately; nativeConfig.offlineSymbolization = spAllocations!.offline_symbolization; @@ -552,7 +552,7 @@ function initNativePluginConfig(spAllocations: SpAllocations, selectVersion: str let appProcess = spAllocations!.appProcess; let processName = ''; let processId = ''; - if (spAllocations!.startup_mode && selectVersion !== '3.2'&& selectVersion !=='unknown') { + if (spAllocations!.startup_mode && selectVersion !== '3.2' && selectVersion !== 'unknown') { processName = appProcess; } else { if (appProcess.indexOf('(') !== -1) { diff --git a/ide/src/trace/component/SpRecordTrace.ts b/ide/src/trace/component/SpRecordTrace.ts index 5750b1189..68b3b05e7 100644 --- a/ide/src/trace/component/SpRecordTrace.ts +++ b/ide/src/trace/component/SpRecordTrace.ts @@ -9,7 +9,7 @@ * 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 + * See the License for the specific language governing permissions and * limitations under the License. */ @@ -454,7 +454,7 @@ export class SpRecordTrace extends BaseElement { }); } - isShowTipFunc(text: string, isShow: boolean) { + isShowTipFunc(text: string, isShow: boolean): void { if (isShow) { let guideSrc = `https://${window.location.host.split(':')[0]}:${window.location.port}/application/?action=help_27`; this.useExtentTip!.style.display = 'block'; @@ -532,7 +532,7 @@ export class SpRecordTrace extends BaseElement { let trackAllocations = this.spArkTs!.grabAllocations; // timeline check box let enableCpuProfiler = this.spArkTs!.isStartCpuProfiler; - let params: any = { + let params: unknown = { isRecordArkTs: isRecordArkTs, isRecordHitrace: isRecordHitrace, type: '', @@ -549,21 +549,21 @@ export class SpRecordTrace extends BaseElement { serialNum: SpRecordTrace.serialNumber }; - if (isStartCpuProfiler && !isStartMemoryProfiler) { + if (isStartCpuProfiler && !isStartMemoryProfiler) { // @ts-ignore params.type = 'cpuProf'; - } else if (!isStartCpuProfiler && isStartMemoryProfiler && isCheckSnapshot) { + } else if (!isStartCpuProfiler && isStartMemoryProfiler && isCheckSnapshot) {// @ts-ignore params.type = 'snapshot'; - } else if (!isStartCpuProfiler && isStartMemoryProfiler && isCheckTimeLine) { + } else if (!isStartCpuProfiler && isStartMemoryProfiler && isCheckTimeLine) {// @ts-ignore params.type = 'timeline'; - } else if (isStartCpuProfiler && isStartMemoryProfiler && isCheckSnapshot) { + } else if (isStartCpuProfiler && isStartMemoryProfiler && isCheckSnapshot) {// @ts-ignore params.type = 'cpuProf_snapshot'; - } else if (isStartCpuProfiler && isStartMemoryProfiler && isCheckTimeLine) { + } else if (isStartCpuProfiler && isStartMemoryProfiler && isCheckTimeLine) {// @ts-ignore params.type = 'cpuProf_timeline'; } - let onmessageCallBack = (cmd: number, result: any): void => { + let onmessageCallBack = (cmd: number, result: unknown): void => {// @ts-ignore if (cmd === 2 && result.byteLength > 0) { - let name = this.recordSetting!.output.split('/').reverse()[0]; + let name = this.recordSetting!.output.split('/').reverse()[0];// @ts-ignore let file = new File([result], name); let main = this!.parentNode!.parentNode!.querySelector('lit-main-menu') as LitMainMenu; let children = main.menus as Array; @@ -578,7 +578,7 @@ export class SpRecordTrace extends BaseElement { } } else if (cmd === 3) { this.sp!.search = false; - this.progressEL!.loading = false; + this.progressEL!.loading = false;// @ts-ignore let errorMsg = new TextDecoder().decode(result); this.useExtentTip!.style.display = 'block'; this.useExtentTip!.innerHTML = errorMsg; @@ -587,11 +587,11 @@ export class SpRecordTrace extends BaseElement { this.sp!.search = false; this.progressEL!.loading = false; } else if (cmd === 4) { - let aElement = document.createElement('a'); + let aElement = document.createElement('a');// @ts-ignore aElement.href = URL.createObjectURL(new Blob([result!])); aElement.download = 'arkts.htrace'; aElement.click(); - } else if (cmd === 5) { + } else if (cmd === 5) {// @ts-ignore SpRecordTrace.snapShotList = JSON.parse(new TextDecoder('utf-8').decode(result)) as string[]; } else if (cmd === 6) { this.litSearch!.setPercent('Start to record...', -1); @@ -603,7 +603,7 @@ export class SpRecordTrace extends BaseElement { }; WebSocketManager.getInstance()!.registerMessageListener(TypeConstants.ARKTS_TYPE, onmessageCallBack, this.eventCallBack); WebSocketManager.getInstance()!.sendMessage(TypeConstants.ARKTS_TYPE, 1, encoder.encode(JSON.stringify(params))); - } + }; recordTempAddProbe = (ev: CustomEventInit<{ elementId: string }>): void => { if ( @@ -663,19 +663,19 @@ export class SpRecordTrace extends BaseElement { this.showHint = true; } } - }) + }); }); } }; - eventCallBack = (result: string) => { + eventCallBack = (result: string): void => { this.recordButton!.hidden = true; this.disconnectButton!.hidden = true; this.disconnectButtonClickEvent(); this.useExtentTip!.style.display = 'block'; // @ts-ignore this.useExtentTip!.innerHTML = this.getStatusesPrompt()[result].prompt; - } + }; getStatusesPrompt(): unknown { let guideSrc = `https://${window.location.host.split(':')[0]}:${window.location.port @@ -683,7 +683,7 @@ export class SpRecordTrace extends BaseElement { return { unconnected: { prompt: `未连接,请启动本地扩展程序再试![指导]` - },// 重连 + }, // 重连 connected: { prompt: '扩展程序连接中,请稍后再试' }, // 中间 @@ -701,9 +701,9 @@ export class SpRecordTrace extends BaseElement { }, // 重连 upgradeFailed: { prompt: '刷新页面触发升级,或卸载扩展程序重装!' - },// 重连 - } - } + }, // 重连 + }; + }; webSocketCallBackasync = (cmd: number, result: Uint8Array): void => { const decoder = new TextDecoder(); @@ -713,7 +713,6 @@ export class SpRecordTrace extends BaseElement { this.hdcList = jsonRes.resultMessage; HdcDeviceManager.findDevice().then((usbDevices): void => { SpRecordTrace.serialNumber = usbDevices.serialNumber; - // let serialNum = jsonRes.resultMessage; this.usbSerialNum = jsonRes.resultMessage; let optionNum = 0; if (this.usbSerialNum.length === 1 && this.usbSerialNum[0].includes('Empty')) { @@ -784,7 +783,7 @@ export class SpRecordTrace extends BaseElement { } else if (cmd === TypeConstants.USB_GET_VERSION) { SpRecordTrace.usbGetVersion = jsonRes.resultMessage; } - } + }; deviceSelectMouseDownEvent = (evt: MouseEvent): void => { if (this.deviceSelect!.options.length === 0) { @@ -864,7 +863,7 @@ export class SpRecordTrace extends BaseElement { }; disconnectButtonClickEvent = (): void => { - this.setDeviceVersionSelect('unknown') + this.setDeviceVersionSelect('unknown'); let index = this.deviceSelect!.selectedIndex; if (index !== -1 && this.deviceSelect!.options.length > 0) { for (let i = 0; i < this.deviceSelect!.options.length; i++) { @@ -933,7 +932,7 @@ export class SpRecordTrace extends BaseElement { } } - reConfigPage() { + reConfigPage(): void { this.appContent = this.shadowRoot?.querySelector('#app-content') as HTMLElement; this.appContent.innerHTML = ''; this._menuItems = []; diff --git a/ide/src/trace/component/SpSystemTrace.init.ts b/ide/src/trace/component/SpSystemTrace.init.ts index 231afb8e8..f718f0243 100644 --- a/ide/src/trace/component/SpSystemTrace.init.ts +++ b/ide/src/trace/component/SpSystemTrace.init.ts @@ -165,8 +165,8 @@ function rightButtonOnClick(sp: SpSystemTrace, rightStar: HTMLElementAlias): unk sessionStorage.setItem('saveselectcpustruct', JSON.stringify(CpuStruct.selectCpuStruct)); } let rightButton: HTMLElement | null | undefined = sp.traceSheetEL?.shadowRoot - ?.querySelector("#current-selection > tabpane-current-selection") - ?.shadowRoot?.querySelector("#rightButton"); + ?.querySelector('#current-selection > tabpane-current-selection') + ?.shadowRoot?.querySelector('#rightButton'); rightButton?.blur(); setTimeout(() => { requestAnimationFrame(() => sp.refreshCanvas(false)); diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index 238e7379f..2da852325 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -649,7 +649,7 @@ export class SpSystemTrace extends BaseElement { GpuCounterStruct.selectGpuCounterStruct || DmaFenceStruct.selectDmaFenceStruct || XpowerThreadInfoStruct.selectXpowerStruct || - XpowerGpuFreqStruct.selectXpowerStruct + XpowerGpuFreqStruct.selectXpowerStruct; } top: number = 0; handler: number = -1; @@ -1771,7 +1771,7 @@ export class SpSystemTrace extends BaseElement { window.subscribe(window.SmartEvent.UI.ExportRecord, (params) => { let range = this.timerShaftEL?.rangeRuler?.range; // @ts-ignore - let searchVal = document.querySelector("body > sp-application").shadowRoot.querySelector("#lit-search").shadowRoot.querySelector("div.root > input")!.value; + let searchVal = document.querySelector('body > sp-application').shadowRoot.querySelector('#lit-search').shadowRoot.querySelector('div.root > input')!.value; if (range) { let expandRows = Array.from(this.rowsEL!.querySelectorAll>('trace-row[folder][expansion]')) || []; @@ -1793,7 +1793,7 @@ export class SpSystemTrace extends BaseElement { drawFlag: this.timerShaftEL!.sportRuler!.flagList, //下载时存M和shiftM的信息 markFlag: this.timerShaftEL!.sportRuler!.slicesTimeList, - search: searchVal?searchVal:'' + search: searchVal ? searchVal : '' }); this.downloadRecordFile(data).then(() => { }); } @@ -1842,9 +1842,9 @@ export class SpSystemTrace extends BaseElement { this.refreshCanvas(true); this.restoreRecordScrollTop(record.scrollTop, record.favoriteScrollTop); // @ts-ignore - document.querySelector("body > sp-application").shadowRoot.querySelector("#lit-search").shadowRoot.querySelector("div.root > input")!.value = record.search?record.search:''; + document.querySelector('body > sp-application').shadowRoot.querySelector('#lit-search').shadowRoot.querySelector('div.root > input')!.value = record.search ? record.search : ''; // @ts-ignore - document.querySelector("body > sp-application").shadowRoot.querySelector("#lit-search")!.valueChangeHandler!(record.search?record.search:''); + document.querySelector('body > sp-application').shadowRoot.querySelector('#lit-search')!.valueChangeHandler!(record.search ? record.search : ''); } }); } diff --git a/ide/src/trace/component/chart/SpFrameTimeChart.ts b/ide/src/trace/component/chart/SpFrameTimeChart.ts index 8ec4f2156..75eb0c998 100644 --- a/ide/src/trace/component/chart/SpFrameTimeChart.ts +++ b/ide/src/trace/component/chart/SpFrameTimeChart.ts @@ -180,8 +180,8 @@ export class SpFrameTimeChart { item.cmdline = this.pidToProcessNameMap.get(item.pid!); item.rs_name = this.idToProcessNameMap.get(Number(item.rs_name)!); item.type = '0'; - if (item.pid !== item.tid){ - item.name = `${item.name}-${item.tid}` + if (item.pid !== item.tid) { + item.name = `${item.name}-${item.tid}`; } }); if (row && !row.isComplete && res.length > 0) { diff --git a/ide/src/trace/component/chart/SpProcessChart.ts b/ide/src/trace/component/chart/SpProcessChart.ts index f3c6cc985..1ce96d220 100644 --- a/ide/src/trace/component/chart/SpProcessChart.ts +++ b/ide/src/trace/component/chart/SpProcessChart.ts @@ -989,8 +989,8 @@ export class SpProcessChart { } if (type === 'actual') { struct.src_slice = this.processSrcSliceMap.get(res[j].id!); - if (struct.tid && struct.tid !== struct.pid){ - struct.name = `${struct.name}-${struct.tid}` + if (struct.tid && struct.tid !== struct.pid) { + struct.name = `${struct.name}-${struct.tid}`; } } struct.cmdline = Utils.getInstance().getProcessMap().get(res[j].pid!); //@ts-ignore diff --git a/ide/src/trace/component/chart/SpSegmentationChart.ts b/ide/src/trace/component/chart/SpSegmentationChart.ts index e3cb209d9..ff15a4969 100644 --- a/ide/src/trace/component/chart/SpSegmentationChart.ts +++ b/ide/src/trace/component/chart/SpSegmentationChart.ts @@ -223,7 +223,7 @@ export class SpSegmentationChart { for (let key in v.freqInfo) { mapData.set(Number(key), Number(v.freqInfo[key])); } - SpSegmentationChart.freqInfoMapData.set(v.cpuId, {'broId':v.broId,'smtRate': v.smtRate, mapData}); + SpSegmentationChart.freqInfoMapData.set(v.cpuId, { 'broId': v.broId, 'smtRate': v.smtRate, mapData }); mapData = new Map(); }); TabPaneFreqUsage.refresh(); diff --git a/ide/src/trace/component/chart/SpXpowerChart.ts b/ide/src/trace/component/chart/SpXpowerChart.ts index 65984f8c9..8e8a24f74 100644 --- a/ide/src/trace/component/chart/SpXpowerChart.ts +++ b/ide/src/trace/component/chart/SpXpowerChart.ts @@ -163,9 +163,9 @@ export class SpXpowerChart { } folder.canvasRestore(this.trace.canvasPanelCtx!, this.trace); }; - if (rowType == TraceRow.ROW_TYPE_XPOWER_SYSTEM_GROUP) { + if (rowType === TraceRow.ROW_TYPE_XPOWER_SYSTEM_GROUP) { this.systemFolder = folder; - } else if (rowType == TraceRow.ROW_TYPE_XPOWER_BUNDLE_NAME_GROUP) { + } else if (rowType === TraceRow.ROW_TYPE_XPOWER_BUNDLE_NAME_GROUP) { this.bundleNameFolder = folder; } this.rowFolder?.addChildTraceRow(folder); @@ -411,11 +411,11 @@ export class SpXpowerChart { let value = ''; let rowId = ''; let rowName = ''; - if (valueType == THREAD_ENERGY) { + if (valueType === THREAD_ENERGY) { value = 'Energy'; rowId = 'thread_energy'; rowName = 'Thread Energy'; - } else if (valueType == THREAD_LOAD) { + } else if (valueType === THREAD_LOAD) { value = 'Load'; rowId = 'thread_loads'; rowName = 'Thread Load'; @@ -518,11 +518,11 @@ export class SpXpowerChart { } this.threadInfoStructMap.set(itemArray[0].startNS, newArr); } - if (valueType == THREAD_ENERGY) { + if (valueType === THREAD_ENERGY) { XpowerThreadInfoStruct.energyMaxValue = maxValue; this.threadEnergyStructMap = this.threadInfoStructMap; XpowerThreadInfoStruct.threadEnergyStructMap = this.setDataMap(resultXpower); - } else if (valueType == THREAD_LOAD) { + } else if (valueType === THREAD_LOAD) { XpowerThreadInfoStruct.loadMaxValue = maxValue; this.threadLoadStructMap = this.threadInfoStructMap; XpowerThreadInfoStruct.threadLoadStructMap = this.setDataMap(resultXpower); @@ -540,10 +540,10 @@ export class SpXpowerChart { if (XpowerThreadInfoStruct.hoverXpowerStruct) { let hoverData: XpowerThreadInfoStruct[] = []; let unit = ''; - if (XpowerThreadInfoStruct.hoverXpowerStruct.valueType == THREAD_ENERGY) { + if (XpowerThreadInfoStruct.hoverXpowerStruct.valueType === THREAD_ENERGY) { hoverData = this.threadEnergyStructMap!.get(XpowerThreadInfoStruct.hoverXpowerStruct.startNS) || []; unit = 'mAh'; - } else if (XpowerThreadInfoStruct.hoverXpowerStruct.valueType == THREAD_LOAD) { + } else if (XpowerThreadInfoStruct.hoverXpowerStruct.valueType === THREAD_LOAD) { hoverData = this.threadLoadStructMap!.get(XpowerThreadInfoStruct.hoverXpowerStruct.startNS) || []; unit = '%'; } diff --git a/ide/src/trace/component/setting/SpArkTs.ts b/ide/src/trace/component/setting/SpArkTs.ts index 911ceb2cb..b2f3e8f70 100644 --- a/ide/src/trace/component/setting/SpArkTs.ts +++ b/ide/src/trace/component/setting/SpArkTs.ts @@ -144,7 +144,7 @@ export class SpArkTs extends BaseElement { } else { this.processInput!.dataSource([], ''); } - }) + }); } else { Cmd.getDebugProcess().then((processList) => { if (processList.length > 0) { diff --git a/ide/src/trace/component/setting/SpRecordPerf.ts b/ide/src/trace/component/setting/SpRecordPerf.ts index 1d5cb7c4c..16093ecdc 100644 --- a/ide/src/trace/component/setting/SpRecordPerf.ts +++ b/ide/src/trace/component/setting/SpRecordPerf.ts @@ -324,7 +324,10 @@ export class SpRecordPerf extends BaseElement { this.cpuSelect?.dataSource(this.cpuData, 'ALL-CPU'); }); } else if (SpRecordTrace.useExtend) { - WebSocketManager.getInstance()!.sendMessage(TypeConstants.USB_TYPE, TypeConstants.USB_GET_CPU_COUNT, new TextEncoder().encode(SpRecordTrace.serialNumber)); + WebSocketManager.getInstance()!.sendMessage( + TypeConstants.USB_TYPE, + TypeConstants.USB_GET_CPU_COUNT, + new TextEncoder().encode(SpRecordTrace.serialNumber)); setTimeout(() => { if (SpRecordTrace.usbGetCpuCount) { let cpuCount = SpRecordTrace.usbGetCpuCount!.trim(); diff --git a/ide/src/trace/component/setting/SpRecordSetting.ts b/ide/src/trace/component/setting/SpRecordSetting.ts index 781fe9ba5..6973ae7a2 100644 --- a/ide/src/trace/component/setting/SpRecordSetting.ts +++ b/ide/src/trace/component/setting/SpRecordSetting.ts @@ -343,7 +343,7 @@ export class SpRecordSetting extends BaseElement { }); } - private isUseLocalhdc(val: string) { + private isUseLocalhdc(val: string): void { this.dispatchEvent(new CustomEvent('showTip', { detail: { value: 'snapshot', @@ -481,7 +481,7 @@ export class SpRecordSetting extends BaseElement { parentElement.setAttribute('percent', '0'); this.snapShotSlider!.percent = '0'; let htmlInputElement = this.snapShotSlider!.shadowRoot?.querySelector('#slider') as HTMLInputElement; - htmlInputElement.value = '0' + htmlInputElement.value = '0'; } else { this.snapShotSlider!.percent = snapShotInput.value; let htmlInputElement = this.snapShotSlider!.shadowRoot?.querySelector('#slider') as HTMLInputElement; diff --git a/ide/src/trace/component/setting/SpXPowerRecord.ts b/ide/src/trace/component/setting/SpXPowerRecord.ts index c3a0006c7..7d379b05c 100644 --- a/ide/src/trace/component/setting/SpXPowerRecord.ts +++ b/ide/src/trace/component/setting/SpXPowerRecord.ts @@ -22,7 +22,7 @@ import { LitSelectV } from '../../../base-ui/select/LitSelectV'; import { SpApplication } from '../../SpApplication'; import { Cmd } from '../../../command/Cmd'; import { SpRecordTrace } from '../SpRecordTrace'; -import { messageTypeAll, realBattery, thermalReport, appDetail, appStatistic, componentTop,} from './utils/PluginConvertUtils'; +import { messageTypeAll, realBattery, thermalReport, appDetail, appStatistic, componentTop, } from './utils/PluginConvertUtils'; @element('sp-xpower') export class SpXPowerRecord extends BaseElement { @@ -38,7 +38,7 @@ export class SpXPowerRecord extends BaseElement { get process(): string { if (this.xPowerSelectV!.value.length > 0) { - if (this.xPowerSelectV!.value == 'none') { + if (this.xPowerSelectV!.value === 'none') { return ''; } else { return this.xPowerSelectV!.value; @@ -120,7 +120,7 @@ export class SpXPowerRecord extends BaseElement { mode="multiple" canInsert="" title="${ //@ts-ignore config.title - }" rounded placement = "bottom" placeholder="${placeholder}">`; + }" rounded placement = "bottom" placeholder="${placeholder}">`; //@ts-ignore config.selectArray.forEach((value: string) => { html += `${value}`; @@ -156,12 +156,12 @@ export class SpXPowerRecord extends BaseElement { this.xPowerSelectV!.shadowRoot?.querySelectorAll('lit-select-option').forEach((a) => { a.addEventListener('onSelected', (e: unknown) => { if (a.hasAttribute('selected')) { - if (this.xPowerSelectV!.value == '' || this.xPowerSelectV!.value == 'none') { + if (this.xPowerSelectV!.value === '' || this.xPowerSelectV!.value === 'none') { let messageValue = this.typeSelect!.value || ''; - if (messageValue.length > 0) { - let selectedOptions = messageValue.split(',').map((option: any) => option.trim()); - let filteredOptions = selectedOptions.filter( - (option: any) => ![appStatistic, appDetail].includes(option) + if (messageValue.length > 0) {// @ts-ignore + let selectedOptions = messageValue.split(',').map((option: unknown) => option.trim()); + let filteredOptions = selectedOptions.filter(// @ts-ignore + (option: unknown) => ![appStatistic, appDetail].includes(option) ); messageValue = filteredOptions.join(','); this.inputEvent!.value = messageValue; @@ -179,7 +179,7 @@ export class SpXPowerRecord extends BaseElement { typeSelectClickHandler = (): void => { let messageType = []; - if (this.xPowerSelectV!.value == '' || this.xPowerSelectV!.value == 'none') { + if (this.xPowerSelectV!.value === '' || this.xPowerSelectV!.value === 'none') { messageType = [realBattery, thermalReport, componentTop]; } else { messageType = messageTypeAll; diff --git a/ide/src/trace/component/setting/utils/PluginConvertUtils.ts b/ide/src/trace/component/setting/utils/PluginConvertUtils.ts index 4504422b2..24d501595 100644 --- a/ide/src/trace/component/setting/utils/PluginConvertUtils.ts +++ b/ide/src/trace/component/setting/utils/PluginConvertUtils.ts @@ -296,8 +296,8 @@ export const ffrtEnumList: string[] = ['BOOTTIME', 'REALTIME', 'REALTIME_COARSE' const configEnumList: string[] = [...LevelConfigEnumList, ...ffrtEnumList]; -export const realBattery = 'REAL_BATTERY'; -export const thermalReport = 'THERMAL_REPORT'; +export const realBattery = 'REAL_BATTERY'; +export const thermalReport = 'THERMAL_REPORT'; export const componentTop = 'COMPONENT_TOP'; export const appStatistic = 'APP_STATISTIC'; export const appDetail = 'APP_DETAIL'; diff --git a/ide/src/trace/component/trace/base/TraceRow.ts b/ide/src/trace/component/trace/base/TraceRow.ts index a67c118d8..5c5134378 100644 --- a/ide/src/trace/component/trace/base/TraceRow.ts +++ b/ide/src/trace/component/trace/base/TraceRow.ts @@ -133,7 +133,7 @@ export class TraceRow extends HTMLElement { static ROW_TYPE_XPOWER_THREAD_COUNT = 'xpower-thread-count'; static ROW_TYPE_XPOWER_THREAD_INFO = 'xpower-thread-info'; static ROW_TYPE_XPOWER_GPU_COUNT = 'xpower-gpu-count'; - static ROW_TYPE_XPOWER_GPU_FREQUENCY = 'xpower-gpu-frequency' + static ROW_TYPE_XPOWER_GPU_FREQUENCY = 'xpower-gpu-frequency'; static ROW_TYPE_IRQ_GROUP = 'irq-group'; static ROW_TYPE_IRQ = 'irq'; static ROW_TYPE_JANK = 'janks'; @@ -1031,7 +1031,7 @@ export class TraceRow extends HTMLElement { this._rowSettingCheckBoxList && this._rowSettingCheckBoxList.forEach((item) => { checkboxHtml += `
-
`; }) +
`; }); this._rowSettingCheckedBoxList = new Array(this._rowSettingCheckBoxList?.length).fill(true); this.rowSettingCheckBoxPop.innerHTML = `
@@ -1047,13 +1047,13 @@ export class TraceRow extends HTMLElement { const allChecked = this._rowSettingCheckedBoxList!.every(item => item); allCheckBox.checked = allChecked; this.onRowSettingCheckBoxChangeHandler?.(this._rowSettingCheckedBoxList!); - } - }) + }; + }); allCheckBox.onchange = (e: unknown): void => { checkBoxItems.forEach(item => { // @ts-ignore item.checked = allCheckBox.checked; - }) + }); this._rowSettingCheckedBoxList!.forEach((_, index) => { this._rowSettingCheckedBoxList![index] = allCheckBox.checked; }); diff --git a/ide/src/trace/component/trace/base/TraceRowConfig.ts b/ide/src/trace/component/trace/base/TraceRowConfig.ts index f5ffdeedc..52a392649 100644 --- a/ide/src/trace/component/trace/base/TraceRowConfig.ts +++ b/ide/src/trace/component/trace/base/TraceRowConfig.ts @@ -809,7 +809,7 @@ export class TraceRowConfig extends BaseElement { subsystemFavorite.parentRowEl.expansion = false; favoriteName = subsystemFavorite.parentRowEl!.name; // 三级泳道判断 - if(subsystemFavorite.parentRowEl.parentRowEl){ + if (subsystemFavorite.parentRowEl.parentRowEl) { subsystemFavorite.parentRowEl.parentRowEl.expansion = false; favoriteName = subsystemFavorite.parentRowEl.parentRowEl.name; } diff --git a/ide/src/trace/component/trace/base/TraceSheetConfig.ts b/ide/src/trace/component/trace/base/TraceSheetConfig.ts index 07c9f5d2d..dc0204ebf 100644 --- a/ide/src/trace/component/trace/base/TraceSheetConfig.ts +++ b/ide/src/trace/component/trace/base/TraceSheetConfig.ts @@ -65,11 +65,11 @@ import { TabPaneCpuFreqLimits } from '../sheet/freq/TabPaneCpuFreqLimits'; import { TabpaneNMCalltree } from '../sheet/native-memory/TabPaneNMCallTree'; import { TabPaneClockCounter } from '../sheet/clock/TabPaneClockCounter'; import { TabPaneXpowerCounter } from '../sheet/xpower/TabPaneXpowerCounter'; -import { TabPaneXpowerComponentTop } from '../sheet/xpower/TabPaneXpowerComponentTop' -import { TabPaneXpowerComponentAudio } from '../sheet/xpower/TabPaneXpowerComponentAudio' -import { TabPaneXpowerComponentDisplay } from '../sheet/xpower/TabPaneXpowerComponentDisplay' -import { TabPaneXpowerComponentCamera } from '../sheet/xpower/TabPaneXpowerComponentCamera' -import { TabPaneXpowerComponentCpu } from '../sheet/xpower/TabPaneXpowerComponentCpu' +import { TabPaneXpowerComponentTop } from '../sheet/xpower/TabPaneXpowerComponentTop'; +import { TabPaneXpowerComponentAudio } from '../sheet/xpower/TabPaneXpowerComponentAudio'; +import { TabPaneXpowerComponentDisplay } from '../sheet/xpower/TabPaneXpowerComponentDisplay'; +import { TabPaneXpowerComponentCamera } from '../sheet/xpower/TabPaneXpowerComponentCamera'; +import { TabPaneXpowerComponentCpu } from '../sheet/xpower/TabPaneXpowerComponentCpu'; import { TabPaneXpowerStatistic } from '../sheet/xpower/TabPaneXpowerStatistic'; import { TabPaneXpowerWifiBytes } from '../sheet/xpower/TabPaneXpowerWifiBytes'; import { TabPaneXpowerWifiPackets } from '../sheet/xpower/TabPaneXpowerWifiPackets'; diff --git a/ide/src/trace/component/trace/base/Utils.ts b/ide/src/trace/component/trace/base/Utils.ts index 2b5e7de41..e9e4435a6 100644 --- a/ide/src/trace/component/trace/base/Utils.ts +++ b/ide/src/trace/component/trace/base/Utils.ts @@ -459,7 +459,7 @@ export class Utils { if (currentMsTime > 0) { currentMsTime = parseFloat(currentMsTime.toFixed(2)); res += `${currentMsTime} ms `; - } else if(res === ''){ + } else if (res === '') { res += '0 ms '; } return res; diff --git a/ide/src/trace/component/trace/sheet/TabPaneFilter.ts b/ide/src/trace/component/trace/sheet/TabPaneFilter.ts index 161ce9adf..5fdf7b28d 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneFilter.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneFilter.ts @@ -403,7 +403,7 @@ export class TabPaneFilter extends BaseElement { if (thirdList) { this.setAttribute('third', ''); } - thtml += `` + thtml += ``; if (thirdList) { if (thirdTitle !== '') { thtml += `${thirdTitle}`; diff --git a/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts b/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts index 79cf9dbdf..b8db36c8c 100644 --- a/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts +++ b/ide/src/trace/component/trace/sheet/cpu/TabPaneFrequencySample.ts @@ -199,7 +199,7 @@ export class TabPaneFrequencySample extends BaseElement { } // @ts-ignore let tmpPosition = tmpCpuArr.findIndex(item => item[1].filterId === weightMapArr[j][1].filterId); - if(singleCpuArr[0] && singleCpuArr[0].length >= 2){ + if (singleCpuArr[0] && singleCpuArr[0].length >= 2) { // @ts-ignore tmpCpuArr.splice(tmpPosition, 0, [`${weightMapArr[j][1].filterId}-0`, { counter: `${singleCpuArr[0][1].counter}:( WA )`, time: tmpTotalTime, valueStr: ColorUtils.formatNumberComma(Math.round(tmpTotalCount / (tmpTotalTime / 1000000))) }]); } diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneSliceChild.ts b/ide/src/trace/component/trace/sheet/process/TabPaneSliceChild.ts index 65b1ddcdf..e75097d1d 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneSliceChild.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneSliceChild.ts @@ -130,8 +130,18 @@ export class TabPaneSliceChild extends BaseElement { let minStartTS = Infinity; let maxEndTS = -Infinity; // @ts-ignore - let parentDetail: [{ startTS: number, endTS: number, depth: number, id: number, name: string }] = await getParentDetail(val.param.processId, val.param.threadId, val.param.leftNs, val.param.rightNs); - + let parentDetail: [{ + startTS: number, + endTS: number, + depth: number, + id: number, + name: string + }] = await getParentDetail( + val.param.processId, + val.param.threadId, + val.param.leftNs, + val.param.rightNs + ); // @ts-ignore parentDetail.forEach(item => { funcIdArr.push(item.id); @@ -147,12 +157,12 @@ export class TabPaneSliceChild extends BaseElement { let FuncChildrenList = await getFuncChildren(funcIdArr, val.param.processId, val.param.threadId, minStartTS, maxEndTS, true); let childDurMap = new Map(); - FuncChildrenList.forEach((it: any) => { - if (!childDurMap.has(it.parentId)) { + FuncChildrenList.forEach((it: unknown) => {// @ts-ignore + if (!childDurMap.has(it.parentId)) {// @ts-ignore childDurMap.set(it.parentId, it.duration); - } else { - let dur = childDurMap.get(it.parentId) - dur += it.duration + } else {// @ts-ignore + let dur = childDurMap.get(it.parentId); // @ts-ignore + dur += it.duration; // @ts-ignore childDurMap.set(it.parentId, dur!); } }); diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentAudio.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentAudio.ts index ee8554937..fb291e2e9 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentAudio.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentAudio.ts @@ -44,7 +44,7 @@ export class TabPaneXpowerComponentAudio extends BaseElement { new ResizeObserver((entries) => { let clientHeight = this.xpowerComponentAudioTbl!.shadowRoot?.querySelector('.table')!.clientHeight; let scrollHeight = this.xpowerComponentAudioTbl!.shadowRoot?.querySelector('.table')!.scrollHeight; - if (clientHeight == scrollHeight) { + if (clientHeight === scrollHeight) { this.style.height = 'calc(100% - 22px)'; } else { this.style.height = 'calc(100% - 42px)'; diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCamera.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCamera.ts index 715b6bf9d..742b46ead 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCamera.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCamera.ts @@ -11,7 +11,7 @@ * 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 { element, BaseElement } from '../../../../../base-ui/BaseElement'; import { LitTable } from '../../../../../base-ui/table/lit-table'; @@ -43,7 +43,7 @@ export class TabPaneXpowerComponentCamera extends BaseElement { new ResizeObserver((entries) => { let clientHeight = this.xpowerComponentCameraTbl!.shadowRoot?.querySelector('.table')!.clientHeight; let scrollHeight = this.xpowerComponentCameraTbl!.shadowRoot?.querySelector('.table')!.scrollHeight; - if (clientHeight == scrollHeight) { + if (clientHeight === scrollHeight) { this.style.height = 'calc(100% - 22px)'; } else { this.style.height = 'calc(100% - 42px)'; diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCpu.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCpu.ts index ed8331c4c..2e5a48f0c 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCpu.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentCpu.ts @@ -44,7 +44,7 @@ export class TabPaneXpowerComponentCpu extends BaseElement { new ResizeObserver((entries) => { let clientHeight = this.xpowerComponentCpuTbl!.shadowRoot?.querySelector('.table')!.clientHeight; let scrollHeight = this.xpowerComponentCpuTbl!.shadowRoot?.querySelector('.table')!.scrollHeight; - if (clientHeight == scrollHeight) { + if (clientHeight === scrollHeight) { this.style.height = 'calc(100% - 22px)'; } else { this.style.height = 'calc(100% - 42px)'; diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentDisplay.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentDisplay.ts index 798916014..2fa58a671 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentDisplay.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentDisplay.ts @@ -44,7 +44,7 @@ export class TabPaneXpowerComponentDisplay extends BaseElement { new ResizeObserver((entries) => { let clientHeight = this.xpowerComponentDisplayTbl!.shadowRoot?.querySelector('.table')!.clientHeight; let scrollHeight = this.xpowerComponentDisplayTbl!.shadowRoot?.querySelector('.table')!.scrollHeight; - if (clientHeight == scrollHeight) { + if (clientHeight === scrollHeight) { this.style.height = 'calc(100% - 22px)'; } else { this.style.height = 'calc(100% - 42px)'; diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentTop.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentTop.ts index a5d781c8e..73aae95cc 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentTop.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerComponentTop.ts @@ -48,7 +48,7 @@ export class TabPaneXpowerComponentTop extends BaseElement { this.xpowerComponentTopRange!.textContent = `Selected range: ${parseFloat( ((xpowerComponentTopValue.rightNs - xpowerComponentTopValue.leftNs) / 1000000.0).toFixed(5) )} ms`; - if (xpowerComponentTopValue == this.currentXpowerComponentTopValue) { + if (xpowerComponentTopValue === this.currentXpowerComponentTopValue) { return; } this.componentTypeList = [ @@ -155,7 +155,7 @@ export class TabPaneXpowerComponentTop extends BaseElement { if ( this.currentTabPane && this.xpowerComponentTopTbl!.children.length > 0 && - this.xpowerComponentTopTbl?.children[0] == this.currentTabPane + this.xpowerComponentTopTbl?.children[0] === this.currentTabPane ) { this.xpowerComponentTopTbl?.removeChild(this.currentTabPane); } @@ -194,7 +194,7 @@ export class TabPaneXpowerComponentTop extends BaseElement { } } - private initOptions() { + private initOptions(): void { let optionsArr = Array.from(this.options); this.xpowerComponentTopSelect!.dataSource = optionsArr; // 默认选中第一个 diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts index e887ab906..a6bc55c55 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts @@ -218,7 +218,7 @@ export class TabPaneXpowerGpuFreq extends BaseElement { ); tabXpowerGpuFreqStruct.maxIdleTimeStr = Utils.timeFormat(maxIdleTime); tabXpowerGpuFreqStruct.minIdleTimeStr = Utils.timeFormat(minIdleTime); - } else if (itemArray.length == 1) { + } else if (itemArray.length === 1) { tabXpowerGpuFreqStruct = this.setTabXpowerGpuFreqStruct( itemArray[0].runTime, itemArray[0].idleTime, @@ -265,7 +265,7 @@ export class TabPaneXpowerGpuFreq extends BaseElement { this.XpowerGpuFreqTbl!.recycleDataSource = this.XpowerGpuFreqSource; } - private setSortKey(detailKey: string) { + private setSortKey(detailKey: string): string { let key = ''; switch (detailKey) { case 'avgRunTimeStr': diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreqSelection.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreqSelection.ts index 53a2669b8..67d4fcbe4 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreqSelection.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreqSelection.ts @@ -10,7 +10,7 @@ * 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. + * limitations under the License. */ import { BaseElement, element } from '../../../../../base-ui/BaseElement'; @@ -94,7 +94,7 @@ export class TabPaneXpowerGpuFreqSelection extends BaseElement { this.TableEl!.recycleDataSource = this.gpuFreqData; } - private setSortKey(detailKey: string) { + private setSortKey(detailKey: string): string { let key = ''; switch (detailKey) { case 'runTimeStr': diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerStatisticCurrentData.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerStatisticCurrentData.ts index 4eb4c7093..0ba7bf62e 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerStatisticCurrentData.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerStatisticCurrentData.ts @@ -148,7 +148,7 @@ export class TabPaneXpowerStatisticCurrentData extends BaseElement { if (detail.key === 'name') { // @ts-ignore this.xpowerStatisticSource.sort(this.compare(detail.key, detail.sort, 'string')); - } else if (detail.key === 'duration'){ + } else if (detail.key === 'duration') { this.xpowerStatisticSource.sort(this.compare(detail.key, detail.sort, 'duration')); } else { this.xpowerStatisticSource.sort(this.compare(detail.key, detail.sort, 'number')); diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadEnergy.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadEnergy.ts index a698e32cf..0c332307c 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadEnergy.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadEnergy.ts @@ -142,13 +142,13 @@ export class TabPaneXpowerThreadEnergy extends BaseElement { SelectThreadEnergyData.name = itemArray[0].threadName; SelectThreadEnergyData.count = itemArray.length; if (itemArray.length > 1) { - max = itemArray.map((item: { value: any }) => item.value).reduce((a: number, b: number) => Math.max(a, b)); - min = itemArray.map((item: { value: any }) => item.value).reduce((a: number, b: number) => Math.min(a, b)); - sum = itemArray.reduce((acc: any, obj: { value: any }) => acc + obj.value, 0); + max = itemArray.map((item: { value: unknown }) => item.value).reduce((a: number, b: number) => Math.max(a, b)); + min = itemArray.map((item: { value: unknown }) => item.value).reduce((a: number, b: number) => Math.min(a, b));// @ts-ignore + sum = itemArray.reduce((acc: unknown, obj: { value: unknown }) => acc + obj.value, 0); SelectThreadEnergyData.avg = (sum / itemArray.length).toFixed(2) + ' mAh'; SelectThreadEnergyData.max = max + ' mAh'; SelectThreadEnergyData.min = min + ' mAh'; - } else if (itemArray.length == 1) { + } else if (itemArray.length === 1) { let value = itemArray[0].value; SelectThreadEnergyData.avg = value + ' mAh'; SelectThreadEnergyData.max = value + ' mAh'; diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadInfoSelection.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadInfoSelection.ts index f97364488..a745a4118 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadInfoSelection.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadInfoSelection.ts @@ -31,12 +31,12 @@ export class TabPaneXpowerThreadInfoSelection extends BaseElement { this.tableEl!.recycleDataSource = []; this.init(); if (dataList.length >= 1) { - dataList[0].valueType == THREAD_ENERGY ? (this.valueType = 'Energy') : (this.valueType = 'Load'); + dataList[0].valueType === THREAD_ENERGY ? (this.valueType = 'Energy') : (this.valueType = 'Load'); } dataList.forEach((data) => { - if (dataList[0].valueType == THREAD_ENERGY) { + if (dataList[0].valueType === THREAD_ENERGY) { data.valueStr = data.value + 'mAh'; - } else if (dataList[0].valueType == THREAD_LOAD) { + } else if (dataList[0].valueType === THREAD_LOAD) { data.valueStr = data.value + '%'; } data.startTimeStr = Utils.getTimeString(data.startNS); @@ -110,7 +110,7 @@ export class TabPaneXpowerThreadInfoSelection extends BaseElement { this.tableEl!.recycleDataSource = this.threadInfoData; } - private setSortKey(detailKey: string) { + private setSortKey(detailKey: string): string { let key = ''; switch (detailKey) { case 'threadTimeStr': diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadLoad.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadLoad.ts index a203d1f49..96cb6ad44 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadLoad.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerThreadLoad.ts @@ -149,7 +149,7 @@ export class TabPaneXpowerThreadLoad extends BaseElement { SelectThreadLoadData.avg = (sum / itemArray.length).toFixed(2) + ' %'; SelectThreadLoadData.max = max + ' %'; SelectThreadLoadData.min = min + ' %'; - } else if (itemArray.length == 1) { + } else if (itemArray.length === 1) { let value = itemArray[0].value; SelectThreadLoadData.avg = value + ' %'; SelectThreadLoadData.max = value + ' %'; diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerWifiPackets.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerWifiPackets.ts index 3f0f2e022..73155f4a4 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerWifiPackets.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerWifiPackets.ts @@ -54,7 +54,7 @@ export class TabPaneXpowerWifiPackets extends BaseElement { this.traceRow = this.systemTrace!.shadowRoot?.querySelector>( `trace-row[row-id=${key}]` ); - if (!this.traceRow){ + if (!this.traceRow) { this.spChartList = this.systemTrace!.shadowRoot?.querySelector('div > sp-chart-list'); this.traceRow = this.spChartList?.shadowRoot!.querySelector(`.root > div > trace-row[row-id=${key}]`); } diff --git a/ide/src/trace/component/trace/sheet/xpower/XpowerUtil.ts b/ide/src/trace/component/trace/sheet/xpower/XpowerUtil.ts index 13f88d67f..f7484b4a1 100644 --- a/ide/src/trace/component/trace/sheet/xpower/XpowerUtil.ts +++ b/ide/src/trace/component/trace/sheet/xpower/XpowerUtil.ts @@ -17,7 +17,7 @@ import { LitTable } from '../../../../../base-ui/table/lit-table'; import { SortDetail } from '../SheetUtils'; import { XpowerComponentTopStruct } from './TabPaneXpowerComponentTop'; -export function sortByColumn(detail: SortDetail, dataSource: Array, table: LitTable): void { +export function sortByColumn(detail: SortDetail, dataSource: Array, table: LitTable): void { function compare(property: string | number, sort: number, type: string) { return function ( xpowerComponentTopLeftData: XpowerComponentTopStruct, @@ -43,16 +43,16 @@ export function sortByColumn(detail: SortDetail, dataSource: Array, table: }; } - if (detail.key === 'appNameStr') { + if (detail.key === 'appNameStr') {// @ts-ignore dataSource.sort(compare(detail.key, detail.sort, 'string')); } else { - let key = setSortKey(detail.key); + let key = setSortKey(detail.key);// @ts-ignore dataSource.sort(compare(key, detail.sort, 'number')); } table!.recycleDataSource = dataSource; } -export function setSortKey(detailKey: string) { +export function setSortKey(detailKey: string): string { let key = ''; switch (detailKey) { case 'backgroundDurationStr': diff --git a/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts b/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts index e1d9f65f5..4a7d87bc4 100644 --- a/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts +++ b/ide/src/trace/component/trace/timer-shaft/RangeRuler.ts @@ -636,7 +636,7 @@ export class RangeRuler extends Graph { if (startTime === midNs) { return; } - if(startTime * 2 < this.range.totalNS) { + if (startTime * 2 < this.range.totalNS) { this.range.startNS = 0; this.range.endNS = startTime * 2; } else { diff --git a/ide/src/trace/database/StateBusyTimeWorker.ts b/ide/src/trace/database/StateBusyTimeWorker.ts index 6dc26e63b..fd9ad2625 100644 --- a/ide/src/trace/database/StateBusyTimeWorker.ts +++ b/ide/src/trace/database/StateBusyTimeWorker.ts @@ -34,8 +34,8 @@ function getBusyTime( // @ts-ignore result[0].ts = startNS; } - return result - } + return result; + }; // @ts-ignore let startNS = Math.max(initFreqResult[0].ts, initStateResult[0].ts, leftStartNs); diff --git a/ide/src/trace/database/TabPaneFreqUsageWorker.ts b/ide/src/trace/database/TabPaneFreqUsageWorker.ts index 9ba39a985..27881c0bd 100644 --- a/ide/src/trace/database/TabPaneFreqUsageWorker.ts +++ b/ide/src/trace/database/TabPaneFreqUsageWorker.ts @@ -285,7 +285,8 @@ function returnObj( // @ts-ignore if (comPower && (comPower!.get(item.cpu).broId || comPower!.get(item.cpu).broId === 0) && comPower!.get(item.cpu).smtRate) { // @ts-ignore - let broCpuDataList = broCpuData.filter((e) => (e.cpu === comPower!.get(item.cpu).broId) && !(e.startTime >= result!.ts + result!.dur || e.endTime <= result!.ts)); + let broCpuDataList = broCpuData.filter((e) => (e.cpu === comPower!.get(item.cpu).broId) && // @ts-ignore + !(e.startTime >= result!.ts + result!.dur || e.endTime <= result!.ts)); let parallelDur = 0; broCpuDataList.forEach((e) => { // @ts-ignore diff --git a/ide/src/trace/database/data-trafic/FrameJanksReceiver.ts b/ide/src/trace/database/data-trafic/FrameJanksReceiver.ts index 5d01f3767..3906d9d81 100644 --- a/ide/src/trace/database/data-trafic/FrameJanksReceiver.ts +++ b/ide/src/trace/database/data-trafic/FrameJanksReceiver.ts @@ -31,7 +31,7 @@ export const frameJankDataSql = (args: Args, configure: unknown): string => { case 'ExepectMemory': fsType = 1; flag = 'fs.flag as jankTag,'; - condition = 'AND t.tid = pro.pid' + condition = 'AND t.tid = pro.pid'; break; case 'ExpectedData': fsType = 1; diff --git a/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencyRecevier.ts b/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencyRecevier.ts index 8b55e8647..889ed1b20 100644 --- a/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencyRecevier.ts +++ b/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencyRecevier.ts @@ -82,17 +82,17 @@ export function xpowerDataGpuFreqCountReceiver(data: unknown, proc: Function): v 'value' ); } - GpuFreqCountArrayBufferHandler(data, res, true); + gpuFreqCountArrayBufferHandler(data, res, true); } else { // @ts-ignore let sql = chartXpowerGpuFreqCountDataSql(data.params); let res = proc(sql); // @ts-ignore - GpuFreqCountArrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); + gpuFreqCountArrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); } } -function GpuFreqCountArrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): void { +function gpuFreqCountArrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): void { // @ts-ignore let startNS = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.startNS); // @ts-ignore diff --git a/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencySender.ts b/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencySender.ts index 2c3027885..293dd754b 100644 --- a/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencySender.ts +++ b/ide/src/trace/database/data-trafic/xpower/XpowerGpuFrequencySender.ts @@ -56,13 +56,13 @@ export function xpowerGpuFreqCountDataSender( sharedArrayBuffers: row.sharedArrayBuffers, }, (res: unknown, len: number, transfer: boolean): void => { - resolve(GpuFreqCountArrayBufferHandler(transfer ? res : row.sharedArrayBuffers, len)); + resolve(gpuFreqCountArrayBufferHandler(transfer ? res : row.sharedArrayBuffers, len)); } ); }); } -function GpuFreqCountArrayBufferHandler(buffers: unknown, len: number): XpowerGpuFreqCountStruct[] { +function gpuFreqCountArrayBufferHandler(buffers: unknown, len: number): XpowerGpuFreqCountStruct[] { let outArr: XpowerGpuFreqCountStruct[] = []; // @ts-ignore let value = new Float64Array(buffers.value); diff --git a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts index fc87d2f7c..8b5aa1c32 100644 --- a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts +++ b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts @@ -602,7 +602,7 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { symbolName = perfCallChains[topIndex].name; } // 只展示内核栈合并进程栈 - const usePidAsKey = this.isOnlyKernel ? '': perfSample.pid; + const usePidAsKey = this.isOnlyKernel ? '' : perfSample.pid; let perfRootNode = this.currentTreeMapData[symbolName + usePidAsKey]; if (perfRootNode === undefined) { perfRootNode = new PerfCallChainMerageData(); @@ -808,7 +808,7 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { this.allProcess.forEach((item: PerfCallChainMerageData): void => { item.children = []; // only kernel模式下第0层结构为调用栈,也需要变化 - if (this.isOnlyKernel && (item.dur < startNum || item.dur > max)){ + if (this.isOnlyKernel && (item.dur < startNum || item.dur > max)) { (this.splitMapData[numRuleName] = this.splitMapData[numRuleName] || []).push(item); item.isStore++; } @@ -880,10 +880,10 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { return item; }); // 记录待删除的节点索引 - const removeList : number[] = []; + const removeList: number[] = []; // 用于记录所有有效的子节点 - const effectChildList : PerfCallChainMerageData[] = []; - for(const sample of values) { + const effectChildList: PerfCallChainMerageData[] = []; + for (const sample of values) { if (sample.parentNode !== undefined && sample.isStore === 0 && sample.searchShow) { let parentNode = sample.parentNode; while (parentNode !== undefined && !(parentNode.isStore === 0 && parentNode.searchShow)) { @@ -923,9 +923,9 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { * @param children 调用链的子节点数组,这些子节点是待筛选的数据 * @returns 返回一个新数组,包含所有非存储且标记为显示的子节点 */ - private findEffectChildren(children: PerfCallChainMerageData[]): PerfCallChainMerageData[]{ + private findEffectChildren(children: PerfCallChainMerageData[]): PerfCallChainMerageData[] { let result: PerfCallChainMerageData[] = []; - for(let child of children){ + for (let child of children) { // 如果搜索框有值,检查当前子树是否有任何一个节点的 isSearch 为 true if (this.searchValue === '' || this.hasSearchNode(child)) { // 如果当前节点非存储且需要显示,则直接添加到结果数组中 @@ -991,13 +991,13 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { } markSearchNode(sampleArray: PerfCallChainMerageData[], search: string, parentSearch: boolean): void { - for(const sample of sampleArray) { + for (const sample of sampleArray) { if (search === '') { sample.searchShow = true; sample.isSearch = false; } else { let isInclude = sample.symbol.toLocaleLowerCase().includes(search); - if ((sample.symbol && isInclude) || parentSearch) { + if ((sample.symbol && isInclude) || parentSearch) { sample.searchShow = true; sample.isSearch = sample.symbol !== undefined && isInclude; let parentNode = sample.parent; @@ -1044,7 +1044,7 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { } } } - if (this.isOnlyKernel){ + if (this.isOnlyKernel) { this.dataSource = this.allProcess; } else { this.dataSource = this.allProcess.filter((process: PerfCallChainMerageData): boolean => { @@ -1473,7 +1473,7 @@ export class PerfCallChainMerageData extends ChartStruct { if (callChain.path) { currentNode.path = callChain.path; } - if (callChain.sourceFileId){ + if (callChain.sourceFileId) { currentNode.sourceFile = DataCache.getInstance().dataDict.get(callChain.sourceFileId) || ''; const lines = lineMap.get(`${currentNode.sourceFile}_${currentNode.symbolName}`); if (lines) { diff --git a/ide/src/trace/database/sql/Xpower.sql.ts b/ide/src/trace/database/sql/Xpower.sql.ts index a2beaf943..4a9e6d04d 100644 --- a/ide/src/trace/database/sql/Xpower.sql.ts +++ b/ide/src/trace/database/sql/Xpower.sql.ts @@ -30,10 +30,10 @@ export const queryXpowerMeasureData = (traceId?: string): Promise< where mf.type = 'xpower_filter' ; -`, {}, {traceId: traceId} +`, {}, { traceId: traceId } ); -export const queryXpowerData = (traceId?: string): Promise< +export const queryXpowerData = (traceId?: string): Promise< Array<{ name: string; num: number; @@ -62,7 +62,7 @@ export const queryXpowerData = (traceId?: string): Promise< `, {}, { traceId: traceId } ); - export const queryTraceConfig = (traceId?: string): Promise< +export const queryTraceConfig = (traceId?: string): Promise< Array<{ traceSource: string; key: string; @@ -82,7 +82,7 @@ export const queryXpowerData = (traceId?: string): Promise< `, {}, { traceId: traceId } ); - export const queryXpowerComponentTop = (leftNS:number, rightNS: number, dur:number, traceId?: string): Promise< +export const queryXpowerComponentTop = (leftNS: number, rightNS: number, dur: number, traceId?: string): Promise< Array > => query( @@ -110,5 +110,5 @@ export const queryXpowerData = (traceId?: string): Promise< trace_range as tr where $leftNS <= startTime + ${dur} and $rightNS >= startTime - `, { $leftNS:leftNS,$rightNS:rightNS, traceId: traceId } -); \ No newline at end of file + `, { $leftNS: leftNS, $rightNS: rightNS, traceId: traceId } + ); \ No newline at end of file diff --git a/ide/src/trace/database/ui-worker/ProcedureWorker.ts b/ide/src/trace/database/ui-worker/ProcedureWorker.ts index bd2e98ad9..cba4720f1 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorker.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorker.ts @@ -77,7 +77,7 @@ import { XpowerAppDetailRender } from './ProcedureWorkerXpowerAppDetail'; import { XpowerWifiRender } from './ProcedureWorkerXpowerWifi'; import { XpowerGpuFreqCountRender } from './ProcedureWorkerXpowerGpuFreqCount'; import { XpowerGpuFreqRender } from './ProcedureWorkerXpowerGpuFreq'; -import { SnapShotRender } from './ProcedureWorkerSnaps' +import { SnapShotRender } from './ProcedureWorkerSnaps'; let dataList: unknown = {}; let dataList2: unknown = {}; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerSnaps.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerSnaps.ts index 892c47d58..ee3e6b8a1 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerSnaps.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerSnaps.ts @@ -100,8 +100,8 @@ export class SnapShotStruct extends BaseStruct { if (!SnapShotStruct.imageCache[img]) { SnapShotStruct.imageCache[img] = new Promise((resolve, reject) => { const image = new Image(); - image.onload = () => resolve(image); - image.onerror = (error) => reject(new Error(`Failed to load image: ${img},${error}`)); + image.onload = (): void => resolve(image); + image.onerror = (error): void => reject(new Error(`Failed to load image: ${img},${error}`)); image.src = img; }); } diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreq.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreq.ts index 14a682753..5c694d3f6 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreq.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreq.ts @@ -189,7 +189,7 @@ export class XpowerGpuFreqStruct extends BaseStruct { req: { useCache: boolean; context: CanvasRenderingContext2D }, data: XpowerGpuFreqStruct, row: TraceRow - ) { + ): void { let startNS = TraceRow.range!.startNS; let endNS = TraceRow.range!.endNS; let totalNS = TraceRow.range!.totalNS; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts index ffdd72616..ec30a134c 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts @@ -29,8 +29,8 @@ export class XpowerGpuFreqCountRender extends Render { let xpowerGpuFreqCountList = row.dataList; let xpowerGpuFreqCountFilter = row.dataListCache; let maxValue = 0; - if (xpowerGpuFreqCountFilter.length > 0) { - maxValue = xpowerGpuFreqCountFilter.map((item) => item.value).reduce((a: any, b: any) => Math.max(a, b)); + if (xpowerGpuFreqCountFilter.length > 0) { // @ts-ignore + maxValue = xpowerGpuFreqCountFilter.map((item) => item.value).reduce((a: unknown, b: unknown) => Math.max(a, b)); } dataFilterHandler(xpowerGpuFreqCountList, xpowerGpuFreqCountFilter, { startKey: 'startNS', diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerStatistic.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerStatistic.ts index 3f00b551a..14ed5dc75 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerStatistic.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerStatistic.ts @@ -405,7 +405,7 @@ export class XpowerStatisticStruct extends BaseStruct {
${key}:  
${energy || 0} mAh  
  ${Utils.timeFormat(dur)}
-
` +
`; } } node.hoverHtml = hoverHtml; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadCount.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadCount.ts index 5997ded37..e33e87f18 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadCount.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadCount.ts @@ -28,8 +28,8 @@ export class XpowerThreadCountRender extends Render { let xpowerThreadCountList = row.dataList; let xpowerThreadCountFilter = row.dataListCache; let maxValue = 0; - if (xpowerThreadCountFilter.length > 0) { - maxValue = xpowerThreadCountFilter.map((item) => item.value).reduce((a: any, b: any) => Math.max(a, b)); + if (xpowerThreadCountFilter.length > 0) {// @ts-ignore + maxValue = xpowerThreadCountFilter.map((item) => item.value).reduce((a: unknown, b: unknown) => Math.max(a, b)); } dataFilterHandler(xpowerThreadCountList, xpowerThreadCountFilter, { startKey: 'startNS', @@ -97,7 +97,13 @@ private static calculateDrawHeight(data: XpowerThreadCountStruct, maxValue: numb return drawHeight === 0 ? 1 : drawHeight; } -private static drawHoverState(xpowerContext: CanvasRenderingContext2D, data: XpowerThreadCountStruct, width: number, drawHeight: number, cutHeight: number): void { +private static drawHoverState( + xpowerContext: CanvasRenderingContext2D, + data: XpowerThreadCountStruct, + width: number, + drawHeight: number, + cutHeight: number +): void { xpowerContext.fillStyle = ColorUtils.colorForTid(XpowerThreadCountStruct.index); xpowerContext.strokeStyle = ColorUtils.colorForTid(XpowerThreadCountStruct.index); xpowerContext.lineWidth = 1; @@ -127,7 +133,13 @@ private static drawHoverState(xpowerContext: CanvasRenderingContext2D, data: Xpo xpowerContext.stroke(); } -private static drawNormalState(xpowerContext: CanvasRenderingContext2D, data: XpowerThreadCountStruct, width: number, drawHeight: number, cutHeight: number): void { +private static drawNormalState( + xpowerContext: CanvasRenderingContext2D, + data: XpowerThreadCountStruct, + width: number, + drawHeight: number, + cutHeight: number +): void { xpowerContext.fillStyle = ColorUtils.colorForTid(XpowerThreadCountStruct.index); xpowerContext.strokeStyle = ColorUtils.colorForTid(XpowerThreadCountStruct.index); xpowerContext.lineWidth = 1; diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadInfo.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadInfo.ts index b9e6765fe..f7737a8ca 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadInfo.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerThreadInfo.ts @@ -5,7 +5,7 @@ * 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. @@ -44,10 +44,10 @@ export class XpowerThreadInfoRender extends Render { let find = false; let maxValue = 0; let maxValueStr = ''; - if (xpowerReq.type == THREAD_ENERGY) { + if (xpowerReq.type === THREAD_ENERGY) { maxValue = XpowerThreadInfoStruct.energyMaxValue; maxValueStr = String(maxValue) + ' mAh'; - } else if (xpowerReq.type == THREAD_LOAD) { + } else if (xpowerReq.type === THREAD_LOAD) { maxValue = XpowerThreadInfoStruct.loadMaxValue; maxValueStr = String(maxValue) + ' %'; } @@ -95,7 +95,7 @@ export function drawMaxValue( type: string; }, maxValueStr: string -) { +): void { xpowerReq.context.closePath(); let textMetrics = xpowerReq.context.measureText(maxValueStr); xpowerReq.context.globalAlpha = 0.8; @@ -117,9 +117,9 @@ export function XpowerThreadInfoStructOnClick( XpowerThreadInfoStruct.selectXpowerStruct = entry || XpowerThreadInfoStruct.hoverXpowerStruct; let startNs = XpowerThreadInfoStruct.selectXpowerStruct!.startNS; let map = new Map(); - if (XpowerThreadInfoStruct.selectXpowerStruct?.valueType == THREAD_ENERGY) { + if (XpowerThreadInfoStruct.selectXpowerStruct?.valueType === THREAD_ENERGY) { map = XpowerThreadInfoStruct.threadEnergyStructMap; - } else if (XpowerThreadInfoStruct.selectXpowerStruct?.valueType == THREAD_LOAD) { + } else if (XpowerThreadInfoStruct.selectXpowerStruct?.valueType === THREAD_LOAD) { map = XpowerThreadInfoStruct.threadLoadStructMap; } sp.traceSheetEL?.displayXpowerThreadInfoData(map.get(startNs) || []); @@ -222,7 +222,7 @@ export class XpowerThreadInfoStruct extends BaseStruct { req: { useCache: boolean; context: CanvasRenderingContext2D }, data: XpowerThreadInfoStruct, row: TraceRow - ) { + ): void { let startNS = TraceRow.range!.startNS; let endNS = TraceRow.range!.endNS; let totalNS = TraceRow.range!.totalNS; diff --git a/ide/src/webSocket/WebSocketManager.ts b/ide/src/webSocket/WebSocketManager.ts index 5f20e9e31..530e140ef 100644 --- a/ide/src/webSocket/WebSocketManager.ts +++ b/ide/src/webSocket/WebSocketManager.ts @@ -96,7 +96,7 @@ export class WebSocketManager { } else if (decode.type === TypeConstants.UPDATE_TYPE) {// 升级 this.updateMessage(decode); } else {// type其他 - this.businessMessage(decode) + this.businessMessage(decode); } } @@ -277,7 +277,7 @@ export class WebSocketManager { // @ts-ignore obj.cmd = cmd; //@ts-ignore - obj.data = data + obj.data = data; } } @@ -289,7 +289,7 @@ export class WebSocketManager { this.distributeMap.get(reconnect)!.eventCallBack(this.status); } else if (statuses.type === FAILED_STATE) { this.reconnect = reconnect; - this.connectWebSocket() + this.connectWebSocket(); } } @@ -310,7 +310,7 @@ export class WebSocketManager { return { unconnected: { type: FAILED_STATE - },// 重连 + }, // 重连 connected: { type: INTERMEDIATE_STATE }, // 中间 @@ -328,7 +328,7 @@ export class WebSocketManager { }, // 重连 upgradeFailed: { type: FAILED_STATE, - },// 重连 - } + }, // 重连 + }; } } -- Gitee From b378b0de243dcde2afff6d43970bafc26875ab62 Mon Sep 17 00:00:00 2001 From: danghongquan Date: Sat, 28 Dec 2024 14:39:44 +0800 Subject: [PATCH 05/26] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9arkts=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E9=BB=98=E8=AE=A4=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: danghongquan --- ide/src/trace/component/setting/SpArkTs.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ide/src/trace/component/setting/SpArkTs.ts b/ide/src/trace/component/setting/SpArkTs.ts index 911ceb2cb..d4fb87e4f 100644 --- a/ide/src/trace/component/setting/SpArkTs.ts +++ b/ide/src/trace/component/setting/SpArkTs.ts @@ -189,7 +189,7 @@ export class SpArkTs extends BaseElement { if (detail.checked) { this.unDisable(); - this.unMemoryDisable(); + this.memoryDisable(); } else { this.disable(); this.memoryDisable(); @@ -298,6 +298,8 @@ export class SpArkTs extends BaseElement { item.disabled = false; item.checked = true; }); + // @ts-ignore + this.memorySwitch?.checked = false; let interval = this.shadowRoot?.querySelectorAll('.inputstyle'); interval!.forEach((item) => { item.disabled = false; -- Gitee From 9d5d00424d7d48bce47eeca95b3b4c69be20f847 Mon Sep 17 00:00:00 2001 From: wangziyi Date: Sat, 28 Dec 2024 15:39:58 +0800 Subject: [PATCH 06/26] =?UTF-8?q?fix:=E8=A1=A5=E5=85=85=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangziyi --- ide/src/trace/component/SpAiAnalysisPage.ts | 43 ++++++++++--------- ide/src/trace/component/SpSystemTrace.init.ts | 4 +- .../trace/component/chart/SpChartManager.ts | 2 +- .../trace/sheet/hilog/TabPaneHiLogs.ts | 10 ++--- .../trace/sheet/process/TabPaneSlices.ts | 28 +++++++++--- .../sheet/xpower/TabPaneXpowerGpuFreq.ts | 18 ++++---- .../xpower/XpowerAppDetailDataReceiver.ts | 26 +++++------ .../ProcedureWorkerXpowerGpuFreqCount.ts | 16 ++++++- 8 files changed, 87 insertions(+), 60 deletions(-) diff --git a/ide/src/trace/component/SpAiAnalysisPage.ts b/ide/src/trace/component/SpAiAnalysisPage.ts index de0a2c69e..1f29a125b 100644 --- a/ide/src/trace/component/SpAiAnalysisPage.ts +++ b/ide/src/trace/component/SpAiAnalysisPage.ts @@ -143,7 +143,7 @@ export class SpAiAnalysisPage extends BaseElement { this.endTimeEl = this.shadowRoot?.querySelector('.endTime'); this.endTimeEl!.innerHTML = getTimeString(TraceRow.range?.endNS!); - let rightBarGroup: any = [ + let rightBarGroup: unknown = [ { barName: '聊天', barEl: this.chatBar, @@ -164,11 +164,12 @@ export class SpAiAnalysisPage extends BaseElement { showPage: this.reportDetails, isMustLoadedTrace: true } - ] + ]; // 给右边栏添加点击事件 - rightBarGroup.forEach((barItem: any, index: number) => { - barItem.barEl.addEventListener('click', (ev: Event) => { + // @ts-ignore + rightBarGroup.forEach((barItem: unknown, index: number) => { // @ts-ignore + barItem.barEl.addEventListener('click', (ev: Event) => { // @ts-ignore if (barItem.isMustLoadedTrace && !SpApplication.isTraceLoaded) { let importTraceTips = '请先导入trace,再使用诊断功能'; this.tipContentArr = ['chat']; @@ -176,18 +177,18 @@ export class SpAiAnalysisPage extends BaseElement { return; } // this.tipsContent!.style.display = this.isNodata && barItem.barFlag === 'detect' ? 'flex' : 'none'; - this.tipsContainer!.style.display = 'none'; - this.showPageFlag = barItem.barFlag; - barItem.imgEl.src = barItem.activeImg; - barItem.barEl.classList.add('active'); - barItem.showPage.style.display = 'block'; + this.tipsContainer!.style.display = 'none'; // @ts-ignore + this.showPageFlag = barItem.barFlag; // @ts-ignore + barItem.imgEl.src = barItem.activeImg; // @ts-ignore + barItem.barEl.classList.add('active'); // @ts-ignore + barItem.showPage.style.display = 'block'; // @ts-ignore if (this.tipContentArr.indexOf(barItem.barFlag) > -1) { this.tipsContainer!.style.display = 'flex'; - } + } // @ts-ignore for (let i = 0; i < rightBarGroup.length; i++) { - if (i !== index) { - rightBarGroup[i].barEl.classList.remove('active'); - rightBarGroup[i].imgEl.src = rightBarGroup[i].img; + if (i !== index) { // @ts-ignore + rightBarGroup[i].barEl.classList.remove('active'); // @ts-ignore + rightBarGroup[i].imgEl.src = rightBarGroup[i].img; // @ts-ignore rightBarGroup[i].showPage.style.display = 'none'; } } @@ -289,7 +290,7 @@ export class SpAiAnalysisPage extends BaseElement { response.blob().then(blob => { const reader = new FileReader(); reader.readAsArrayBuffer(blob); - reader.onloadend = () => { + reader.onloadend = (): void => { const dbBuffer = reader.result; // @ts-ignore const reqBufferDB = new Uint8Array(dbBuffer); @@ -411,7 +412,7 @@ export class SpAiAnalysisPage extends BaseElement { }); } - appendChatContent(response: AiResponse) { + appendChatContent(response: AiResponse): void { if (!this.isNewChat) { // @ts-ignore this.aiAnswerBox!.firstElementChild!.innerHTML = this.md!.render(response.data); @@ -713,10 +714,10 @@ export class SpAiAnalysisPage extends BaseElement { WebSocketManager.getInstance()!.sendMessage(TypeConstants.DIAGNOSIS_TYPE, TypeConstants.SENDDB_CMD, reqBufferDB); // 存入缓存 const blob = new Blob([reqBufferDB]); - const response = new Response(blob) + const response = new Response(blob); caches.open('DB-file').then(cache => { return cache.put(`/${fileName}.db`, response); - }) + }); }, 'download-db' ); @@ -776,7 +777,7 @@ export class SpAiAnalysisPage extends BaseElement { }; // eventCallBack - eventCallBack = async (result: string) => { + eventCallBack = async (result: string): Promise => { this.draftList!.innerHTML = ''; this.tipsContent!.style.display = 'flex'; this.tipContentArr = ['detect']; @@ -832,7 +833,7 @@ export class SpAiAnalysisPage extends BaseElement { return { unconnected: { prompt: `未连接,请启动本地扩展程序再试![指导]` - },// 重连 + }, // 重连 connected: { prompt: '扩展程序连接中,请稍后再试!' }, // 中间 @@ -850,8 +851,8 @@ export class SpAiAnalysisPage extends BaseElement { }, // 重连 upgradeFailed: { prompt: '刷新页面触发升级,或卸载扩展程序重装!' - },// 重连 - } + }, // 重连 + }; } initHtml(): string { diff --git a/ide/src/trace/component/SpSystemTrace.init.ts b/ide/src/trace/component/SpSystemTrace.init.ts index 231afb8e8..f718f0243 100644 --- a/ide/src/trace/component/SpSystemTrace.init.ts +++ b/ide/src/trace/component/SpSystemTrace.init.ts @@ -165,8 +165,8 @@ function rightButtonOnClick(sp: SpSystemTrace, rightStar: HTMLElementAlias): unk sessionStorage.setItem('saveselectcpustruct', JSON.stringify(CpuStruct.selectCpuStruct)); } let rightButton: HTMLElement | null | undefined = sp.traceSheetEL?.shadowRoot - ?.querySelector("#current-selection > tabpane-current-selection") - ?.shadowRoot?.querySelector("#rightButton"); + ?.querySelector('#current-selection > tabpane-current-selection') + ?.shadowRoot?.querySelector('#rightButton'); rightButton?.blur(); setTimeout(() => { requestAnimationFrame(() => sp.refreshCanvas(false)); diff --git a/ide/src/trace/component/chart/SpChartManager.ts b/ide/src/trace/component/chart/SpChartManager.ts index 267dfda4c..77ec69300 100644 --- a/ide/src/trace/component/chart/SpChartManager.ts +++ b/ide/src/trace/component/chart/SpChartManager.ts @@ -130,7 +130,7 @@ export class SpChartManager { this.spUserFileChart = new SpUserFileChart(trace); this.spImportUserPluginsChart = new SpImportUserPluginsChart(trace); this.xpowerChart = new SpXpowerChart(trace); - this.spSnapShotChart = new SpSnapShotChart(trace) + this.spSnapShotChart = new SpSnapShotChart(trace); } async initPreprocessData(progress: Function): Promise { progress('load data dict', 50); diff --git a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts index ec33a738c..79fad8a33 100644 --- a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts +++ b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts @@ -310,7 +310,7 @@ export class TabPaneHiLogs extends BaseElement { search = search.replace(/\s/g, ''); let processSearch = this.processFilter?.value.toLowerCase() || ''; processSearch = processSearch.replace(/\s/g, ''); - // @ts-ignore + // @ts-ignore return ( (data.startTs || 0) >= TraceRow.range!.startNS && (data.startTs || 0) <= TraceRow.range!.endNS && @@ -323,17 +323,17 @@ export class TabPaneHiLogs extends BaseElement { } // 模糊过滤tag - private filterTag(tagAllName:unknown){ - if(this.allowTag.size === 0){ + private filterTag(tagAllName: unknown): boolean | undefined { + if (this.allowTag.size === 0) { return; } for (const value of this.allowTag) { // @ts-ignore - if(tagAllName.indexOf(value) >= 0){ + if (tagAllName.indexOf(value) >= 0) { return true; } } - return false; + return false; } private refreshTable(): void { diff --git a/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts b/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts index 4350b4fd0..4b6021904 100644 --- a/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts +++ b/ide/src/trace/component/trace/sheet/process/TabPaneSlices.ts @@ -154,7 +154,18 @@ export class TabPaneSlices extends BaseElement { let minStartTS = Infinity; let maxEndTS = -Infinity; // @ts-ignore - let parentDetail: [{ startTS: number, endTS: number, depth: number, id: number, name: string }] = await getParentDetail(slicesParam.processIds, slicesParam.funTids, slicesParam.leftNs, slicesParam.rightNs); + let parentDetail: [{ + startTS: number, + endTS: number, + depth: number, + id: number, + name: string + }] = await getParentDetail( + slicesParam.processIds, + slicesParam.funTids, + slicesParam.leftNs, + slicesParam.rightNs + ); // @ts-ignore parentDetail.forEach(item => { funcIdArr.push(item.id); @@ -170,12 +181,12 @@ export class TabPaneSlices extends BaseElement { let FuncChildrenList = await getFuncChildren(funcIdArr, slicesParam.processIds, slicesParam.funTids, minStartTS, maxEndTS, false); let childDurMap: Map> = new Map(); - FuncChildrenList.forEach((it: any) => { - if (!childDurMap.has(it.parentId)) { + FuncChildrenList.forEach((it: unknown) => { // @ts-ignore + if (!childDurMap.has(it.parentId)) { // @ts-ignore childDurMap.set(it.parentId, it.duration); - } else { - let dur = childDurMap.get(it.parentId) - dur += it.duration + } else { // @ts-ignore + let dur = childDurMap.get(it.parentId); // @ts-ignore + dur += it.duration; // @ts-ignore childDurMap.set(it.parentId, dur!); } }); @@ -185,7 +196,10 @@ export class TabPaneSlices extends BaseElement { let processSlicesResultMap: Map = new Map(); for (let processSliceItem of processSlicesResult) { //@ts-ignore - processSliceItem.selfTime = childDurMap.has(processSliceItem.id) ? parseFloat(((processSliceItem.wallDuration - childDurMap.get(processSliceItem.id)) / 1000000).toFixed(5)) : parseFloat((processSliceItem.wallDuration / 1000000).toFixed(5)); + processSliceItem.selfTime = //@ts-ignore + childDurMap.has(processSliceItem.id) ? //@ts-ignore + parseFloat(((processSliceItem.wallDuration - childDurMap.get(processSliceItem.id)) / 1000000).toFixed(5)) : //@ts-ignore + parseFloat((processSliceItem.wallDuration / 1000000).toFixed(5)); //@ts-ignore processSliceItem.name = processSliceItem.name === null ? '' : processSliceItem.name; //@ts-ignore diff --git a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts index e887ab906..4980d106e 100644 --- a/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts +++ b/ide/src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq.ts @@ -197,28 +197,28 @@ export class TabPaneXpowerGpuFreq extends BaseElement { tabXpowerGpuFreqStruct.count = itemArray.length; if (itemArray.length > 1) { let maxRunTime = this.getRunTimeMax(itemArray); - let minRunTime = this.getRunTimeMin(itemArray); - let sumRunTime = itemArray.reduce((acc: any, obj: { runTime: any }) => acc + obj.runTime, 0); + let minRunTime = this.getRunTimeMin(itemArray); // @ts-ignore + let sumRunTime: unknown = itemArray.reduce((acc: unknown, obj: { runTime: unknown }) => acc + obj.runTime, 0); // @ts-ignore tabXpowerGpuFreqStruct.avgRunTime = parseFloat((sumRunTime / itemArray.length).toFixed(2)); tabXpowerGpuFreqStruct.maxRunTime = maxRunTime; tabXpowerGpuFreqStruct.minRunTime = minRunTime; - tabXpowerGpuFreqStruct.avgRunTimeStr = Utils.timeFormat( + tabXpowerGpuFreqStruct.avgRunTimeStr = Utils.timeFormat( // @ts-ignore parseFloat((sumRunTime / itemArray.length).toFixed(2)) ); tabXpowerGpuFreqStruct.maxRunTimeStr = Utils.timeFormat(maxRunTime); tabXpowerGpuFreqStruct.minRunTimeStr = Utils.timeFormat(minRunTime); let maxIdleTime = this.getIdleTimeMax(itemArray); - let minIdleTime = this.getIdleTimeMin(itemArray); - let sumIdleTime = itemArray.reduce((acc: any, obj: { idleTime: any }) => acc + obj.idleTime, 0); + let minIdleTime = this.getIdleTimeMin(itemArray); // @ts-ignore + let sumIdleTime: unknown = itemArray.reduce((acc: unknown, obj: { idleTime: unknown }) => acc + obj.idleTime, 0); // @ts-ignore tabXpowerGpuFreqStruct.avgIdleTime = parseFloat((sumIdleTime / itemArray.length).toFixed(2)); tabXpowerGpuFreqStruct.maxIdleTime = maxIdleTime; tabXpowerGpuFreqStruct.minIdleTime = minIdleTime; - tabXpowerGpuFreqStruct.avgIdleTimeStr = Utils.timeFormat( + tabXpowerGpuFreqStruct.avgIdleTimeStr = Utils.timeFormat( // @ts-ignore parseFloat((sumIdleTime / itemArray.length).toFixed(2)) ); tabXpowerGpuFreqStruct.maxIdleTimeStr = Utils.timeFormat(maxIdleTime); tabXpowerGpuFreqStruct.minIdleTimeStr = Utils.timeFormat(minIdleTime); - } else if (itemArray.length == 1) { + } else if (itemArray.length === 1) { tabXpowerGpuFreqStruct = this.setTabXpowerGpuFreqStruct( itemArray[0].runTime, itemArray[0].idleTime, @@ -265,7 +265,7 @@ export class TabPaneXpowerGpuFreq extends BaseElement { this.XpowerGpuFreqTbl!.recycleDataSource = this.XpowerGpuFreqSource; } - private setSortKey(detailKey: string) { + private setSortKey(detailKey: string): string { let key = ''; switch (detailKey) { case 'avgRunTimeStr': @@ -312,5 +312,5 @@ export class TabXpowerGpuFreqStruct { avgIdleTimeStr: string = ''; maxIdleTimeStr: string = ''; minIdleTimeStr: string = ''; - runTime: any; + runTime: unknown; } diff --git a/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts b/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts index f26994317..386ed1981 100644 --- a/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts +++ b/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts @@ -96,8 +96,8 @@ const keys = [ ]; function initializeArrays(res: unknown[], transfer: boolean, data: unknown): { [key: string]: Float64Array } { - return keys.reduce((acc, key) => { - acc[key] = new Float64Array(transfer ? res.length : (data as any).params.sharedArrayBuffers[key]); + return keys.reduce((acc, key) => { // @ts-ignore + acc[key] = new Float64Array(transfer ? res.length : (data as unknown).params.sharedArrayBuffers[key]); return acc; }, {} as { [key: string]: Float64Array }); } @@ -105,13 +105,13 @@ function initializeArrays(res: unknown[], transfer: boolean, data: unknown): { [ function fillArrays(arrays: { [key: string]: Float64Array }, res: unknown[], data: unknown): void { let keysCopy = [...keys]; keysCopy.shift(); - res.forEach((it, i) => { - if ((data as any).params.trafic === TraficEnum.ProtoBuffer) { - it = (it as any).xpowerAppDetailData; - } - arrays['startTime'][i] = (it as any).startTime; - keysCopy.forEach((key) => { - arrays[key][i] = (it as any)[key]; + res.forEach((it, i) => { // @ts-ignore + if ((data as unknown).params.trafic === TraficEnum.ProtoBuffer) { // @ts-ignore + it = (it as unknown).xpowerAppDetailData; + } // @ts-ignore + arrays['startTime'][i] = (it as unknown).startTime; + keysCopy.forEach((key) => { // @ts-ignore + arrays[key][i] = (it as unknown)[key]; }); }); } @@ -120,12 +120,12 @@ function arrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): v const arrays = initializeArrays(res, transfer, data); fillArrays(arrays, res, data); (self as unknown as Worker).postMessage( - { - id: (data as any).id, - action: (data as any).action, + { // @ts-ignore + id: (data as unknown).id, // @ts-ignore + action: (data as unknown).action, results: transfer ? { - startTime: arrays['startTime'].buffer, + startTime: arrays['startTime'].buffer, c1hz: arrays['c1hz'].buffer, c5hz: arrays['c5hz'].buffer, c10hz: arrays['c10hz'].buffer, diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts index ffdd72616..d033f1709 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreqCount.ts @@ -97,7 +97,13 @@ private static calculateDrawHeight(data: XpowerGpuFreqCountStruct, maxValue: num return drawHeight === 0 ? 1 : drawHeight; } -private static drawHoverState(xpowerContext: CanvasRenderingContext2D, data: XpowerGpuFreqCountStruct, width: number, drawHeight: number, cutHeight: number): void { +private static drawHoverState( + xpowerContext: CanvasRenderingContext2D, + data: XpowerGpuFreqCountStruct, + width: number, + drawHeight: number, + cutHeight: number +): void { xpowerContext.lineWidth = 1; xpowerContext.globalAlpha = 0.6; xpowerContext.fillStyle = ColorUtils.colorForTid(XpowerGpuFreqCountStruct.index); @@ -127,7 +133,13 @@ private static drawHoverState(xpowerContext: CanvasRenderingContext2D, data: Xpo xpowerContext.stroke(); } -private static drawNormalState(xpowerContext: CanvasRenderingContext2D, data: XpowerGpuFreqCountStruct, width: number, drawHeight: number, cutHeight: number): void { +private static drawNormalState( + xpowerContext: CanvasRenderingContext2D, + data: XpowerGpuFreqCountStruct, + width: number, + drawHeight: number, + cutHeight: number +): void { xpowerContext.lineWidth = 1; xpowerContext.globalAlpha = 1.0; xpowerContext.strokeStyle = ColorUtils.colorForTid(XpowerGpuFreqCountStruct.index); -- Gitee From 510b7f1b9eb5c050b2a7ecde70605296fdeb5cb8 Mon Sep 17 00:00:00 2001 From: danghongquan Date: Sat, 28 Dec 2024 17:41:28 +0800 Subject: [PATCH 07/26] =?UTF-8?q?fix:=E6=89=A9=E5=B1=95=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: danghongquan --- ide/src/doc/quickstart_extensions.html | 2 +- ide/src/webSocket/WebSocketManager.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ide/src/doc/quickstart_extensions.html b/ide/src/doc/quickstart_extensions.html index 9b56fd0d1..10ac5ad3f 100644 --- a/ide/src/doc/quickstart_extensions.html +++ b/ide/src/doc/quickstart_extensions.html @@ -811,7 +811,7 @@ 在hi-smart-perf-host-extend目录下,找到stop.bat文件,右键选择以管理员身份运行,即可关闭扩展服务。

- 备注:当前扩展服务版本为1.0.5,如果本地存在以其他方式安装的非正式版本,请手动关闭扩展服务,并重新按照该指导安装 + 备注:当前扩展服务版本为1.0.6,如果本地存在以其他方式安装的非正式版本,请手动关闭扩展服务,并重新按照该指导安装

diff --git a/ide/src/webSocket/WebSocketManager.ts b/ide/src/webSocket/WebSocketManager.ts index 5f20e9e31..a85c592f7 100644 --- a/ide/src/webSocket/WebSocketManager.ts +++ b/ide/src/webSocket/WebSocketManager.ts @@ -118,7 +118,7 @@ export class WebSocketManager { updateMessage(decode: MessageParam): void { if (decode.cmd === Constants.GET_VERSION_CMD) { // 小于则升级 - let targetVersion = '1.0.5'; + let targetVersion = '1.0.6'; let currentVersion = new TextDecoder().decode(decode.data); let result = this.compareVersion(currentVersion, targetVersion); if (result === -1) { -- Gitee From 32004cb2a6968441623913bf2bc3f2bc2e27a6b8 Mon Sep 17 00:00:00 2001 From: wangziyi Date: Sat, 28 Dec 2024 18:19:41 +0800 Subject: [PATCH 08/26] =?UTF-8?q?fix:=E8=A1=A5=E5=85=85=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangziyi --- .../xpower/XpowerAppDetailDataReceiver.ts | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts b/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts index 386ed1981..135a68039 100644 --- a/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts +++ b/ide/src/trace/database/data-trafic/xpower/XpowerAppDetailDataReceiver.ts @@ -125,18 +125,18 @@ function arrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): v action: (data as unknown).action, results: transfer ? { - startTime: arrays['startTime'].buffer, - c1hz: arrays['c1hz'].buffer, - c5hz: arrays['c5hz'].buffer, - c10hz: arrays['c10hz'].buffer, - c15hz: arrays['c15hz'].buffer, - c24hz: arrays['c24hz'].buffer, - c30hz: arrays['c30hz'].buffer, - c45hz: arrays['c45hz'].buffer, - c60hz: arrays['c60hz'].buffer, - c90hz: arrays['c90hz'].buffer, - c120hz: arrays['c120hz'].buffer, - c180hz: arrays['c180hz'].buffer, + startTime: arrays.startTime.buffer, + c1hz: arrays.c1hz.buffer, + c5hz: arrays.c5hz.buffer, + c10hz: arrays.c10hz.buffer, + c15hz: arrays.c15hz.buffer, + c24hz: arrays.c24hz.buffer, + c30hz: arrays.c30hz.buffer, + c45hz: arrays.c45hz.buffer, + c60hz: arrays.c60hz.buffer, + c90hz: arrays.c90hz.buffer, + c120hz: arrays.c120hz.buffer, + c180hz: arrays.c180hz.buffer, } : {}, len: res.length, @@ -144,18 +144,18 @@ function arrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): v }, transfer ? [ - arrays['startTime'].buffer, - arrays['c1hz'].buffer, - arrays['c5hz'].buffer, - arrays['c10hz'].buffer, - arrays['c15hz'].buffer, - arrays['c24hz'].buffer, - arrays['c30hz'].buffer, - arrays['c45hz'].buffer, - arrays['c60hz'].buffer, - arrays['c90hz'].buffer, - arrays['c120hz'].buffer, - arrays['c180hz'].buffer, + arrays.startTime.buffer, + arrays.c1hz.buffer, + arrays.c5hz.buffer, + arrays.c10hz.buffer, + arrays.c15hz.buffer, + arrays.c24hz.buffer, + arrays.c30hz.buffer, + arrays.c45hz.buffer, + arrays.c60hz.buffer, + arrays.c90hz.buffer, + arrays.c120hz.buffer, + arrays.c180hz.buffer, ] : [] ); -- Gitee From 40815de57a391f87edeeadba7e99aacfaffbb054 Mon Sep 17 00:00:00 2001 From: liufei Date: Mon, 30 Dec 2024 19:54:05 +0800 Subject: [PATCH 09/26] =?UTF-8?q?fix:hiperftab=E9=A1=B5=E8=BF=9E=E7=BB=AD?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=95=B0=E6=8D=AE=E5=87=BA=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8Ctime=20parallel=E6=AD=BB=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liufei --- .../trace/sheet/hiperf/TabPanePerfAnalysis.ts | 6 +++++ .../trace/sheet/hiperf/TabPerfBottomUp.ts | 7 ++++-- .../trace/sheet/hiperf/TabPerfProfile.ts | 22 +++++++++++++++---- .../trace/sheet/parallel/ParallelUtil.ts | 3 +++ 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts index a5137cb8e..1f1da27b4 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPanePerfAnalysis.ts @@ -65,6 +65,7 @@ export class TabPanePerfAnalysis extends BaseElement { private tableArray: NodeListOf | undefined | null; private isComplete: boolean = true; private currentSelectionParam: SelectionParam | undefined | null; + static tabLoadingList: Array = []; set data(val: SelectionParam) { if (val === this.currentSelection) { @@ -79,6 +80,7 @@ export class TabPanePerfAnalysis extends BaseElement { initSort(table!, this.sortColumn, this.sortType); } } + TabPanePerfAnalysis.tabLoadingList = []; this.currentSelection = val; this.tabName!.textContent = ''; this.hideProcessCheckBox!.checked = false; @@ -91,6 +93,7 @@ export class TabPanePerfAnalysis extends BaseElement { this.currentSelectionParam = val; if (!this.callChainMap && this.isComplete) { this.isComplete = false; + TabPanePerfAnalysis.tabLoadingList.push('analysis'); this.getCallChainDataFromWorker(val); } } @@ -1111,6 +1114,9 @@ export class TabPanePerfAnalysis extends BaseElement { } this.progressEL!.loading = false; this.getHiperfProcess(val); + if (TabPanePerfAnalysis.tabLoadingList[0] === 'analysis') { + TabPanePerfAnalysis.tabLoadingList.shift(); + } TabpanePerfBottomUp.isStartGetData = true; }); } diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts index ba564fd71..741132876 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPerfBottomUp.ts @@ -25,6 +25,7 @@ import { procedurePool } from '../../../../database/Procedure'; import { type LitProgressBar } from '../../../../../base-ui/progress-bar/LitProgressBar'; import { type PerfBottomUpStruct } from '../../../../bean/PerfBottomUpStruct'; import { findSearchNode, HiPerfStruct } from '../../../../database/ui-worker/ProcedureWorkerCommon'; +import { TabPanePerfAnalysis } from './TabPanePerfAnalysis'; @element('tabpane-perf-bottom-up') export class TabpanePerfBottomUp extends BaseElement { @@ -66,6 +67,7 @@ export class TabpanePerfBottomUp extends BaseElement { public getBottomData(data: SelectionParam) { this.getDataByWorker(data, (results: Array) => { this.setBottomUpTableData(results); + TabPanePerfAnalysis.tabLoadingList.shift(); }); } @@ -99,11 +101,12 @@ export class TabpanePerfBottomUp extends BaseElement { this.sortKey = ''; this.sortType = 0; this.bottomUpFilter!.filterValue = ''; - if (TabpanePerfBottomUp.isStartGetData) { + TabPanePerfAnalysis.tabLoadingList.push('bottomUp'); + if (TabPanePerfAnalysis.tabLoadingList[0] === 'bottomUp') { this.getBottomData(data); } else { let timer = setInterval(() => { - if (TabpanePerfBottomUp.isStartGetData) { + if (TabPanePerfAnalysis.tabLoadingList[0] === 'bottomUp') { this.getBottomData(data); clearInterval(timer); } diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts index d24f40db0..2557b2215 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts @@ -30,6 +30,7 @@ import { showButtonMenu } from '../SheetUtils'; import '../../../../../base-ui/headline/lit-headline'; import { LitHeadLine } from '../../../../../base-ui/headline/lit-headline'; import { TabPerfProfileHtml } from './TabPerfProfile.html'; +import { TabPanePerfAnalysis } from './TabPanePerfAnalysis'; const InvertOptionIndex: number = 0; const hideSystemLibraryOptionIndex: number = 1; @@ -106,18 +107,30 @@ export class TabpanePerfProfile extends BaseElement { } else { this.perfProfilerFilter!.style.display = 'none'; } - procedurePool.submitWithName('logic0', 'perf-reset', [], undefined, () => {}); + procedurePool.submitWithName('logic0', 'perf-reset', [], undefined, () => { }); this.perfProfilerFilter!.disabledTransfer(true); this.perfProfilerFilter!.initializeFilterTree(true, true, true); this.perfProfilerFilter!.filterValue = ''; this.perfProfileProgressEL!.loading = true; // @ts-ignore - this.perfProfileLoadingPage.style.visibility = 'visible'; + this.perfProfileLoadingPage.style.visibility = 'visible'; const newPerfProfilerSelection = Object.fromEntries(// @ts-ignore Object.entries(perfProfilerSelection).filter(([key, value]) => !['clockMapData', 'xpowerMapData', 'hangMapData'].includes(key) ) - ) as Partial;// @ts-ignore - this.getDataByWorkAndUpDateCanvas(newPerfProfilerSelection); + ) as Partial; + TabPanePerfAnalysis.tabLoadingList.push('profile'); + if (TabPanePerfAnalysis.tabLoadingList[0] === 'profile') { + // @ts-ignore + this.getDataByWorkAndUpDateCanvas(newPerfProfilerSelection); + } else { + let timer = setInterval(() => { + if (TabPanePerfAnalysis.tabLoadingList[0] === 'profile') { + // @ts-ignore + this.getDataByWorkAndUpDateCanvas(newPerfProfilerSelection); + clearInterval(timer); + } + }, 1000) + } } getDataByWorkAndUpDateCanvas(perfProfilerSelection: SelectionParam): void { @@ -165,6 +178,7 @@ export class TabpanePerfProfile extends BaseElement { this.perfProfileFrameChart!.data = this.perfProfilerDataSource; this.switchFlameChart(); this.perfProfilerFilter!.icon = 'block'; + TabPanePerfAnalysis.tabLoadingList.shift(); }); } diff --git a/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts b/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts index 5ea366b5e..eeeb56bd2 100644 --- a/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts +++ b/ide/src/trace/component/trace/sheet/parallel/ParallelUtil.ts @@ -43,6 +43,7 @@ export function HanldParalLogic( if (globalTs === minEndTs) { // @ts-ignore if (minIndex !== -1) { waitArr.splice(minIndex, 1) }; + index++; continue; } let list = JSON.parse(JSON.stringify(waitArr)); @@ -82,6 +83,7 @@ export function HanldParalLogic( globalTs = minEndTs; // @ts-ignore if (minIndex !== -1) { waitArr.splice(minIndex, 1) }; + index++; } } else { dumpObj = { @@ -93,6 +95,7 @@ export function HanldParalLogic( globalTs = minEndTs; // @ts-ignore if (minIndex !== -1) { waitArr.splice(minIndex, 1) }; + index++; } param = func(dumpObj, value, param); } -- Gitee From e4e350b3b014b386e1506b33eb49a25f3d271915 Mon Sep 17 00:00:00 2001 From: liufei Date: Tue, 31 Dec 2024 11:28:00 +0800 Subject: [PATCH 10/26] =?UTF-8?q?fix:thread=20states=E5=88=87=E5=89=B2?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E6=94=B9=E4=B8=BA=E5=91=A8=E6=9C=9F=E5=86=85?= =?UTF-8?q?=E6=A1=86=E9=80=89=E5=B0=B1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liufei --- .../sheet/states/TabPaneFreqStatesDataCut.ts | 31 ++++++++----------- ide/src/trace/database/sql/Func.sql.ts | 8 +++-- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts b/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts index 943633df1..5b02b0f21 100644 --- a/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts +++ b/ide/src/trace/component/trace/sheet/states/TabPaneFreqStatesDataCut.ts @@ -153,10 +153,9 @@ export class TabPaneFreqStatesDataCut extends BaseElement { stateItemArr.map((stateItem) => { for (let i = 0; i < this.funcNameCycleArr!.length; i++) { if ( - // @ts-ignore - stateItem.ts + stateItem.dur > this.funcNameCycleArr[i].cycleStartTime && - // @ts-ignore - stateItem.ts + stateItem.dur < this.funcNameCycleArr[i].endTime && + ((stateItem.ts > this.funcNameCycleArr![i].cycleStartTime && stateItem.ts < this.funcNameCycleArr![i].endTime) || + (stateItem.ts + stateItem.dur! > this.funcNameCycleArr![i].cycleStartTime && stateItem.ts + stateItem.dur! < this.funcNameCycleArr![i].endTime) || + (this.funcNameCycleArr![i].cycleStartTime > stateItem.ts && this.funcNameCycleArr![i].endTime < stateItem.ts + stateItem.dur!)) && (stateItem.state === 'S' || stateItem.state === 'R' || stateItem.state === 'D' || @@ -164,11 +163,6 @@ export class TabPaneFreqStatesDataCut extends BaseElement { ) { stateItem.startTs = stateItem.ts; stateItem.chartDur = stateItem.dur; - // @ts-ignore 周期第一条数据开始时间设置为周期开始时间 - if (stateItem.ts + stateItem.dur > this.funcNameCycleArr[i].cycleStartTime && stateItem.ts < this.funcNameCycleArr[i].cycleStartTime) { - stateItem.dur = stateItem.ts + stateItem.dur! - this.funcNameCycleArr![i].cycleStartTime; - stateItem.ts = this.funcNameCycleArr![i].cycleStartTime; - } this.filterState!.push(stateItem); } } @@ -225,10 +219,9 @@ export class TabPaneFreqStatesDataCut extends BaseElement { stateItemArr.map((stateItem) => { for (let i = 0; i < this.funcNameCycleArr!.length; i++) { if ( - // @ts-ignore - stateItem.ts + stateItem.dur > this.funcNameCycleArr[i].cycleStartTime && - // @ts-ignore - stateItem.ts + stateItem.dur < this.funcNameCycleArr[i].endTime && + ((stateItem.ts > this.funcNameCycleArr![i].cycleStartTime && stateItem.ts < this.funcNameCycleArr![i].endTime) || + (stateItem.ts + stateItem.dur! > this.funcNameCycleArr![i].cycleStartTime && stateItem.ts + stateItem.dur! < this.funcNameCycleArr![i].endTime) || + (this.funcNameCycleArr![i].cycleStartTime > stateItem.ts && this.funcNameCycleArr![i].endTime < stateItem.ts + stateItem.dur!)) && (stateItem.state === 'S' || stateItem.state === 'R' || stateItem.state === 'D' || @@ -370,10 +363,9 @@ export class TabPaneFreqStatesDataCut extends BaseElement { cycleItem.cycle = i; threadData.map((v) => { if ( - // @ts-ignore - v.ts + v.dur > this.funcNameCycleArr[i].cycleStartTime && - // @ts-ignore - v.dur + v.ts < this.funcNameCycleArr[i].endTime + (v.ts > this.funcNameCycleArr![i].cycleStartTime && v.ts < this.funcNameCycleArr![i].endTime) || + (v.ts + v.dur! > this.funcNameCycleArr![i].cycleStartTime && v.ts + v.dur! < this.funcNameCycleArr![i].endTime) || + (this.funcNameCycleArr![i].cycleStartTime > v.ts && this.funcNameCycleArr![i].endTime < v.ts + v.dur!) ) { cycleItem.totalCount! += 1; v.state === 'R' @@ -593,7 +585,10 @@ export class TabPaneFreqStatesDataCut extends BaseElement { // 筛选出点击的线程数据 filCycleData(pid: number, tid: number): Array { return this.filterState?.filter((v: StateGroup) => { - return v.pid === pid && v.tid === tid && v.ts + v.dur! > this.cycleStartTime! && v.ts + v.dur! < this.cycleEndTime!; + return v.pid === pid && v.tid === tid && ( + (v.ts > this.cycleStartTime! && v.ts < this.cycleEndTime!) || + (v.ts + v.dur! > this.cycleStartTime! && v.ts + v.dur! < this.cycleEndTime!) || + (this.cycleStartTime! > v.ts && this.cycleEndTime! < v.ts + v.dur!)); }) }; diff --git a/ide/src/trace/database/sql/Func.sql.ts b/ide/src/trace/database/sql/Func.sql.ts index eeaba5ff9..8edc5e972 100644 --- a/ide/src/trace/database/sql/Func.sql.ts +++ b/ide/src/trace/database/sql/Func.sql.ts @@ -733,8 +733,12 @@ export const queryStatesCut = (tIds: Array, leftNS: number, rightNS: num where B.tid in (${tIds.join(',')}) and - not ((B.ts + + ifnull(B.dur,0) < ($leftStartNs + C.start_ts)) - or (B.ts + B.dur > ($rightEndNs + C.start_ts))) + ((B.ts + ifnull(B.dur,0) > ($leftStartNs + C.start_ts)) + and (B.ts + B.dur < ($rightEndNs + C.start_ts)) + or + ( + B.ts > ($leftStartNs + C.start_ts) and B.ts < ($rightEndNs + C.start_ts) + )) order by B.pid; `, -- Gitee From 2f1a0a5c1ff8f20735eb97e9dd58bce8c6d90969 Mon Sep 17 00:00:00 2001 From: danghongquan Date: Tue, 31 Dec 2024 11:41:39 +0800 Subject: [PATCH 11/26] =?UTF-8?q?fix:=E9=93=BE=E6=8E=A5=E5=B8=A6=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: danghongquan --- ide/src/trace/component/SpSystemTrace.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index 238e7379f..68ce8e903 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -1818,7 +1818,6 @@ export class SpSystemTrace extends BaseElement { //@ts-ignore window.subscribe(window.SmartEvent.UI.ImportRecord, (data: string) => { let record = JSON.parse(data); - if (record.leftNS !== undefined && record.rightNS !== undefined) { this.favoriteChartListEL?.removeAllCollectRow(); let currentGroup = this.currentCollectGroup; if (record.G1) { @@ -1845,7 +1844,6 @@ export class SpSystemTrace extends BaseElement { document.querySelector("body > sp-application").shadowRoot.querySelector("#lit-search").shadowRoot.querySelector("div.root > input")!.value = record.search?record.search:''; // @ts-ignore document.querySelector("body > sp-application").shadowRoot.querySelector("#lit-search")!.valueChangeHandler!(record.search?record.search:''); - } }); } @@ -1881,7 +1879,10 @@ export class SpSystemTrace extends BaseElement { } } // @ts-ignore + if(record.leftNS && record.rightNS){ + // @ts-ignore this.timerShaftEL?.setRangeNS(record.leftNS, record.rightNS); + } } private restoreRecordScrollTop(mainScrollTop: number, favoriteScrollTop: number): void { -- Gitee From 7e81aad63e2732092bc1e4ce2d27e3c8d3947224 Mon Sep 17 00:00:00 2001 From: zhangzhuozhou Date: Thu, 2 Jan 2025 14:43:30 +0800 Subject: [PATCH 12/26] =?UTF-8?q?fix:1-2=20ts=E4=BB=A3=E7=A0=81=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangzhuozhou --- trace_streamer/pare_third_party.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trace_streamer/pare_third_party.sh b/trace_streamer/pare_third_party.sh index 849525845..f50b0d33d 100755 --- a/trace_streamer/pare_third_party.sh +++ b/trace_streamer/pare_third_party.sh @@ -16,7 +16,7 @@ patch='patch' sed='sed' cp='cp' rm='rm' -root_dir=`pwd` +root_dir=$(pwd) echo "build root dir is $root_dir" git config --global core.longpaths true -- Gitee From ec91c345e76093bf347bd60b36a3eea49ab34814 Mon Sep 17 00:00:00 2001 From: wangziyi Date: Thu, 2 Jan 2025 16:29:18 +0800 Subject: [PATCH 13/26] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangziyi --- ide/src/trace/component/SpSystemTrace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ide/src/trace/component/SpSystemTrace.ts b/ide/src/trace/component/SpSystemTrace.ts index bd189b2ab..77e2b446f 100644 --- a/ide/src/trace/component/SpSystemTrace.ts +++ b/ide/src/trace/component/SpSystemTrace.ts @@ -1843,7 +1843,7 @@ export class SpSystemTrace extends BaseElement { // @ts-ignore document.querySelector('body > sp-application').shadowRoot.querySelector('#lit-search').shadowRoot.querySelector('div.root > input')!.value = record.search ? record.search : ''; // @ts-ignore - document.querySelector("body > sp-application").shadowRoot.querySelector("#lit-search")!.valueChangeHandler!(record.search?record.search:''); + document.querySelector('body > sp-application').shadowRoot.querySelector('#lit-search')!.valueChangeHandler!(record.search ? record.search : ''); }); } -- Gitee From 30713ea67f51f88e44a340436a5622dc867ff9e9 Mon Sep 17 00:00:00 2001 From: JustinTY Date: Thu, 2 Jan 2025 22:07:49 +0800 Subject: [PATCH 14/26] =?UTF-8?q?1.=20=E6=94=AF=E6=8C=81=E4=BD=BF=E7=94=A8?= =?UTF-8?q?sqlite=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC=E7=BC=96=E8=AF=91=20?= =?UTF-8?q?2.=20=E7=8B=AC=E7=AB=8B=E7=BC=96=E8=AF=91htrace=E8=A7=A3?= =?UTF-8?q?=E8=80=A6=E3=80=82=203.=20=E4=BF=AE=E5=A4=8Dnative=5Fhook=5Ffra?= =?UTF-8?q?me=E8=A1=A8vaddr=E5=AD=97=E6=AE=B5=E8=AE=A1=E7=AE=97=E8=A7=84?= =?UTF-8?q?=E5=88=99=E3=80=82=204.=20=E4=BF=AE=E5=A4=8Dgn=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E9=9D=99=E6=80=81=E6=A3=80=E6=9F=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=82=205.=20=E8=A7=A3=E5=86=B3demosdk=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: JustinTY --- trace_streamer/.gn | 1 + .../prebuilts/patch_sqlite/sqlite3build.gn | 1 + trace_streamer/sdk/demo_sdk/plugin/BUILD.gn | 1 + .../trace_data/demo_trace_data_db.cpp | 1 + trace_streamer/src/BUILD.gn | 1 + trace_streamer/src/base/codec_cov.cpp | 2 +- trace_streamer/src/base/file.cpp | 44 +++++++++++-------- trace_streamer/src/base/ts_common.h | 9 ++++ .../filter/hook_filter/native_hook_filter.cpp | 9 ++-- .../parser/ebpf_parser/ebpf_data_structure.h | 10 ----- trace_streamer/src/trace_data/BUILD.gn | 6 +-- .../src/trace_data/trace_data_cache.cpp | 16 +++---- trace_streamer/src/version.cpp | 4 +- 13 files changed, 58 insertions(+), 47 deletions(-) diff --git a/trace_streamer/.gn b/trace_streamer/.gn index ac31bfdbc..5e9092263 100644 --- a/trace_streamer/.gn +++ b/trace_streamer/.gn @@ -12,5 +12,6 @@ # limitations under the License. buildconfig = "//gn/CONFIG.gn" +script_executable = "/usr/bin/env" # REF: https://gitee.com/openharmony/third_party_llvm-project/blob/master/llvm/utils/gn/.gn secondary_source = "//llvm/utils/gn/secondary/" \ No newline at end of file diff --git a/trace_streamer/prebuilts/patch_sqlite/sqlite3build.gn b/trace_streamer/prebuilts/patch_sqlite/sqlite3build.gn index dfd9237e1..32716a2e0 100644 --- a/trace_streamer/prebuilts/patch_sqlite/sqlite3build.gn +++ b/trace_streamer/prebuilts/patch_sqlite/sqlite3build.gn @@ -40,6 +40,7 @@ config("sqlite_config") { "-DSQLITE_CORE", "-DSQLITE_TEMP_STORE=3", "-DSQLITE_OMIT_LOAD_EXTENSION", + "-DSQLITE_EXPORT_SYMBOLS", ] } ohos_source_set("sqlite") { diff --git a/trace_streamer/sdk/demo_sdk/plugin/BUILD.gn b/trace_streamer/sdk/demo_sdk/plugin/BUILD.gn index a932cf383..c24acfeb7 100644 --- a/trace_streamer/sdk/demo_sdk/plugin/BUILD.gn +++ b/trace_streamer/sdk/demo_sdk/plugin/BUILD.gn @@ -29,6 +29,7 @@ ohos_source_set("sdk_plugin") { "${THIRD_PARTY}/sqlite/include", "${OHOS_PROTO_GEN}/types/plugins/mock_data", "${THIRD_PARTY}/protobuf/src", + "${THIRD_PARTY}/zlib", ] public_deps = [ "../protos/types/plugins/mock_data:mock_data_cpp" ] diff --git a/trace_streamer/sdk/demo_sdk/trace_data/demo_trace_data_db.cpp b/trace_streamer/sdk/demo_sdk/trace_data/demo_trace_data_db.cpp index 2a4e9f1c7..a6e802616 100644 --- a/trace_streamer/sdk/demo_sdk/trace_data/demo_trace_data_db.cpp +++ b/trace_streamer/sdk/demo_sdk/trace_data/demo_trace_data_db.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include diff --git a/trace_streamer/src/BUILD.gn b/trace_streamer/src/BUILD.gn index c63d5a454..2a07f3840 100644 --- a/trace_streamer/src/BUILD.gn +++ b/trace_streamer/src/BUILD.gn @@ -48,6 +48,7 @@ ohos_source_set("ts_sqlite") { "-DSQLITE_CORE", "-DSQLITE_TEMP_STORE=3", "-DSQLITE_OMIT_LOAD_EXTENSION", + "-DSQLITE_EXPORT_SYMBOLS", ] if (is_mingw || is_mac) { diff --git a/trace_streamer/src/base/codec_cov.cpp b/trace_streamer/src/base/codec_cov.cpp index 7ccaaab7c..d23c62a43 100644 --- a/trace_streamer/src/base/codec_cov.cpp +++ b/trace_streamer/src/base/codec_cov.cpp @@ -73,7 +73,7 @@ bool IsGBK(const uint8_t *data, int32_t len) constexpr uint8_t firstByteEnd = 0xfe; constexpr uint8_t secondByteOne = 0x40; constexpr uint8_t secondByteTwoEnd = 0xfe; - constexpr uint8_t gbkMask = 0xf7; + constexpr uint8_t gbkMask = 0x7f; int32_t i = 0; while (i < len) { if (data[i] <= asciiEnd) { diff --git a/trace_streamer/src/base/file.cpp b/trace_streamer/src/base/file.cpp index d4f9a1b99..2b95f5c44 100644 --- a/trace_streamer/src/base/file.cpp +++ b/trace_streamer/src/base/file.cpp @@ -283,34 +283,42 @@ bool LocalZip::Unzlib(std::string &traceFile) bool LocalZip::WriteFile(std::ifstream &srcFile, std::ofstream &destFile) { - z_stream strm; - strm.zalloc = Z_NULL; - strm.zfree = Z_NULL; - strm.opaque = Z_NULL; - TS_CHECK_TRUE(inflateInit(&strm) == Z_OK, false, "inflateInit failed."); + auto strmDeleterFunc = [](z_stream *strmPtr) { + if (strmPtr) { + if (inflateEnd(strmPtr) != Z_OK) { + TS_LOGE("Error inflateEnd!"); + } + delete strmPtr; + strmPtr = nullptr; + } + }; + std::unique_ptr strmPtr(new z_stream, strmDeleterFunc); + TS_CHECK_TRUE(strmPtr != nullptr, false, "Error construct strmPtr!"); + strmPtr->zalloc = Z_NULL; + strmPtr->zfree = Z_NULL; + strmPtr->opaque = Z_NULL; + TS_CHECK_TRUE(inflateInit(strmPtr.get()) == Z_OK, false, "inflateInit failed."); unsigned char inputBuf[ZLIB_CHUNK_SIZE]; unsigned char outBuf[ZLIB_CHUNK_SIZE]; int flushFlag = Z_NO_FLUSH; do { srcFile.read(reinterpret_cast(inputBuf), ZLIB_CHUNK_SIZE); - strm.avail_in = srcFile.gcount(); - if (srcFile.bad()) { - inflateEnd(&strm); - TS_LOGE("Error reading source file."); - return false; - } + TS_CHECK_TRUE(!srcFile.bad(), false, "Error reading source file!"); + strmPtr->avail_in = srcFile.gcount(); flushFlag = srcFile.eof() ? Z_FINISH : Z_NO_FLUSH; - strm.next_in = inputBuf; + strmPtr->next_in = inputBuf; do { - strm.avail_out = ZLIB_CHUNK_SIZE; - strm.next_out = outBuf; - inflate(&strm, flushFlag); - size_t haveUnzlibSize = ZLIB_CHUNK_SIZE - strm.avail_out; + strmPtr->avail_out = ZLIB_CHUNK_SIZE; + strmPtr->next_out = outBuf; + auto ret = inflate(strmPtr.get(), flushFlag); + // Z_BUF_ERROR means that there is still data that needs to be unziped + TS_CHECK_TRUE(ret >= Z_OK || ret == Z_BUF_ERROR, false, "Error inflate: %d!", ret); + size_t haveUnzlibSize = ZLIB_CHUNK_SIZE - strmPtr->avail_out; destFile.write(reinterpret_cast(outBuf), haveUnzlibSize); - } while (strm.avail_out == 0); + TS_CHECK_TRUE(!destFile.bad(), false, "DestFile error write!"); + } while (strmPtr->avail_out == 0); } while (flushFlag != Z_FINISH); - inflateEnd(&strm); return true; } } // namespace base diff --git a/trace_streamer/src/base/ts_common.h b/trace_streamer/src/base/ts_common.h index a32daabdc..ea181467a 100644 --- a/trace_streamer/src/base/ts_common.h +++ b/trace_streamer/src/base/ts_common.h @@ -214,6 +214,15 @@ enum DataSourceType { DATA_SOURCE_TYPE_STREAM }; enum HookMemoryType { MALLOC = 0, MMAP = 1, FILE_PAGE_MSG = 2, MEMORY_USING_MSG = 3 }; +enum EBPF_DATA_TYPE { + ITEM_EVENT_MAPS = 0, + ITEM_SYMBOL_INFO, + ITEM_EVENT_FS, + ITEM_EVENT_VM, + ITEM_EVENT_BIO, + ITEM_EVENT_STR, + ITEM_EVENT_KENEL_SYMBOL_INFO = 0x10001, +}; using DataIndex = uint64_t; using TableRowId = int32_t; using InternalPid = uint32_t; diff --git a/trace_streamer/src/filter/hook_filter/native_hook_filter.cpp b/trace_streamer/src/filter/hook_filter/native_hook_filter.cpp index 93dd93a67..d8f8e9bba 100644 --- a/trace_streamer/src/filter/hook_filter/native_hook_filter.cpp +++ b/trace_streamer/src/filter/hook_filter/native_hook_filter.cpp @@ -994,13 +994,16 @@ void NativeHookFilter::GetNativeHookFrameVaddrs() for (size_t i = 0; i < size; i++) { auto symbolOffset = traceDataCache_->GetNativeHookFrameData()->SymbolOffsets()[i]; auto fileOffset = traceDataCache_->GetNativeHookFrameData()->Offsets()[i]; - // When the symbol offset not is INVALID_UINT64, vaddr=offset+symbol offset - if (symbolOffset != INVALID_UINT64 && fileOffset != INVALID_UINT64) { + auto ip = traceDataCache_->GetNativeHookFrameData()->Ips()[i]; + // When the offset and symbolOffset is valid, vaddr = offset + symbolOffset + // Generally, when symbolOffset is a valid value, Fileoffset is also a valid value + if (symbolOffset != INVALID_UINT64 && symbolOffset != 0 && fileOffset != INVALID_UINT64 && fileOffset != ip && + fileOffset != 0) { auto vaddr = base::Uint64ToHexText(fileOffset + symbolOffset); vaddrs_.emplace_back(vaddr); continue; } - // When the symbol offset is 0, vaddr takes the string after the plus sign in the function name + // When the offset and symbolOffset is invalid, vaddr takes the string after the plus sign in the function name auto functionNameIndex = traceDataCache_->GetNativeHookFrameData()->SymbolNames()[i]; std::string vaddr = ""; auto itor = functionNameIndexToVaddr_.find(functionNameIndex); diff --git a/trace_streamer/src/parser/ebpf_parser/ebpf_data_structure.h b/trace_streamer/src/parser/ebpf_parser/ebpf_data_structure.h index 4372e9f0e..42acf434d 100644 --- a/trace_streamer/src/parser/ebpf_parser/ebpf_data_structure.h +++ b/trace_streamer/src/parser/ebpf_parser/ebpf_data_structure.h @@ -38,16 +38,6 @@ struct EbpfDataHeader { char cmdline[EBPF_COMMAND_MAX_SIZE] = {'\0'}; }; -enum EBPF_DATA_TYPE { - ITEM_EVENT_MAPS = 0, - ITEM_SYMBOL_INFO, - ITEM_EVENT_FS, - ITEM_EVENT_VM, - ITEM_EVENT_BIO, - ITEM_EVENT_STR, - ITEM_EVENT_KENEL_SYMBOL_INFO = 0x10001, -}; - struct EbpfTypeAndLength { uint32_t type = 0; uint32_t length = 0; diff --git a/trace_streamer/src/trace_data/BUILD.gn b/trace_streamer/src/trace_data/BUILD.gn index dda8dddaa..ad0ff7364 100644 --- a/trace_streamer/src/trace_data/BUILD.gn +++ b/trace_streamer/src/trace_data/BUILD.gn @@ -65,6 +65,7 @@ ohos_source_set("trace_data") { "${THIRD_PARTY}/sqlite/include", "${SRC}", "${SRC}/base", + "${SRC}/cfg", "${SRC}/include", "${SRC}/table", "${SRC}/table/base/include", @@ -96,8 +97,5 @@ ohos_source_set("trace_data") { "${OHOS_TRACE_STREAMER_PROTOS_DIR}/protos/smartperf_host:ts_all_sph_cpp", ] public_deps = [ "${SRC}/base:base" ] - public_configs = [ - "${SRC}/parser/ebpf_parser:ebpf_parser_cfg", - "${SRC}/base/sqlite_ext:sqlite_ext_cfg", - ] + public_configs = [ "${SRC}/base/sqlite_ext:sqlite_ext_cfg" ] } diff --git a/trace_streamer/src/trace_data/trace_data_cache.cpp b/trace_streamer/src/trace_data/trace_data_cache.cpp index ead7321c7..09d936f7f 100644 --- a/trace_streamer/src/trace_data/trace_data_cache.cpp +++ b/trace_streamer/src/trace_data/trace_data_cache.cpp @@ -77,7 +77,6 @@ #include "native_hook_table.h" #include "network_table.h" #include "paged_memory_sample_table.h" -#include "ebpf_data_structure.h" #include "perf_call_chain_table.h" #include "perf_files_table.h" #include "perf_report_table.h" @@ -535,14 +534,13 @@ int32_t TraceDataCache::ExportEbpfReadableText(const std::string &outputName, TS_CHECK_TRUE(ftruncate(ebpfFd, 0) != -1, 1, "Failed to ftruncate file: %s, err:%s", outputName.c_str(), strerror(errno)); TS_LOGI("ExportEbpfReadableText begin..."); - EbpfEventTypeMap ebpfEventTypeMap = { - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_EVENT_MAPS, "MapsEvent"}, - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_SYMBOL_INFO, "SymbolEvent"}, - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_EVENT_FS, "FsEvent"}, - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_EVENT_VM, "VmEvent"}, - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_EVENT_BIO, "BioEvent"}, - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_EVENT_STR, "StrEvent"}, - {EbpfStdtype::EBPF_DATA_TYPE::ITEM_EVENT_KENEL_SYMBOL_INFO, "KernelSymbolEvent"}}; + EbpfEventTypeMap ebpfEventTypeMap = {{EBPF_DATA_TYPE::ITEM_EVENT_MAPS, "MapsEvent"}, + {EBPF_DATA_TYPE::ITEM_SYMBOL_INFO, "SymbolEvent"}, + {EBPF_DATA_TYPE::ITEM_EVENT_FS, "FsEvent"}, + {EBPF_DATA_TYPE::ITEM_EVENT_VM, "VmEvent"}, + {EBPF_DATA_TYPE::ITEM_EVENT_BIO, "BioEvent"}, + {EBPF_DATA_TYPE::ITEM_EVENT_STR, "StrEvent"}, + {EBPF_DATA_TYPE::ITEM_EVENT_KENEL_SYMBOL_INFO, "KernelSymbolEvent"}}; std::string ebpfBufferLine; ebpfBufferLine.reserve(G_CHUNK_SIZE); ExportEbpfFileSystemReadableText(ebpfFd, ebpfBufferLine, ebpfEventTypeMap); diff --git a/trace_streamer/src/version.cpp b/trace_streamer/src/version.cpp index e9798e97f..9544e6498 100644 --- a/trace_streamer/src/version.cpp +++ b/trace_streamer/src/version.cpp @@ -17,7 +17,7 @@ namespace SysTuning { namespace TraceStreamer { size_t g_loadSize = 0; size_t g_fileSize = 0; -const std::string TRACE_STREAMER_VERSION = "4.2.7"; // version -const std::string TRACE_STREAMER_PUBLISH_VERSION = "2024/12/18"; // publish datetime +const std::string TRACE_STREAMER_VERSION = "4.2.9"; // version +const std::string TRACE_STREAMER_PUBLISH_VERSION = "2025/1/2"; // publish datetime } // namespace TraceStreamer } // namespace SysTuning -- Gitee From 6c2103f2e25d0366b96222ec0d01cabc1c752fa2 Mon Sep 17 00:00:00 2001 From: JustinTY Date: Thu, 2 Jan 2025 22:09:50 +0800 Subject: [PATCH 15/26] =?UTF-8?q?fix=201.xpower=20Tab=E9=A1=B5=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E6=94=BE=E5=9C=A8=E8=A1=A8=E5=A4=B4=202.xpower=20?= =?UTF-8?q?=E6=8A=93=E5=8F=96=E9=BB=98=E8=AE=A4=E9=80=89=E5=8F=96=E5=89=8D?= =?UTF-8?q?=E4=B8=A4=E9=A1=B9=203.xpower=20gpu=20freq=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E6=A1=86=204.=E5=B8=AE=E5=8A=A9=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: JustinTY --- ide/src/doc/quickstart_Frametimeline.html | 147 ++++++++- ide/src/doc/quickstart_xpower.html | 10 +- .../trace/component/chart/SpXpowerChart.ts | 135 ++++---- .../trace/component/setting/SpXPowerRecord.ts | 18 +- .../trace/sheet/TabPaneCurrentSelection.ts | 8 +- .../xpower/TabPaneXpowerAppDetailDisplay.ts | 33 +- .../xpower/TabPaneXpowerComponentAudio.ts | 18 +- .../xpower/TabPaneXpowerComponentCamera.ts | 18 +- .../sheet/xpower/TabPaneXpowerComponentCpu.ts | 20 +- .../xpower/TabPaneXpowerComponentDisplay.ts | 6 +- .../sheet/xpower/TabPaneXpowerComponentTop.ts | 44 +-- .../sheet/xpower/TabPaneXpowerCounter.ts | 6 +- .../sheet/xpower/TabPaneXpowerGpuFreq.ts | 95 ++---- .../xpower/TabPaneXpowerGpuFreqSelection.ts | 33 +- .../sheet/xpower/TabPaneXpowerStatistic.ts | 12 +- .../TabPaneXpowerStatisticCurrentData.ts | 19 +- .../sheet/xpower/TabPaneXpowerThreadEnergy.ts | 22 +- .../TabPaneXpowerThreadInfoSelection.ts | 38 +-- .../sheet/xpower/TabPaneXpowerThreadLoad.ts | 22 +- .../sheet/xpower/TabPaneXpowerWifiBytes.ts | 40 +-- .../sheet/xpower/TabPaneXpowerWifiPackets.ts | 6 +- .../trace/sheet/xpower/XpowerUtil.ts | 31 +- ide/src/trace/database/sql/Xpower.sql.ts | 23 +- .../ui-worker/ProcedureWorkerXpower.ts | 67 ++-- .../ProcedureWorkerXpowerAppDetail.ts | 13 +- .../ui-worker/ProcedureWorkerXpowerGpuFreq.ts | 308 ++++++++++++------ .../ProcedureWorkerXpowerGpuFreqCount.ts | 82 +++-- .../ProcedureWorkerXpowerStatistic.ts | 17 +- .../ProcedureWorkerXpowerThreadCount.ts | 78 +++-- .../ProcedureWorkerXpowerThreadInfo.ts | 4 +- .../ui-worker/ProcedureWorkerXpowerWifi.ts | 26 +- 31 files changed, 740 insertions(+), 659 deletions(-) diff --git a/ide/src/doc/quickstart_Frametimeline.html b/ide/src/doc/quickstart_Frametimeline.html index a51ca21d7..c1e54878d 100644 --- a/ide/src/doc/quickstart_Frametimeline.html +++ b/ide/src/doc/quickstart_Frametimeline.html @@ -658,7 +658,7 @@ html body[for='html-export']:not([dpm]) { position: relative; width: 99%; - height: 99%;; + height: 99%; overflow: auto; } @@ -781,8 +781,8 @@ } - -
+ +

Frame timeline抓取和展示说明

抓取和展示卡顿丢帧检测的数据。

@@ -976,13 +976,138 @@ Following flows:展示真实帧包含的关联的帧,图中斜向上箭头

render_server真实帧的范围展示子线程数据:

GitHub Logo

+

颜色说明:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + 颜色 +
+
+
+
+
+
+ + 条件 +
+
+
+
+
+
+ + 主线程 +
+
+
+
+
+
+ + + 当RS线程期望帧的起始时间-应用线程期望帧的结束时间>=1000000ns时 + +
+
+ + +
+
+
+
+
+
+ + 子线程 +
+
+
+
+
+
+ + 主线程 +
+
+
+
+
+
+ + 期望帧的结束时间<实际帧的结束时间时 +
+
+ + +
+
+
+
+
+
+ + 子线程 +
+
+
+
+
+
+ + 主线程 + & + 子线程 +
+
+
+
+
+
+ + 期望帧的结束时间 + >= + 实际帧的结束时间时 +
+
+
+
+