diff --git a/ide/src/trace/SpApplication.ts b/ide/src/trace/SpApplication.ts index 57e1ac4feb7aaa469a7389407e60e96cca1b7f6b..ea2d4a6fd3a4106e6bf58d5403e2568fd2d5785b 100644 --- a/ide/src/trace/SpApplication.ts +++ b/ide/src/trace/SpApplication.ts @@ -1941,7 +1941,7 @@ export class SpApplication extends BaseElement { } if (this.litSearch!.index > 0) { let currentEntry = this.litSearch!.list[this.litSearch!.index]; - cancelCurrentTraceRowHighlight(this.spSystemTrace!, currentEntry) + cancelCurrentTraceRowHighlight(this.spSystemTrace!, currentEntry); } this.litSearch!.list = []; if (timer) { diff --git a/ide/src/trace/bean/BoxSelection.ts b/ide/src/trace/bean/BoxSelection.ts index 12858184062c8999a80bdcff59058da417d2ed28..df88bba19ed13aa2cd3db7312e7aa6802ea19c79 100644 --- a/ide/src/trace/bean/BoxSelection.ts +++ b/ide/src/trace/bean/BoxSelection.ts @@ -491,7 +491,7 @@ export class SelectionParam { it.childrenList.forEach((child) => { child.rangeSelect = true; child.checkType = '2'; - this.pushFileSystem(child,sp); + this.pushFileSystem(child, sp); }); } if (it.rowType === TraceRow.ROW_TYPE_FILE_SYSTEM) { @@ -672,7 +672,8 @@ export class SelectionParam { const [rangeStart, rangeEnd] = [TraceRow.range?.startNS, TraceRow.range?.endNS]; const startNS = TraceRow.rangeSelectObject?.startNS || rangeStart; const endNS = TraceRow.rangeSelectObject?.endNS || rangeEnd; - let minNodeId, maxNodeId; + let minNodeId; + let maxNodeId; if (!it.dataListCache || it.dataListCache.length === 0) { return; } @@ -735,7 +736,7 @@ export class SelectionParam { for (let data of copyFrameSelectData) { frameSelectDataIdArr.push(data.id); } - let jsCpuProfilerData = copyFrameSelectData.filter((item: unknown) => { + let jsCpuProfilerData = copyFrameSelectData.filter((item: JsCpuProfilerChartFrame) => { // @ts-ignore if (item.depth === 0) { // @ts-ignore @@ -1009,10 +1010,10 @@ export class SelectionParam { this.perfEventTypeId = TraceRow.ROW_TYPE_HIPERF_THREADTYPE[0] === -2 ? undefined : TraceRow.ROW_TYPE_HIPERF_THREADTYPE[0]; if (it.rowType === TraceRow.ROW_TYPE_THREAD) { sp.pushPidToSelection(this, it.rowParentId!); - if(it.dataListCache && it.dataListCache.length) { + if (it.dataListCache && it.dataListCache.length) { //@ts-ignore let hiTid = it.dataListCache[0]!.tid; - this.perfThread.push(parseInt(hiTid)) + this.perfThread.push(parseInt(hiTid)); } this.threadIds.push(parseInt(it.rowId!)); info('load thread traceRow id is : ', it.rowId); @@ -1127,12 +1128,12 @@ export class SelectionParam { } } - //匹配id - pushDmaFence(it: TraceRow, sp: SpSystemTrace) { - if (it.rowType === TraceRow.ROW_TYPE_DMA_FENCE) { - this.dmaFenceNameData.push(it.rowId!); - } + //匹配id + pushDmaFence(it: TraceRow, sp: SpSystemTrace): void { + if (it.rowType === TraceRow.ROW_TYPE_DMA_FENCE) { + this.dmaFenceNameData.push(it.rowId!); } + } // @ts-ignore pushGpuMemoryVmTracker(it: TraceRow, sp: SpSystemTrace): void { diff --git a/ide/src/trace/component/SpHelp.ts b/ide/src/trace/component/SpHelp.ts index 958a75fbbc334c9620687d4747ed81616f6c4ac1..e3ea7723fb664ed5ce91a7851008d4516853a655 100644 --- a/ide/src/trace/component/SpHelp.ts +++ b/ide/src/trace/component/SpHelp.ts @@ -44,7 +44,6 @@ export class SpHelp extends BaseElement { } initElements(): void { - let that = this; let parentElement = this.parentNode as HTMLElement; parentElement.style.overflow = 'hidden'; this.appContent = this.shadowRoot?.querySelector('#app-content') as HTMLElement; @@ -58,7 +57,7 @@ export class SpHelp extends BaseElement { color.style.display = 'none'; header.style.display = 'none'; version.style.display = 'none'; - this.setupMainMenu(mainMenu, that); + this.setupMainMenu(mainMenu, this); mainMenu.style.width = '330px'; let body = mainMenu.shadowRoot?.querySelector('.menu-body') as HTMLDivElement; let groups = body.querySelectorAll('lit-main-menu-group'); @@ -81,7 +80,7 @@ export class SpHelp extends BaseElement { }); let urlParams = new URL(window.location.href).searchParams; if (urlParams && urlParams.get('action') && urlParams.get('action')!.length > 4) { - this.itemHelpClick(urlParams, that); + this.itemHelpClick(urlParams, this); } } @@ -282,7 +281,7 @@ export class SpHelp extends BaseElement { let backData = ''; if (hTag.id) { backData = `
  • ${hTag.text}${hTag.text} -
  • ` + `; } return backData; }).join('') diff --git a/ide/src/trace/component/SpRecordTrace.ts b/ide/src/trace/component/SpRecordTrace.ts index 3b348a1b86b68fcf3c5ab71005691dfae1ddf6ff..0565d1c1c2092c640c59ef3cc70634950768e27c 100644 --- a/ide/src/trace/component/SpRecordTrace.ts +++ b/ide/src/trace/component/SpRecordTrace.ts @@ -66,10 +66,10 @@ import { SpRecordTraceHtml } from './SpRecordTrace.html'; import { SpFFRTConfig } from './setting/SpFFRTConfig'; const DEVICE_NOT_CONNECT = -'
    1.请确认抓取设备上是否已勾选并确认总是允许smartPerf-Host调试的弹窗
    ' + -'
    2.请关闭DevEco Studio,DevEco Testing等会占用hdc端口的应用
    ' + -'
    3.请使用系统管理员权限打开cmd窗口,并执行hdc kill,确保PC端任务管理器中没有hdc进程
    ' + -'
    4.若没有效果,请重新插拔一下手机。紧急情况可拷贝trace命令,在cmd窗口离线抓取
    '; + '
    1.请确认抓取设备上是否已勾选并确认总是允许smartPerf-Host调试的弹窗
    ' + + '
    2.请关闭DevEco Studio,DevEco Testing等会占用hdc端口的应用
    ' + + '
    3.请使用系统管理员权限打开cmd窗口,并执行hdc kill,确保PC端任务管理器中没有hdc进程
    ' + + '
    4.若没有效果,请重新插拔一下手机。紧急情况可拷贝trace命令,在cmd窗口离线抓取
    '; @element('sp-record-trace') export class SpRecordTrace extends BaseElement { @@ -115,10 +115,10 @@ export class SpRecordTrace extends BaseElement { private hintEl: HTMLSpanElement | undefined; private selectedTemplate: Map = new Map(); private hintTimeOut: number = -1; - private MenuItemArkts:MenuItem | undefined | null; - private MenuItemArktsHtml:LitMainMenuItem | undefined | null; - private MenuItemEbpf:MenuItem | undefined | null; - private MenuItemEbpfHtml:LitMainMenuItem | undefined | null; + private MenuItemArkts: MenuItem | undefined | null; + private MenuItemArktsHtml: LitMainMenuItem | undefined | null; + private MenuItemEbpf: MenuItem | undefined | null; + private MenuItemEbpfHtml: LitMainMenuItem | undefined | null; set record_template(re: boolean) { if (re) { @@ -212,7 +212,7 @@ export class SpRecordTrace extends BaseElement { } } try { - let kernelInfo = await HdcDeviceManager.shellResultAsString(CmdConstant.CMD_UNAME,false); + let kernelInfo = await HdcDeviceManager.shellResultAsString(CmdConstant.CMD_UNAME, false); if (kernelInfo.includes('HongMeng')) { if (this.MenuItemEbpf && this.MenuItemEbpfHtml) {//如果为鸿蒙内核,ebpf开关置灰不能点击 this.MenuItemEbpfHtml.style.color = 'gray'; @@ -689,13 +689,13 @@ export class SpRecordTrace extends BaseElement { this.cancelButtonShow(false); if (this.vs) { let cmd = Cmd.formatString(CmdConstant.CMS_HDC_STOP, [SpRecordTrace.serialNumber]); - Cmd.execHdcCmd(cmd, (): void => {}); + Cmd.execHdcCmd(cmd, (): void => { }); } else { let selectedOption = this.deviceSelect!.options[this.deviceSelect!.selectedIndex] as HTMLOptionElement; HdcDeviceManager.connect(selectedOption.value).then((result) => { if (result) { try { - HdcDeviceManager.shellResultAsString(CmdConstant.CMS_STOP, true).then((): void => {}); + HdcDeviceManager.shellResultAsString(CmdConstant.CMS_STOP, true).then((): void => { }); } catch (exception) { this.recordButtonDisable(false); log(exception); @@ -736,7 +736,7 @@ export class SpRecordTrace extends BaseElement { this.deviceSelect!.style.pointerEvents = 'auto'; this.deviceVersion!.style.pointerEvents = 'auto'; SpRecordTrace.cancelRecord = true; - HdcDeviceManager.stopHiprofiler(CmdConstant.CMS_CANCEL).then((): void => {}); + HdcDeviceManager.stopHiprofiler(CmdConstant.CMS_CANCEL).then((): void => { }); } catch (exception) { log(exception); } @@ -783,7 +783,7 @@ export class SpRecordTrace extends BaseElement { if (item.title === 'Ark Ts') { this.MenuItemArkts = item; this.MenuItemArktsHtml = th; - }else if (item.title === 'eBPF Config') { + } else if (item.title === 'eBPF Config') { this.MenuItemEbpf = item; this.MenuItemEbpfHtml = th; } @@ -854,17 +854,16 @@ export class SpRecordTrace extends BaseElement { clickHandlerFun?: Function, fileChoose: boolean = false ): MenuItem { - let that = this; return { title: title, icon: icon, fileChoose: fileChoose, clickHandler: (): void => { - that.appContent!.innerHTML = ''; - that.appContent!.append(configPage); - that.freshMenuItemsStatus(title); + this.appContent!.innerHTML = ''; + this.appContent!.append(configPage); + this.freshMenuItemsStatus(title); if (clickHandlerFun) { - clickHandlerFun(that); + clickHandlerFun(this); } }, }; @@ -903,7 +902,7 @@ export class SpRecordTrace extends BaseElement { let option = this.deviceSelect!.children[index] as HTMLOptionElement; if (option.value === disConnectDevice.serialNumber) { let optValue = option.value; - HdcDeviceManager.disConnect(optValue).then(() => {}); + HdcDeviceManager.disConnect(optValue).then(() => { }); this.deviceSelect!.removeChild(option); if (SpRecordTrace.serialNumber === optValue) { if (this.nowChildItem === this.spWebShell) { @@ -1012,7 +1011,7 @@ export class SpRecordTrace extends BaseElement { HdcDeviceManager.shellResultAsString( CmdConstant.CMD_SET_FOLD_AUTHORITY + this.recordSetting!.longOutPath, false - ).then( ()=> { + ).then(() => { this.recordLongTraceCmd(traceCommandStr); }); }); @@ -1085,10 +1084,9 @@ export class SpRecordTrace extends BaseElement { } private recordTraceCmd(traceCommandStr: string): void { - const self = this; let executeCmdCallBack = (cmdStateResult: string): void => { if (cmdStateResult.includes('tracing ')) { - self.litSearch!.setPercent('Start to record...', -1); + this.litSearch!.setPercent('Start to record...', -1); } }; this.litSearch!.setPercent('Waiting to record...', -1); diff --git a/ide/src/trace/component/SpSystemTrace.event.ts b/ide/src/trace/component/SpSystemTrace.event.ts index a924d39192ead33a4a613fb5709941ffd1288ceb..621e6d47362fccff6d5f973df9e7c19829e14828 100644 --- a/ide/src/trace/component/SpSystemTrace.event.ts +++ b/ide/src/trace/component/SpSystemTrace.event.ts @@ -539,7 +539,8 @@ function spSystemTraceDocumentOnMouseMoveMouseUp( const transformYMatch = sp.canvasPanel?.style.transform.match(/\((\d+)[^\)]+\)/); const transformY = transformYMatch![1]; let favoriteHeight = sp.favoriteChartListEL!.getBoundingClientRect().height; - let memTr = rows.filter((item: any) => item.rowType ===TraceRow.ROW_TYPE_MEM) + // @ts-ignore + let memTr = rows.filter((item: unknown) => item.rowType === TraceRow.ROW_TYPE_MEM); rows .filter((it) => it.focusContain(ev, sp.inFavoriteArea!, Number(transformY), favoriteHeight) && it.collect === sp.inFavoriteArea) .filter((it) => { @@ -558,9 +559,10 @@ function spSystemTraceDocumentOnMouseMoveMouseUp( } if (tr.rowType !== TraceRow.ROW_TYPE_MEM) { ProcessMemStruct.hoverProcessMemStruct = undefined; - memTr.forEach((i:any) => { + memTr.forEach((i: unknown) => { + // @ts-ignore i.focusHandler(ev); - }) + }); } if (sp.currentRowType !== tr.rowType) { sp.currentRowType = tr.rowType || ''; diff --git a/ide/src/trace/component/SpSystemTrace.init.ts b/ide/src/trace/component/SpSystemTrace.init.ts index 42b95e6b6f0e5da3bc9bc601614d1f8e1d92b053..bdb56eaddeb0921c3be8fbe8961c945a1177e8d1 100644 --- a/ide/src/trace/component/SpSystemTrace.init.ts +++ b/ide/src/trace/component/SpSystemTrace.init.ts @@ -8,7 +8,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. + * WITHOUT WARRANTIES OR CONDITIONS OF unknown KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ @@ -36,14 +36,14 @@ import { SpChartList } from './trace/SpChartList'; type HTMLElementAlias = HTMLElement | null | undefined; import { Utils } from './trace/base/Utils'; -function rightButtonOnClick(sp: SpSystemTrace, rightStar: HTMLElementAlias): any { +function rightButtonOnClick(sp: SpSystemTrace, rightStar: HTMLElementAlias): unknown { Object.assign(sp, { ext(): string { return 'Handle the right button click event'; }, }); - return function (event: any): void { + return function (event: unknown): void { if (SpSystemTrace.btnTimer) { return; } @@ -80,7 +80,7 @@ function rightButtonOnClick(sp: SpSystemTrace, rightStar: HTMLElementAlias): any }; } function rightStarOnClick(sp: SpSystemTrace) { - return function (ev: any): void { + return function (ev: unknown): void { let wakeupLists = []; wakeupLists.push(CpuStruct.selectCpuStruct?.cpu); for (let wakeupBean of SpSystemTrace.wakeupList) { @@ -88,57 +88,80 @@ function rightStarOnClick(sp: SpSystemTrace) { } let wakeupCpuLists = Array.from(new Set(wakeupLists)).sort(); for (let wakeupCpu of wakeupCpuLists) { - let cpuFavoriteRow: any = sp.shadowRoot?.querySelector>( + // @ts-ignore + let cpuFavoriteRow: unknown = sp.shadowRoot?.querySelector>( `trace-row[row-type='cpu-data'][row-id='${Utils.getDistributedRowId(wakeupCpu)}']` ); if (cpuFavoriteRow === null || cpuFavoriteRow === undefined) { continue; } + // @ts-ignore cpuFavoriteRow!.setAttribute('collect-type', ''); let replaceRow = document.createElement('div'); + // @ts-ignore replaceRow.setAttribute('row-id', `${cpuFavoriteRow.rowId}-${cpuFavoriteRow.rowType}`); replaceRow.setAttribute('type', 'replaceRow'); + // @ts-ignore replaceRow.setAttribute('row-parent-id', cpuFavoriteRow.rowParentId); replaceRow.style.display = 'none'; + // @ts-ignore cpuFavoriteRow.rowHidden = !cpuFavoriteRow.hasAttribute('scene'); + // @ts-ignore if (sp.rowsEL!.contains(cpuFavoriteRow)) { + // @ts-ignore sp.rowsEL!.replaceChild(replaceRow, cpuFavoriteRow); } + // @ts-ignore cpuFavoriteRow.tampName = cpuFavoriteRow.name; + // @ts-ignore sp.favoriteChartListEL!.insertRow(cpuFavoriteRow, cpuFavoriteRow.traceId || sp.currentCollectGroup, true); + // @ts-ignore sp.collectRows.push(cpuFavoriteRow); sp.timerShaftEL?.displayCollect(sp.collectRows.length !== 0); sp.currentClickRow = null; + // @ts-ignore cpuFavoriteRow.setAttribute('draggable', 'true'); + // @ts-ignore cpuFavoriteRow.addEventListener('dragstart', cpuFavoriteRowDragStart(sp, cpuFavoriteRow)); + // @ts-ignore cpuFavoriteRow.addEventListener('dragover', cpuFavoriteRowDragOver(sp)); + // @ts-ignore cpuFavoriteRow.addEventListener('drop', cpuFavoriteRowDropHandler(sp, cpuFavoriteRow)); + // @ts-ignore cpuFavoriteRow.addEventListener('dragend', cpuFavoriteRowDragendHandler(sp)); } sp.refreshFavoriteCanvas(); sp.refreshCanvas(true); }; } -function cpuFavoriteRowDragStart(sp: SpSystemTrace, cpuFavoriteRow: any) { +function cpuFavoriteRowDragStart(sp: SpSystemTrace, cpuFavoriteRow: unknown) { return function (): void { + // @ts-ignore sp.currentClickRow = cpuFavoriteRow; }; } function cpuFavoriteRowDragOver(sp: SpSystemTrace) { - return function (ev: any): void { + return function (ev: unknown): void { + // @ts-ignore ev.preventDefault(); + // @ts-ignore ev.dataTransfer.dropEffect = 'move'; }; } -function cpuFavoriteRowDropHandler(sp: SpSystemTrace, cpuFavoriteRow: any) { - return function (ev: any): void { +function cpuFavoriteRowDropHandler(sp: SpSystemTrace, cpuFavoriteRow: unknown) { + return function (ev: unknown): void { if (sp.favoriteChartListEL && sp.currentClickRow && sp.currentClickRow !== cpuFavoriteRow) { + // @ts-ignore let rect = cpuFavoriteRow.getBoundingClientRect(); + // @ts-ignore if (ev.clientY >= rect.top && ev.clientY < rect.top + rect.height / 2) { //向上移动 + // @ts-ignore sp.favoriteChartListEL.insertRowBefore(sp.currentClickRow, cpuFavoriteRow); + // @ts-ignore } else if (ev.clientY <= rect.bottom && ev.clientY > rect.top + rect.height / 2) { //向下移动 + // @ts-ignore sp.favoriteChartListEL.insertRowBefore(sp.currentClickRow, cpuFavoriteRow.nextSibling); } sp.refreshFavoriteCanvas(); @@ -164,26 +187,35 @@ function cpuFavoriteRowDragendHandler(sp: SpSystemTrace): () => void { sp.currentClickRow = null; }; } -function triangleFlagHandler(sp: SpSystemTrace): (event: any) => void { - return function (event: any): void { +function triangleFlagHandler(sp: SpSystemTrace): (event: unknown) => void { + return function (event: unknown): void { + //@ts-ignore let temporaryTime = sp.timerShaftEL?.drawTriangle(event.detail.time, event.detail.type); + //@ts-ignore if (event.detail.timeCallback && temporaryTime) { + //@ts-ignore event.detail.timeCallback(temporaryTime); } }; } -function numberCalibrationHandler(sp: SpSystemTrace): (event: any) => void { - return function (event: any): void { +function numberCalibrationHandler(sp: SpSystemTrace): (event: unknown) => void { + return function (event: unknown): void { + // @ts-ignore sp.timerShaftEL!.sportRuler!.times = event.detail.time; + // @ts-ignore sp.timerShaftEL!.sportRuler!.counts = event.detail.counts; + // @ts-ignore sp.timerShaftEL!.sportRuler!.durations = event.detail.durations; sp.timerShaftEL!.sportRuler?.draw(); }; } -function flagChangeHandler(sp: SpSystemTrace): (event: any) => void { - return function (event: any): void { +function flagChangeHandler(sp: SpSystemTrace): (event: unknown) => void { + return function (event: unknown): void { + // @ts-ignore sp.timerShaftEL?.modifyFlagList(event.detail); + // @ts-ignore if (event.detail.hidden) { + //@ts-ignore sp.selectFlag = undefined; if (sp._flagList.length <= 0) { let showTab = sp.getShowTab(); @@ -198,9 +230,11 @@ function flagChangeHandler(sp: SpSystemTrace): (event: any) => void { } }; } -function slicesChangeHandler(sp: SpSystemTrace): (event: any) => void { - return function (event: any): void { +function slicesChangeHandler(sp: SpSystemTrace): (event: unknown) => void { + return function (event: unknown): void { + // @ts-ignore sp.timerShaftEL?.modifySlicesList(event.detail); + // @ts-ignore if (event.detail.hidden) { sp.slicestime = null; if (sp._slicesList.length <= 0) { @@ -216,8 +250,9 @@ function slicesChangeHandler(sp: SpSystemTrace): (event: any) => void { } }; } -function collectHandler(sp: SpSystemTrace): (event: any) => void { - return function (event: any): void { +function collectHandler(sp: SpSystemTrace): (event: unknown) => void { + return function (event: unknown): void { + // @ts-ignore let currentRow = event.detail.row; if (currentRow.collect) { collectHandlerYes(sp, currentRow, event); @@ -250,17 +285,22 @@ function collectHandler(sp: SpSystemTrace): (event: any) => void { currentRow.addEventListener('dragstart', () => { sp.currentClickRow = currentRow; }); - currentRow.addEventListener('dragover', (ev: any) => { + currentRow.addEventListener('dragover', (ev: unknown) => { + // @ts-ignore ev.preventDefault(); + // @ts-ignore ev.dataTransfer.dropEffect = 'move'; }); currentRow.addEventListener('drop', collectHandlerDrop(sp, currentRow)); currentRow.addEventListener('dragend', collectHandlerDragEnd(sp)); }; } -function collectHandlerNo(sp: SpSystemTrace, currentRow: any, event: any): void { +function collectHandlerNo(sp: SpSystemTrace, currentRow: unknown, event: unknown): void { + // @ts-ignore sp.favoriteChartListEL?.deleteRow(currentRow, event.detail.type !== 'auto-collect'); + // @ts-ignore if (event.detail.type !== 'auto-collect') { + // @ts-ignore let rowIndex = sp.collectRows.indexOf(currentRow); if (rowIndex !== -1) { sp.collectRows.splice(rowIndex, 1); @@ -268,7 +308,9 @@ function collectHandlerNo(sp: SpSystemTrace, currentRow: any, event: any): void } let row = currentRow; let allowExpansionRow = []; + // @ts-ignore while (row.hasParentRowEl) { + // @ts-ignore let parent = row.parentRowEl; allowExpansionRow.push(parent); row = parent; @@ -315,63 +357,88 @@ function collectHandlerNo(sp: SpSystemTrace, currentRow: any, event: any): void } } allowExpansionRow.length = 0; + // @ts-ignore let traceId = currentRow.traceId ? `${currentRow.traceId}-` : ''; let replaceRow = sp.rowsEL!.querySelector( + // @ts-ignore `div[row-id='${traceId}${currentRow.rowId}-${currentRow.rowType}']` ); // 取消收藏时,删除父亲ID + // @ts-ignore currentRow.name = currentRow.tampName; if (replaceRow !== null) { + // @ts-ignore sp.rowsEL!.replaceChild(currentRow, replaceRow); + // @ts-ignore currentRow.style.boxShadow = '0 10px 10px #00000000'; } } -function collectHandlerYes(sp: SpSystemTrace, currentRow: any, event: any): void { +function collectHandlerYes(sp: SpSystemTrace, currentRow: unknown, event: unknown): void { if (!sp.collectRows.find((find) => find === currentRow)) { + // @ts-ignore sp.collectRows.push(currentRow); } let replaceRow = document.createElement('div'); + // @ts-ignore let traceId = currentRow.traceId ? `${currentRow.traceId}-` : ''; + // @ts-ignore replaceRow.setAttribute('row-id', `${traceId}${currentRow.rowId}-${currentRow.rowType}`); replaceRow.setAttribute('type', 'replaceRow'); + // @ts-ignore replaceRow.setAttribute('row-parent-id', currentRow.rowParentId); replaceRow.style.display = 'none'; + // @ts-ignore if (!currentRow.hasAttribute('scene')) { + // @ts-ignore currentRow.setAttribute('row-hidden', ''); } else { + // @ts-ignore currentRow.removeAttribute('row-hidden'); } // 添加收藏时,在线程名前面追加父亲ID + // @ts-ignore let rowParentId = currentRow.rowParentId; + // @ts-ignore currentRow.tampName = currentRow.name; if (rowParentId) { - let parentRows = sp.shadowRoot?.querySelectorAll>(`trace-row[row-id='${rowParentId}']`); + // @ts-ignore + let parentRows = sp.shadowRoot?.querySelectorAll>(`trace-row[row-id='${rowParentId}']`); parentRows?.forEach((parentRow) => { if ( parentRow?.name && + // @ts-ignore parentRow?.name !== currentRow.name && !parentRow.rowType!.startsWith('cpu') && !parentRow.rowType!.startsWith('thread') && !parentRow.rowType!.startsWith('func') && + // @ts-ignore !currentRow.name.includes(parentRow.name) ) { + // @ts-ignore currentRow.name += `(${parentRow.name})`; } }); } + // @ts-ignore if (!currentRow.hasParentRowEl) { + // @ts-ignore sp.rowsEL!.replaceChild(replaceRow, currentRow); } + // @ts-ignore let group = currentRow.traceId || sp.currentCollectGroup; + // @ts-ignore sp.favoriteChartListEL?.insertRow(currentRow, group, event.detail.type !== 'auto-collect'); } -function collectHandlerDrop(sp: SpSystemTrace, currentRow: HTMLDivElement | undefined | null): (ev: any) => void { - return function (ev: any) { +function collectHandlerDrop(sp: SpSystemTrace, currentRow: HTMLDivElement | undefined | null): (ev: unknown) => void { + return function (ev: unknown) { if (sp.favoriteChartListEL !== null && sp.currentClickRow !== null && sp.currentClickRow !== currentRow) { + // @ts-ignore let rect = currentRow!.getBoundingClientRect(); + // @ts-ignore if (ev.clientY >= rect.top && ev.clientY < rect.top + rect.height / 2) { //向上移动 sp.favoriteChartListEL!.insertRowBefore(sp.currentClickRow!, currentRow!); + // @ts-ignore } else if (ev.clientY <= rect.bottom && ev.clientY > rect.top + rect.height / 2) { //向下移动 sp.favoriteChartListEL!.insertRowBefore(sp.currentClickRow!, currentRow!.nextSibling!); @@ -380,8 +447,8 @@ function collectHandlerDrop(sp: SpSystemTrace, currentRow: HTMLDivElement | unde } }; } -function collectHandlerDragEnd(sp: SpSystemTrace): (ev: any) => void { - return function (ev: any): void { +function collectHandlerDragEnd(sp: SpSystemTrace): (ev: unknown) => void { + return function (ev: unknown): void { sp.linkNodes.forEach((itln) => { if (itln[0].rowEL.collect) { if (sp.timerShaftEL?._checkExpand) { @@ -418,7 +485,8 @@ function selectHandler(sp: SpSystemTrace): void { }); if (rows.length === 0) { const allRows = [ - ...sp.shadowRoot!.querySelectorAll>('trace-row'), + // @ts-ignore + ...sp.shadowRoot!.querySelectorAll>('trace-row'), ...sp.favoriteChartListEL!.getAllCollectRows(), ]; for (const row of allRows) { @@ -450,7 +518,8 @@ function selectHandler(sp: SpSystemTrace): void { selectHandlerRows(sp, checkRows); }; } -function selectHandlerRefreshCheckBox(sp: SpSystemTrace, rows: Array>, refreshCheckBox: boolean): void { +// @ts-ignore +function selectHandlerRefreshCheckBox(sp: SpSystemTrace, rows: Array>, refreshCheckBox: boolean): void { if (refreshCheckBox) { if (rows.length > 0) { sp.queryAllTraceRow().forEach((row) => (row.checkType = '0')); @@ -461,7 +530,8 @@ function selectHandlerRefreshCheckBox(sp: SpSystemTrace, rows: Array>): void { +// @ts-ignore +function selectHandlerRows(sp: SpSystemTrace, rows: Array>): void { let selection = new SelectionParam(); selection.traceId = Utils.currentSelectTrace; selection.cpuStateRowsId = sp.stateRowsId; @@ -516,7 +586,8 @@ function resizeObserverHandler(sp: SpSystemTrace): void { TraceRow.FRAME_WIDTH = sp.clientWidth - 249 - sp.getScrollWidth(); requestAnimationFrame(() => { sp.timerShaftEL?.updateWidth(sp.clientWidth - 1 - sp.getScrollWidth()); - sp.shadowRoot!.querySelectorAll>('trace-row').forEach((it) => { + // @ts-ignore + sp.shadowRoot!.querySelectorAll>('trace-row').forEach((it) => { it.updateWidth(sp.clientWidth); }); }); @@ -560,7 +631,8 @@ function intersectionObserverHandler(sp: SpSystemTrace): void { sp.intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((it) => { - let tr = it.target as TraceRow; + // @ts-ignore + let tr = it.target as TraceRow; // 目标元素的可见比例 tr.intersectionRatio = it.intersectionRatio; // 判断目标元素是否可见 isIntersecting为true是可见 @@ -617,7 +689,8 @@ function smartEventSubscribe(sp: SpSystemTrace): void { window.subscribe(window.SmartEvent.UI.CollapseAllLane, (collapse: boolean) => { if (!collapse) { // 一键折叠之前,记录当前打开的泳道图 - sp.expandRowList = Array.from(sp.rowsEL!.querySelectorAll>('trace-row[folder][expansion]')) || []; + // @ts-ignore + sp.expandRowList = Array.from(sp.rowsEL!.querySelectorAll>('trace-row[folder][expansion]')) || []; } sp.collapseAll = true; sp.setAttribute('disable', ''); @@ -661,10 +734,11 @@ export function documentInitEvent(sp: SpSystemTrace): void { document.addEventListener('collect', collectHandler(sp)); } -function remarksFocuseChangeHandler(sp: SpSystemTrace): (event: any) => void{ - return function (event: any): void { +function remarksFocuseChangeHandler(sp: SpSystemTrace): (event: unknown) => void { + return function (event: unknown): void { + // @ts-ignore sp.focusTarget = event.detail; - } + }; } export function spSystemTraceInitElement(sp: SpSystemTrace): void { @@ -691,6 +765,7 @@ export function spSystemTraceInitElement(sp: SpSystemTrace): void { sp.tabCpuFreq = sp.traceSheetEL.shadowRoot.querySelector('tabpane-frequency-sample'); sp.tabCpuState = sp.traceSheetEL.shadowRoot.querySelector('tabpane-counter-sample'); sp.rangeSelect = new RangeSelect(sp); + // @ts-ignore rightButton?.addEventListener('click', rightButtonOnClick(sp, rightStar)); rightStar?.addEventListener('click', rightStarOnClick(sp)); documentInitEvent(sp); @@ -706,43 +781,60 @@ export function spSystemTraceInitElement(sp: SpSystemTrace): void { smartEventSubscribe(sp); } -function moveRangeToCenterAndHighlight(sp: SpSystemTrace, findEntry: any, currentEntry: any): void { +function moveRangeToCenterAndHighlight(sp: SpSystemTrace, findEntry: unknown, currentEntry: unknown): void { if (findEntry) { //findEntry不在range范围内,会把它移动到泳道最左侧 + // @ts-ignore if (findEntry.startTime > TraceRow.range!.endNS || findEntry.startTime + findEntry.dur < TraceRow.range!.startNS) { + // @ts-ignore sp.moveRangeToLeft(findEntry.startTime!, findEntry.dur!); } cancelCurrentTraceRowHighlight(sp, currentEntry); + // @ts-ignore if (findEntry.type === 'cpu') { findEntryTypeCpu(sp, findEntry); + // @ts-ignore } else if (findEntry.type === 'func') { findEntryTypeFunc(sp, findEntry); + // @ts-ignore } else if (findEntry.type === 'thread||process') { findEntryTypeThreadProcess(sp, findEntry); + // @ts-ignore } else if (findEntry.type === 'sdk') { findEntryTypeSdk(sp, findEntry); } } } -export function cancelCurrentTraceRowHighlight(sp: SpSystemTrace, currentEntry: any) { +export function cancelCurrentTraceRowHighlight(sp: SpSystemTrace, currentEntry: unknown): void { + // @ts-ignore if (currentEntry?.type === 'cpu') { + // @ts-ignore sp.queryAllTraceRow(`trace-row[row-type='cpu-data'][row-id='${currentEntry.cpu}']`, + // @ts-ignore (row) => row.rowType === 'cpu-data' && row.rowId === `${currentEntry.cpu}`)[0].highlight = false; + // @ts-ignore } else if (currentEntry?.type === 'func') { + // @ts-ignore let funId = (currentEntry.rowId === null || currentEntry.rowId === undefined) ? `${currentEntry.funName}-${currentEntry.pid}` : currentEntry.rowId; + // @ts-ignore let funcRowID = (currentEntry.cookie === null || currentEntry.cookie === undefined) ? `${Utils.getDistributedRowId(currentEntry.tid)}` : funId; + // @ts-ignore let parentRow = sp.queryAllTraceRow(`trace-row[row-id='${Utils.getDistributedRowId(currentEntry.pid)}'][folder]`, - (row) => row.rowId === `trace-row[row-id='${Utils.getDistributedRowId(currentEntry.pid)}'][folder]`)[0] + // @ts-ignore + (row) => row.rowId === `trace-row[row-id='${Utils.getDistributedRowId(currentEntry.pid)}'][folder]`)[0]; if (!parentRow) { return; } let filterRow = parentRow.childrenList.filter((child) => child.rowId === funcRowID && child.rowType === 'func')[0]; filterRow.highlight = false; + // @ts-ignore } else if (currentEntry?.type === 'sdk') { - let parentRow = sp.shadowRoot!.querySelector>("trace-row[row-type='sdk'][folder]"); + // @ts-ignore + let parentRow = sp.shadowRoot!.querySelector>("trace-row[row-type='sdk'][folder]"); if (parentRow) { let sdkRow = parentRow.childrenList.filter( + // @ts-ignore (child) => child.rowId === currentEntry.rowId && child.rowType === currentEntry.rowType )[0]; sdkRow!.highlight = false; @@ -754,16 +846,16 @@ export function spSystemTraceShowStruct( sp: SpSystemTrace, previous: boolean, currentIndex: number, - structs: Array, + structs: Array, retargetIndex?: number ): number { if (structs.length === 0) { return 0; } let findIndex = spSystemTraceShowStructFindIndex(previous, currentIndex, structs, retargetIndex); - let findEntry: any; + let findEntry: unknown; findEntry = structs[findIndex]; - let currentEntry: any = undefined; + let currentEntry: unknown = undefined; if (currentIndex >= 0) { currentEntry = structs[currentIndex]; } @@ -774,7 +866,7 @@ export function spSystemTraceShowStruct( function spSystemTraceShowStructFindIndex( previous: boolean, currentIndex: number, - structs: Array, + structs: Array, retargetIndex: number | undefined ): number { const rangeStart = TraceRow.range!.startNS; @@ -785,8 +877,10 @@ function spSystemTraceShowStructFindIndex( } else if (previous) { for (let i = structs.length - 1; i >= 0; i--) { let it = structs[i]; - if ((i < currentIndex && it.startTime! >= rangeStart && it.startTime! + it.dur! <= rangeEnd) - || (it.startTime! + it.dur! < rangeStart)) { + // @ts-ignore + if ((i < currentIndex && it.startTime! >= rangeStart && it.startTime! + it.dur! <= rangeEnd) || + // @ts-ignore + (it.startTime! + it.dur! < rangeStart)) { findIndex = i; break; } @@ -803,7 +897,9 @@ function spSystemTraceShowStructFindIndex( if (SpSystemTrace.currentStartTime > rangeStart) { SpSystemTrace.currentStartTime = rangeStart;//currentIndex不在可视区时,currentIndex = -1 if ( + // @ts-ignore structs[currentIndex].startTime < rangeStart || + // @ts-ignore structs[currentIndex].startTime! + structs[currentIndex].dur! > rangeEnd ) { currentIndex = -1; @@ -812,8 +908,10 @@ function spSystemTraceShowStructFindIndex( } //在数组中查找比currentIndex大且在range范围内的第一个下标,如果range范围内没有返回-1 findIndex = structs.findIndex((it, idx) => { - return ((idx > currentIndex && it.startTime! >= rangeStart && it.startTime! + it.dur! <= rangeEnd) - || (it.startTime! > rangeEnd)); + // @ts-ignore + return ((idx > currentIndex && it.startTime! >= rangeStart && it.startTime! + it.dur! <= rangeEnd) || + // @ts-ignore + (it.startTime! > rangeEnd)); }); if (findIndex === -1) { findIndex = 0; @@ -821,13 +919,16 @@ function spSystemTraceShowStructFindIndex( } return findIndex; } -function findEntryTypeCpu(sp: SpSystemTrace, findEntry: any): void { +function findEntryTypeCpu(sp: SpSystemTrace, findEntry: unknown): void { + // @ts-ignore CpuStruct.selectCpuStruct = findEntry; CpuStruct.hoverCpuStruct = CpuStruct.selectCpuStruct; sp.queryAllTraceRow(`trace-row[row-type='cpu-data']`, (row): boolean => row.rowType === 'cpu-data').forEach( (item): void => { + // @ts-ignore if (item.rowId === `${Utils.getDistributedRowId(findEntry.cpu)}`) { sp.rechargeCpuData( + // @ts-ignore findEntry, // @ts-ignore item.dataListCache.find((it) => it.startTime > findEntry.startTime) ); @@ -835,43 +936,58 @@ function findEntryTypeCpu(sp: SpSystemTrace, findEntry: any): void { _findEntry.type = 'thread'; item.fixedList = [_findEntry]; } + // @ts-ignore item.highlight = item.rowId === `${Utils.getDistributedRowId(findEntry.cpu)}`; item.draw(true); } ); + // @ts-ignore sp.scrollToProcess(`${findEntry.cpu}`, '', 'cpu-data', true); sp.onClickHandler(TraceRow.ROW_TYPE_CPU); } -function findEntryTypeFunc(sp: SpSystemTrace, findEntry: any): void { +function findEntryTypeFunc(sp: SpSystemTrace, findEntry: unknown): void { sp.observerScrollHeightEnable = true; sp.scrollToActFunc( { + // @ts-ignore startTs: findEntry.startTime, + // @ts-ignore dur: findEntry.dur, + // @ts-ignore tid: findEntry.tid, + // @ts-ignore pid: findEntry.pid, + // @ts-ignore depth: findEntry.depth, + // @ts-ignore argsetid: findEntry.argsetid, + // @ts-ignore funName: findEntry.funName, + // @ts-ignore cookie: findEntry.cookie, + // @ts-ignore row_id: findEntry.rowId ? findEntry.rowId : null,//因异步trace分类出的rowId类型有三种,故新增row_id字段,该字段为异步方法的对应的rowId,支持搜索查询定位到该方法属于那个row,只有缓存的异步trace数据中含该字段 }, true ); } -function findEntryTypeThreadProcess(sp: SpSystemTrace, findEntry: any): void { +function findEntryTypeThreadProcess(sp: SpSystemTrace, findEntry: unknown): void { let threadProcessRow = sp.rowsEL?.querySelectorAll>('trace-row')[0]; if (threadProcessRow) { let filterRow = threadProcessRow.childrenList.filter( + // @ts-ignore (row) => row.rowId === Utils.getDistributedRowId(findEntry.rowId) && row.rowId === findEntry.rowType )[0]; filterRow!.highlight = true; + // @ts-ignore sp.closeAllExpandRows(Utils.getDistributedRowId(findEntry.rowParentId)); + // @ts-ignore sp.scrollToProcess(`${findEntry.rowId}`, `${findEntry.rowParentId}`, findEntry.rowType, true); let completeEntry = (): void => { sp.hoverStructNull(); sp.selectStructNull(); sp.wakeupListNull(); + // @ts-ignore sp.scrollToProcess(`${findEntry.rowId}`, `${findEntry.rowParentId}`, findEntry.rowType, true); }; if (filterRow!.isComplete) { @@ -881,10 +997,12 @@ function findEntryTypeThreadProcess(sp: SpSystemTrace, findEntry: any): void { } } } -function findEntryTypeSdk(sp: SpSystemTrace, findEntry: any): void { - let parentRow = sp.shadowRoot!.querySelector>(`trace-row[row-type='sdk'][folder]`); +function findEntryTypeSdk(sp: SpSystemTrace, findEntry: unknown): void { + // @ts-ignore + let parentRow = sp.shadowRoot!.querySelector>(`trace-row[row-type='sdk'][folder]`); if (parentRow) { let sdkRow = parentRow.childrenList.filter( + // @ts-ignore (child) => child.rowId === findEntry.rowId && child.rowType === findEntry.rowType )[0]; sdkRow!.highlight = true; @@ -892,8 +1010,11 @@ function findEntryTypeSdk(sp: SpSystemTrace, findEntry: any): void { sp.hoverStructNull(); sp.selectStructNull(); sp.wakeupListNull(); + // @ts-ignore sp.onClickHandler(findEntry.rowType!); + // @ts-ignore sp.closeAllExpandRows(findEntry.rowParentId); + // @ts-ignore sp.scrollToProcess(`${findEntry.rowId}`, `${findEntry.rowParentId}`, findEntry.rowType, true); } async function spSystemTraceInitBuffer( @@ -955,7 +1076,7 @@ export async function spSystemTraceInit( wasmConfigUri: string, progress: Function, isDistributed: boolean -): Promise { +): Promise { progress('Load database', 6); sp.rowsPaneEL!.scroll({ top: 0, left: 0 }); let rsBuf = await spSystemTraceInitBuffer(sp, param, wasmConfigUri, progress); @@ -972,7 +1093,8 @@ export async function spSystemTraceInit( await sp.chartManager?.init(progress); } let rowId: string = ''; - sp.rowsEL?.querySelectorAll>('trace-row').forEach((it) => { + // @ts-ignore + sp.rowsEL?.querySelectorAll>('trace-row').forEach((it) => { if (it.name.includes('Ark Ts')) { rowId = it.rowId!; } @@ -983,7 +1105,8 @@ export async function spSystemTraceInit( progress('completed', 100); info('All TraceRow Data initialized'); sp.loadTraceCompleted = true; - sp.rowsEL!.querySelectorAll>('trace-row').forEach((it) => { + // @ts-ignore + sp.rowsEL!.querySelectorAll>('trace-row').forEach((it) => { if (rowId !== '' && (it.rowId?.includes(rowId) || it.name.includes(rowId))) { it.addTemplateTypes('Ark Ts'); for (let child of it.childrenList) { @@ -991,7 +1114,7 @@ export async function spSystemTraceInit( } } if (it.folder) { - let offsetYTimeOut: any = undefined; + let offsetYTimeOut: unknown = undefined; it.addEventListener('expansion-change', expansionChangeHandler(sp, offsetYTimeOut)); } if (sp.loadTraceCompleted) { @@ -1027,21 +1150,26 @@ export async function spSystemTraceInit( xhr.send(); // 发送请求 return { status: true, msg: 'success' }; } -function expansionChangeHandler(sp: SpSystemTrace, offsetYTimeOut: any): (event: any) => void { - return function (event: any) { +function expansionChangeHandler(sp: SpSystemTrace, offsetYTimeOut: unknown): (event: unknown) => void { + return function (event: unknown) { let max = [...sp.rowsPaneEL!.querySelectorAll('trace-row')].reduce((pre, cur) => pre + cur.clientHeight!, 0); let offset = sp.rowsPaneEL!.scrollHeight - max; sp.rowsPaneEL!.scrollTop = sp.rowsPaneEL!.scrollTop - offset; JankStruct.delJankLineFlag = false; if (offsetYTimeOut) { + // @ts-ignore clearTimeout(offsetYTimeOut); } + // @ts-ignore if (event.detail.expansion) { offsetYTimeOut = setTimeout(() => { sp.linkNodes.forEach((linkNode) => { - JankStruct.selectJankStructList?.forEach((selectStruct: any) => { + JankStruct.selectJankStructList?.forEach((selectStruct: unknown) => { + // @ts-ignore if (event.detail.rowId === selectStruct.pid) { + // @ts-ignore JankStruct.selectJankStruct = selectStruct; + // @ts-ignore JankStruct.hoverJankStruct = selectStruct; } }); @@ -1121,8 +1249,10 @@ export function spSystemTraceParentRowSticky(sp: SpSystemTrace, deltaY: number): if (deltaY > 0) { // 从上往下划 const expandRowList = sp.visibleRows.filter((vr) => vr.expansion); - expandRowList.forEach((vr: TraceRow) => { - const visibleNotCollectList = vr.childrenList.filter((child: TraceRow) => !child.collect && !child.sleeping); + // @ts-ignore + expandRowList.forEach((vr: TraceRow) => { + // @ts-ignore + const visibleNotCollectList = vr.childrenList.filter((child: TraceRow) => !child.collect && !child.sleeping); vr.sticky = visibleNotCollectList.length > 0; }); } else if (deltaY < 0) { diff --git a/ide/src/trace/component/chart/FrameChart.ts b/ide/src/trace/component/chart/FrameChart.ts index ea658a3dbe7d30716618d75290c7302d4c3d596b..0d937e5cedeab2491085ac0cafa10eaa265ee074 100644 --- a/ide/src/trace/component/chart/FrameChart.ts +++ b/ide/src/trace/component/chart/FrameChart.ts @@ -65,7 +65,7 @@ export class FrameChart extends BaseElement { private chartClickListenerList: Array = []; private isUpdateCanvas = false; private isClickMode = false; //是否为点选模式 - _totalRootData: Array = [];//初始化顶部root的数据 + _totalRootData: Array = [];//初始化顶部root的数据 private totalRootNode!: ChartStruct; /** @@ -559,29 +559,41 @@ export class FrameChart extends BaseElement { } } } + let result: number = 0; switch (this._mode) { case ChartMode.Byte: - return ignore.size; + result = ignore.size; + break; case ChartMode.Count: - return ignore.count; + result = ignore.count; + break; case ChartMode.Duration: - return ignore.dur; + result = ignore.dur; + break; case ChartMode.EventCount: - return ignore.eventCount; + result = ignore.eventCount; + break; } + return result; } private isSearch(node: ChartStruct): boolean { + let result: boolean = false; switch (this._mode) { case ChartMode.Byte: - return node.searchSize > 0; + result = node.searchSize > 0; + break; case ChartMode.Count: - return node.searchCount > 0; + result = node.searchCount > 0; + break; case ChartMode.Duration: - return node.searchDur > 0; + result = node.searchDur > 0; + break; case ChartMode.EventCount: - return node.searchEventCount > 0; + result = node.searchEventCount > 0; + break; } + return result; } /** diff --git a/ide/src/trace/component/chart/SpAbilityMonitorChart.ts b/ide/src/trace/component/chart/SpAbilityMonitorChart.ts index 54a03e64dfd341c4cba17429c876d9a3ae18220f..7ce449782d216537656da6bf1cdea5c9349eed86 100644 --- a/ide/src/trace/component/chart/SpAbilityMonitorChart.ts +++ b/ide/src/trace/component/chart/SpAbilityMonitorChart.ts @@ -408,7 +408,7 @@ export class SpAbilityMonitorChart { context = cachedFilesTraceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } cachedFilesTraceRow.canvasSave(context); - (renders['monitorMemory'] as MemoryAbilityRender).renderMainThread( + (renders.monitorMemory as MemoryAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -470,7 +470,7 @@ export class SpAbilityMonitorChart { context = compressedRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } compressedRow.canvasSave(context); - (renders['monitorMemory'] as MemoryAbilityRender).renderMainThread( + (renders.monitorMemory as MemoryAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -549,7 +549,7 @@ export class SpAbilityMonitorChart { context = bytesReadRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } bytesReadRow.canvasSave(context); - (renders['monitorDiskIo'] as DiskIoAbilityRender).renderMainThread( + (renders.monitorDiskIo as DiskIoAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -607,7 +607,7 @@ export class SpAbilityMonitorChart { context = bytesWriteRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } bytesWriteRow.canvasSave(context); - (renders['monitorDiskIo'] as DiskIoAbilityRender).renderMainThread( + (renders.monitorDiskIo as DiskIoAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -696,7 +696,7 @@ export class SpAbilityMonitorChart { context = readOpsRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } readOpsRow.canvasSave(context); - (renders['monitorDiskIo'] as DiskIoAbilityRender).renderMainThread( + (renders.monitorDiskIo as DiskIoAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -722,7 +722,7 @@ export class SpAbilityMonitorChart { context = writeOpsRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } writeOpsRow.canvasSave(context); - (renders['monitorDiskIo'] as DiskIoAbilityRender).renderMainThread( + (renders.monitorDiskIo as DiskIoAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -803,7 +803,7 @@ export class SpAbilityMonitorChart { context = row.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } row.canvasSave(context); - (renders['monitorNetwork'] as NetworkAbilityRender).renderMainThread( + (renders.monitorNetwork as NetworkAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -861,7 +861,7 @@ export class SpAbilityMonitorChart { context = row.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } row.canvasSave(context); - (renders['monitorNetwork'] as NetworkAbilityRender).renderMainThread( + (renders.monitorNetwork as NetworkAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -920,7 +920,7 @@ export class SpAbilityMonitorChart { context = row.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } row.canvasSave(context); - (renders['monitorNetwork'] as NetworkAbilityRender).renderMainThread( + (renders.monitorNetwork as NetworkAbilityRender).renderMainThread( { context: context, useCache: useCache, @@ -979,7 +979,7 @@ export class SpAbilityMonitorChart { context = row.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } row.canvasSave(context); - (renders['monitorNetwork'] as NetworkAbilityRender).renderMainThread( + (renders.monitorNetwork as NetworkAbilityRender).renderMainThread( { context: context, useCache: useCache, diff --git a/ide/src/trace/component/chart/SpBpftraceChart.ts b/ide/src/trace/component/chart/SpBpftraceChart.ts index 282ddcd0f9c308e1b50b2267630fa3a4fdd441f0..d22c7bdf925e9689af729d8c5b1ecb1d863b653a 100644 --- a/ide/src/trace/component/chart/SpBpftraceChart.ts +++ b/ide/src/trace/component/chart/SpBpftraceChart.ts @@ -214,19 +214,19 @@ export class SpBpftraceChart { getFlattenTreeData(treeData: Array, depth: number = 0, parentName: string = ''): Array { let result: Array = []; treeData.forEach((node) => { - const name: string = node['function_name']; + const name: string = node.function_name; const newNode: any = {}; if (name.indexOf('unknown') > -1) { - newNode['children'] = this.getUnknownAllChildrenNames(node); + newNode.children = this.getUnknownAllChildrenNames(node); } - newNode['detail'] = node['detail']; - newNode['depth'] = depth; - newNode['name'] = name; - newNode['parentName'] = parentName; - newNode['property'] = []; + newNode.detail = node.detail; + newNode.depth = depth; + newNode.name = name; + newNode.parentName = parentName; + newNode.property = []; result.push(newNode); if (node.children) { - result = result.concat(this.getFlattenTreeData(node.children, depth + 1, node['function_name'])); + result = result.concat(this.getFlattenTreeData(node.children, depth + 1, node.function_name)); } }); return result; @@ -242,10 +242,10 @@ export class SpBpftraceChart { propertyData.forEach((propertyGroup) => { const groups: Array = []; propertyGroup.forEach((property: any) => { - const duplicateObj = groups.find((group) => group['func_name'] === property['func_name']); + const duplicateObj = groups.find((group) => group.func_name === property.func_name); if (duplicateObj) { - duplicateObj['begin'] = Math.min(duplicateObj['begin'], property['begin']); - duplicateObj['end'] = Math.max(duplicateObj['end'], property['end']); + duplicateObj.begin = Math.min(duplicateObj.begin, property.begin); + duplicateObj.end = Math.max(duplicateObj.end, property.end); } else { groups.push(property); } @@ -265,32 +265,32 @@ export class SpBpftraceChart { //数组每一项进行比对 propertyData.forEach((propertyGroup) => { propertyGroup.forEach((property: any) => { - const relation = sampleProperty.find((relation) => relation['name'] === property['func_name']); + const relation = sampleProperty.find((relation) => relation.name === property.func_name); //property属性存储每帧数据 relation?.property.push({ - name: property['func_name'], - detail: relation['detail'], - end: property['end'], - begin: property['begin'], - depth: relation['depth'], - instructions: property['instructions'], - cycles: property['cycles'], + name: property.func_name, + detail: relation.detail, + end: property.end, + begin: property.begin, + depth: relation.depth, + instructions: property.instructions, + cycles: property.cycles, }); }); }); //获取所有名字为unknown的数据 - const unknownRelation = sampleProperty.filter((relation) => relation['name'].indexOf('unknown') > -1); + const unknownRelation = sampleProperty.filter((relation) => relation.name.indexOf('unknown') > -1); //二维数组 用于存放unknown下所有子节点的数据 let twoDimensionalArray: Array = []; let result: Array = []; unknownRelation.forEach((unknownItem) => { result = []; twoDimensionalArray = []; - const children = unknownItem['children']; + const children = unknownItem.children; //先获取到unknwon节点下每个子节点的property Object.keys(children).forEach((key) => { - unknownItem.children[key] = sampleProperty.find((relation) => relation['name'] === key).property; + unknownItem.children[key] = sampleProperty.find((relation) => relation.name === key).property; }); //将每个子节点的property加到二维数组中 Object.values(children).forEach((value: any) => { @@ -302,15 +302,15 @@ export class SpBpftraceChart { //取每列的最大值和最小值 for (let i = 0; i < twoDimensionalArray[0].length; i++) { const data = { - name: unknownItem['name'], - detail: unknownItem['detail'], + name: unknownItem.name, + detail: unknownItem.detail, begin: twoDimensionalArray[0][i].begin, end: 0, - depth: unknownItem['depth'], + depth: unknownItem.depth, }; for (let j = 0; j < twoDimensionalArray.length; j++) { - data['end'] = Math.max(twoDimensionalArray[j][i]['end'], data['end']); - data['begin'] = Math.min(twoDimensionalArray[j][i]['begin'], data['begin']); + data.end = Math.max(twoDimensionalArray[j][i].end, data.end); + data.begin = Math.min(twoDimensionalArray[j][i].begin, data.begin); } result.push(data); } @@ -326,10 +326,10 @@ export class SpBpftraceChart { * @param names */ getUnknownAllChildrenNames(node: any, names: any = {}): object { - if (node['children']) { - node['children'].forEach((child: any) => { - if (child['function_name'].indexOf('unknown') < 0) { - names[child['function_name']] = []; + if (node.children) { + node.children.forEach((child: any) => { + if (child.function_name.indexOf('unknown') < 0) { + names[child.function.name] = []; } else { this.getUnknownAllChildrenNames(child, names); } diff --git a/ide/src/trace/component/chart/SpChartManager.ts b/ide/src/trace/component/chart/SpChartManager.ts index 8b506184019bb8a0f45ec741453750c6879c1b12..b6d0b22303576f972d80a8bb8801600831b6533c 100644 --- a/ide/src/trace/component/chart/SpChartManager.ts +++ b/ide/src/trace/component/chart/SpChartManager.ts @@ -473,7 +473,7 @@ export const folderThreadHandler = (row: TraceRow, trace: SpSystemTr // @ts-ignore trace.canvasPanelCtx?.clearRect(0, 0, row.frame.width, row.frame.height); } else { - (renders['empty'] as EmptyRender).renderMainThread( + (renders.empty as EmptyRender).renderMainThread( { context: trace.canvasPanelCtx, useCache: useCache, diff --git a/ide/src/trace/component/chart/SpClockChart.ts b/ide/src/trace/component/chart/SpClockChart.ts index 9f4aa584c809ddbc15c9e15b1fedbac94e375096..2b4344b9417a7c9e91da103b33db55ae74bf685d 100644 --- a/ide/src/trace/component/chart/SpClockChart.ts +++ b/ide/src/trace/component/chart/SpClockChart.ts @@ -27,6 +27,7 @@ import { DmaFenceRender, DmaFenceStruct } from '../../database/ui-worker/Procedu import { dmaFenceSender } from '../../database/data-trafic/dmaFenceSender'; import { queryDmaFenceName } from '../../database/sql/dmaFence.sql'; import { BaseStruct } from '../../bean/BaseStruct'; +import { promises } from 'dns'; export class SpClockChart { private readonly trace: SpSystemTrace; @@ -163,14 +164,16 @@ export class SpClockChart { traceRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; traceRow.selectChangeHandler = this.trace.selectChangeHandler; this.clockSupplierFrame(traceRow, it, isState, isScreenState); - traceRow.getCacheData = (args: unknown): Promise> | undefined => { + traceRow.getCacheData = (args: unknown): Promise | undefined => { + let result: Promise | undefined; if (it.name.endsWith(' Frequency')) { - return clockDataSender(it.srcname, 'clockFrequency', traceRow, args); + result = clockDataSender(it.srcname, 'clockFrequency', traceRow, args); } else if (isState) { - return clockDataSender(it.srcname, 'clockState', traceRow, args); + result = clockDataSender(it.srcname, 'clockState', traceRow, args); } else if (isScreenState) { - return clockDataSender('', 'screenState', traceRow, args); + result = clockDataSender('', 'screenState', traceRow, args); } + return result; }; traceRow.focusHandler = (ev): void => { this.trace?.displayTip( @@ -208,7 +211,7 @@ export class SpClockChart { traceRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; traceRow.selectChangeHandler = this.trace.selectChangeHandler; // @ts-ignore - traceRow.supplierFrame = () => { + traceRow.supplierFrame = (): Promise => { return dmaFenceSender('dma_fence_init', `${timelineValues[i]}`, traceRow).then((res) => { res.forEach((item: unknown) => { // @ts-ignore @@ -230,7 +233,7 @@ export class SpClockChart { }); }; - traceRow.onThreadHandler = (useCache) => { + traceRow.onThreadHandler = (useCache): void => { let context: CanvasRenderingContext2D; if (traceRow.currentContext) { context = traceRow.currentContext; diff --git a/ide/src/trace/component/chart/SpEBPFChart.ts b/ide/src/trace/component/chart/SpEBPFChart.ts index 1a51e3a113f424d723754622d7f7061acc36ded6..ade1dd6870b165e3ff33715d6a4d408cc72c8f5b 100644 --- a/ide/src/trace/component/chart/SpEBPFChart.ts +++ b/ide/src/trace/component/chart/SpEBPFChart.ts @@ -36,11 +36,11 @@ export class SpEBPFChart { let sys = await hasFileSysData(); if (sys.length > 0) { //@ts-ignore - let fsCount = sys[0]['fsCount'] ?? 0; + let fsCount = sys[0].fsCount ?? 0; //@ts-ignore - let vmCount = sys[0]['vmCount'] ?? 0; + let vmCount = sys[0].vmCount ?? 0; //@ts-ignore - let ioCount = sys[0]['ioCount'] ?? 0; + let ioCount = sys[0].ioCount ?? 0; if (sys && sys.length > 0 && (fsCount > 0 || vmCount > 0 || ioCount > 0)) { let folder = await this.initFolder(); await this.initFileCallchain(); @@ -87,7 +87,7 @@ export class SpEBPFChart { // @ts-ignore this.trace.canvasPanelCtx?.clearRect(0, 0, fsFolder.frame.width, fsFolder.frame.height); } else { - (renders['empty'] as EmptyRender).renderMainThread( + (renders.empty as EmptyRender).renderMainThread( { context: this.trace.canvasPanelCtx, useCache: useCache, @@ -239,17 +239,17 @@ export class SpEBPFChart { initProcessDiskIOLatencyRead(i: number, folder: TraceRow, process: unknown): TraceRow { let rowRead = TraceRow.skeleton(); rowRead.index = 5 + 2 * i; //@ts-ignore - rowRead.rowId = `FileSystemDiskIOLatency-read-${process['ipid']}`; + rowRead.rowId = `FileSystemDiskIOLatency-read-${process.ipid}`; rowRead.rowType = TraceRow.ROW_TYPE_FILE_SYSTEM; rowRead.rowParentId = folder.rowId; rowRead.rowHidden = !folder.expansion; rowRead.style.height = '40px'; rowRead.style.width = '100%'; rowRead.setAttribute('children', ''); //@ts-ignore - rowRead.name = `${process['name'] ?? 'Process'}(${process['pid']}) Max Read Latency`; + rowRead.name = `${process.name ?? 'Process'}(${process.ipid}) Max Read Latency`; rowRead.supplierFrame = async (): Promise => { //@ts-ignore - const res = await diskIoSender(false, process['ipid'], [1, 3], TraceRow.range?.scale || 50, rowRead); + const res = await diskIoSender(false, process.ipid, [1, 3], TraceRow.range?.scale || 50, rowRead); return res; }; rowRead.favoriteChangeHandler = this.trace.favoriteChangeHandler; @@ -271,7 +271,7 @@ export class SpEBPFChart { { context: context, useCache: useCache, //@ts-ignore - type: `${TraceRow.ROW_TYPE_FILE_SYSTEM}-disk-io-process-read-${process['pid']}`, + type: `${TraceRow.ROW_TYPE_FILE_SYSTEM}-disk-io-process-read-${process.pid}`, chartColor: ColorUtils.MD_PALETTE[0], }, rowRead @@ -285,17 +285,17 @@ export class SpEBPFChart { private initProcessDiskIOWrite(i: number, folder: TraceRow, process: unknown): TraceRow { let rowWrite = TraceRow.skeleton(); rowWrite.index = 5 + 2 * i + 1; //@ts-ignore - rowWrite.rowId = `FileSystemDiskIOLatency-write-${process['ipid']}`; + rowWrite.rowId = `FileSystemDiskIOLatency-write-${process.ipid}`; rowWrite.rowType = TraceRow.ROW_TYPE_FILE_SYSTEM; rowWrite.rowParentId = folder.rowId; rowWrite.rowHidden = !folder.expansion; rowWrite.style.height = '40px'; rowWrite.style.width = '100%'; rowWrite.setAttribute('children', ''); //@ts-ignore - rowWrite.name = `${process['name'] ?? 'Process'}(${process['pid']}) Max Write Latency`; + rowWrite.name = `${process.name ?? 'Process'}(${process.pid}) Max Write Latency`; rowWrite.supplierFrame = async (): Promise => { //@ts-ignore - const res = await diskIoSender(false, process['ipid'], [2, 4], TraceRow.range?.scale || 50, rowWrite); + const res = await diskIoSender(false, process.ipid, [2, 4], TraceRow.range?.scale || 50, rowWrite); return res; }; rowWrite.favoriteChangeHandler = this.trace.favoriteChangeHandler; @@ -317,7 +317,7 @@ export class SpEBPFChart { { context: context, useCache: useCache, //@ts-ignore - type: `${TraceRow.ROW_TYPE_FILE_SYSTEM}-disk-io-process-write-${process['pid']}`, + type: `${TraceRow.ROW_TYPE_FILE_SYSTEM}-disk-io-process-write-${process.pid}`, chartColor: ColorUtils.MD_PALETTE[8], }, rowWrite diff --git a/ide/src/trace/component/chart/SpGpuCounterChart.ts b/ide/src/trace/component/chart/SpGpuCounterChart.ts index ca3cd6b9d1a8b498d5517eaef66180202eb9e338..098acdc2dc51265335166963f3a7d3001101d685 100644 --- a/ide/src/trace/component/chart/SpGpuCounterChart.ts +++ b/ide/src/trace/component/chart/SpGpuCounterChart.ts @@ -18,8 +18,8 @@ import { TraceRow } from '../trace/base/TraceRow'; import { renders } from '../../database/ui-worker/ProcedureWorker'; import { GpuCounterStruct, - Maleoon_counter_obj, - Gpu_counter_type, + MaleoonCounterObj, + GpuCounterType, GpuCounterRender, } from '../../database/ui-worker/ProcedureWorkerGpuCounter'; import { folderSupplier, folderThreadHandler } from './SpChartManager'; @@ -479,8 +479,8 @@ export class SpGpuCounterChart { } } - groupByGpuCounterType(maleoonCounter: Maleoon_counter_obj) { - const gpuCounterType = new Gpu_counter_type(); + groupByGpuCounterType(maleoonCounter: MaleoonCounterObj):GpuCounterType { + const gpuCounterType = new GpuCounterType(); let index = 0; for (const key in maleoonCounter) { if (index < 5) { diff --git a/ide/src/trace/component/chart/SpHiPerf.ts b/ide/src/trace/component/chart/SpHiPerf.ts index 86a97676eba555d053d73d2c68be51f150254650..1a52aa9b3f11fb530893b5041327c9a3a21305ed 100644 --- a/ide/src/trace/component/chart/SpHiPerf.ts +++ b/ide/src/trace/component/chart/SpHiPerf.ts @@ -318,15 +318,18 @@ export class SpHiPerf { row.rowSettingList = [ ...cpuData.reverse().map( ( - it: any + it: unknown ): { key: string; title: string; checked?: boolean; } => { return { + //@ts-ignore key: `${it.cpu_id}-c`, + //@ts-ignore checked: it.cpu_id === 0, + //@ts-ignore title: `cpu${it.cpu_id}`, }; } diff --git a/ide/src/trace/component/chart/SpLTPO.ts b/ide/src/trace/component/chart/SpLTPO.ts index 63b23c74fbcfdb6e3b245e0e725a73fd18fa8c8d..c4c1e2df6f20335d7ca31d3cba57da4a1ac47ba4 100644 --- a/ide/src/trace/component/chart/SpLTPO.ts +++ b/ide/src/trace/component/chart/SpLTPO.ts @@ -301,7 +301,7 @@ export class SpLtpoChart { } } pushLtpoData( - lptoArr: any[] | undefined, + lptoArr: unknown[] | undefined, fanceId: Number, fps: Number, signaled: Number, @@ -331,16 +331,19 @@ export class SpLtpoChart { while (presentIndex < presentArr.length) { if (presentArr[presentIndex] && ltpoDataArr[ltpoIndex]) { if ( - presentArr[presentIndex].startTime! + presentArr[presentIndex].dur! - (window as any).recordStartNS === + // @ts-ignore + presentArr[presentIndex].startTime! + presentArr[presentIndex].dur! - (window as unknown).recordStartNS === TraceRow.range!.totalNS ) { presentArr.splice(presentIndex, 1); } if (presentArr[presentIndex].presentId === ltpoDataArr[ltpoIndex].fanceId) { - ltpoDataArr[ltpoIndex].startTs = Number(presentArr[presentIndex].startTime) - (window as any).recordStartNS; + // @ts-ignore + ltpoDataArr[ltpoIndex].startTs = Number(presentArr[presentIndex].startTime) - (window as unknown).recordStartNS; ltpoDataArr[ltpoIndex].dur = presentArr[presentIndex].dur; ltpoDataArr[ltpoIndex].nextStartTs = presentArr[presentIndex + 1] - ? Number(presentArr[presentIndex + 1].startTime) - (window as any).recordStartNS + // @ts-ignore + ? Number(presentArr[presentIndex + 1].startTime) - (window as unknown).recordStartNS : ''; ltpoDataArr[ltpoIndex].nextDur = presentArr[presentIndex + 1] ? presentArr[presentIndex + 1].dur : 0; presentIndex++; diff --git a/ide/src/trace/component/chart/SpPerfOutputDataChart.ts b/ide/src/trace/component/chart/SpPerfOutputDataChart.ts index 57840add47c098fa6bae89f3daa5bf60e4098103..78bc407febba391236446f4a4d57ee270ee170ab 100644 --- a/ide/src/trace/component/chart/SpPerfOutputDataChart.ts +++ b/ide/src/trace/component/chart/SpPerfOutputDataChart.ts @@ -68,7 +68,7 @@ export class SpPerfOutputDataChart { context = traceRow.collect ? this.trace.canvasFavoritePanelCtx! : this.trace.canvasPanelCtx!; } traceRow.canvasSave(context); - (renders['perfTool'] as PerfToolRender).renderMainThread( + (renders.perfTool as PerfToolRender).renderMainThread( { context: context, useCache: useCache, @@ -80,8 +80,8 @@ export class SpPerfOutputDataChart { traceRow.canvasRestore(context, this.trace); }; } - - async initData(folder: TraceRow): Promise { +//@ts-ignore + async initData(folder: TraceRow): Promise { let perfToolStartTime = new Date().getTime(); let perfToolList = [ { name: 'Application Process CPU Power Consumption(MAS)', idx: 27 }, @@ -115,7 +115,8 @@ export class SpPerfOutputDataChart { data.count = this.perfOutputArr![it.idx]; data.id = i + 1; data.name = it.name; - return new Promise>((resolve) => resolve([data])); + //@ts-ignore + return new Promise>((resolve) => resolve([data])); }; traceRow.findHoverStruct = (): void => { PerfToolStruct.hoverPerfToolStruct = traceRow.getHoverStruct(); @@ -126,8 +127,8 @@ export class SpPerfOutputDataChart { let durTime = new Date().getTime() - perfToolStartTime; info('The time to load the ClockData is: ', durTime); } - - async initFolder(): Promise> { +//@ts-ignore + async initFolder(): Promise> { let perfFolder = TraceRow.skeleton(); perfFolder.rowId = 'perfTool'; perfFolder.index = 0; @@ -138,13 +139,14 @@ export class SpPerfOutputDataChart { perfFolder.name = 'Perf Tools'; perfFolder.favoriteChangeHandler = this.trace.favoriteChangeHandler; perfFolder.selectChangeHandler = this.trace.selectChangeHandler; - perfFolder.supplier = (): Promise => new Promise>((resolve) => resolve([])); + //@ts-ignore + perfFolder.supplier = (): Promise => new Promise>((resolve) => resolve([])); perfFolder.onThreadHandler = (useCache): void => { perfFolder.canvasSave(this.trace.canvasPanelCtx!); if (perfFolder.expansion) { this.trace.canvasPanelCtx?.clearRect(0, 0, perfFolder.frame.width, perfFolder.frame.height); } else { - (renders['empty'] as EmptyRender).renderMainThread( + (renders.empty as EmptyRender).renderMainThread( { context: this.trace.canvasPanelCtx, useCache: useCache, diff --git a/ide/src/trace/component/chart/SpProcessChart.ts b/ide/src/trace/component/chart/SpProcessChart.ts index 50a6ce3e38fd07612ce703b30e820ddfd504de73..7fb303749f83cb039ee0f81e579c3ff29c97ce3b 100644 --- a/ide/src/trace/component/chart/SpProcessChart.ts +++ b/ide/src/trace/component/chart/SpProcessChart.ts @@ -53,6 +53,7 @@ import { } from '../../database/sql/ProcessThread.sql'; import { queryAllJankProcess } from '../../database/sql/Janks.sql'; import { BaseStruct } from '../../bean/BaseStruct'; +import { promises } from 'dns'; const FOLD_HEIGHT = 24; export class SpProcessChart { @@ -159,9 +160,9 @@ export class SpProcessChart { if (Reflect.ownKeys(asyncFuncGroup).length > 0) { this.trace.rowsEL?.appendChild(row); } // @ts-ignore - Reflect.ownKeys(asyncFuncGroup).map((key: any) => { + Reflect.ownKeys(asyncFuncGroup).map((key: unknown) => { // @ts-ignore - let asyncFuncGroups: Array = asyncFuncGroup[key]; + let asyncFuncGroups: Array = asyncFuncGroup[key]; if (asyncFuncGroups.length > 0) { //@ts-ignore row.addChildTraceRow(this.createDeliverInputEventRow(row, key, asyncFuncGroups)); @@ -274,10 +275,11 @@ export class SpProcessChart { this.trace.rowsEL?.appendChild(row); } //@ts-ignore - Reflect.ownKeys(asyncFuncGroup).map((key: any) => { + Reflect.ownKeys(asyncFuncGroup).map((key: unknown) => { //@ts-ignore - let asyncFuncGroups: Array = asyncFuncGroup[key]; + let asyncFuncGroups: Array = asyncFuncGroup[key]; if (asyncFuncGroups.length > 0) { + // @ts-ignore row.addChildTraceRow(this.createTouchEventDispatchRow(row, key, asyncFuncGroups)); } }); @@ -286,10 +288,12 @@ export class SpProcessChart { private createTouchEventDispatchRow( parentRow: TraceRow, key: number, - asyncFuncGroups: Array + asyncFuncGroups: Array ): TraceRow { let funcRow = TraceRow.skeleton(); + // @ts-ignore funcRow.rowId = `${asyncFuncGroups[0].funName}-${key}`; + // @ts-ignore funcRow.asyncFuncName = asyncFuncGroups[0].funName; funcRow.asyncFuncNamePID = key; funcRow.rowType = TraceRow.ROW_TYPE_FUNC; @@ -298,10 +302,12 @@ export class SpProcessChart { funcRow.rowHidden = !parentRow.expansion; funcRow.style.width = '100%'; funcRow.style.height = '24px'; + //@ts-ignore funcRow.name = `${asyncFuncGroups[0].funName} ${key}`; funcRow.setAttribute('children', ''); - funcRow.supplierFrame = () => { - return processTouchEventDispatchDataSender(key, funcRow!).then((res: Array) => { + //@ts-ignore + funcRow.supplierFrame = ():Promise=> { + return processTouchEventDispatchDataSender(key, funcRow!).then((res: Array) => { this.touchEventDispatchSendCallback(res, funcRow, asyncFuncGroups); return res; }); @@ -316,6 +322,7 @@ export class SpProcessChart { 'func', 'context', { + // @ts-ignore type: `func-${asyncFuncGroups[0].funName}-${key}`, }, funcRow, @@ -324,29 +331,40 @@ export class SpProcessChart { return funcRow; } - private touchEventDispatchSendCallback(res: Array, funcRow: TraceRow, asyncFuncGroups: Array): void { - let isIntersect = (left: any, right: any): boolean => + // @ts-ignore + private touchEventDispatchSendCallback(res: Array, funcRow: TraceRow, asyncFuncGroups: Array): void { + let isIntersect = (left: unknown, right: unknown): boolean => + // @ts-ignore Math.max(left.startTs + left.dur, right.startTs + right.dur) - Math.min(left.startTs, right.startTs) < + // @ts-ignore left.dur + right.dur; - let depths: any = []; + let depths: unknown = []; let createDepth = (currentDepth: number, index: number): void => { - if (depths[currentDepth] == undefined || !isIntersect(depths[currentDepth], res[index])) { + if (depths[currentDepth] === undefined || !isIntersect(depths[currentDepth], res[index])) { + //@ts-ignore res[index].depth = currentDepth; + // @ts-ignore depths[currentDepth] = res[index]; } else { createDepth(++currentDepth, index); } }; res.forEach((it, i) => { + //@ts-ignore res[i].funName = this.traceId ? Utils.getInstance().getCallStatckMap().get(`${this.traceId}_${res[i].id!}`) : Utils.getInstance().getCallStatckMap().get(res[i].id!); + //@ts-ignore res[i].threadName = Utils.getInstance().getThreadMap().get(res[i].tid!); - if (it.dur == -1 || it.dur === null || it.dur === undefined) { + //@ts-ignore + if (it.dur === -1 || it.dur === null || it.dur === undefined) { + //@ts-ignore it.dur = (TraceRow.range?.endNS || 0) - it.startTs; + //@ts-ignore it.flag = 'Did not end'; } createDepth(0, i); }); if (funcRow && !funcRow.isComplete) { + // @ts-ignore let max = Math.max(...asyncFuncGroups.map((it) => it.depth || 0)) + 1; let maxHeight = max * 18 + 6; funcRow.style.height = `${maxHeight}px`; @@ -354,8 +372,10 @@ export class SpProcessChart { } } - async init(isDistributed: boolean, parentRow?: TraceRow, traceId?: string): Promise { + // @ts-ignore + async init(isDistributed: boolean, parentRow?: TraceRow, traceId?: string): Promise { this.traceId = traceId; + // @ts-ignore this.parentRow = parentRow; this.isDistributed = isDistributed; await this.prepareData(traceId); @@ -1247,10 +1267,11 @@ export class SpProcessChart { return max * 18 + 6; } //处理缓存数据的'startTs'字段统一成'startTime' - private toAsyncFuncCache(object: any, name: string): void { + private toAsyncFuncCache(object: unknown, name: string): void { + // @ts-ignore let modifiedObject = { ...object }; modifiedObject['startTime'] = modifiedObject['startTs']; - delete modifiedObject['startTs']; + modifiedObject.remove('startTs'); modifiedObject.rowId = name; modifiedObject.type = 'func'; SpProcessChart.asyncFuncCache.push({ ...modifiedObject }); @@ -1267,42 +1288,55 @@ export class SpProcessChart { let { asyncRemoveCatArr, asyncCatMap } = this.hanldCategoryAsyncFunc(asyncFuncList); let { setArrayLenThanOne, setArrayLenOnlyOne } = this.hanldAsyncFunc(it, asyncRemoveCatArr); //处理cat不为null和length等于1的数据 + // @ts-ignore let aggregateData = { ...Object.fromEntries(asyncCatMap), ...setArrayLenOnlyOne }; - Reflect.ownKeys(aggregateData).map((key: any) => { - let param: Array = aggregateData[key]; + Reflect.ownKeys(aggregateData).map((key: unknown) => { + let param: Array = aggregateData[key]; + // @ts-ignore this.makeAddAsyncFunction(param, it, processRow, key); - }) + }); //处理length大于1的数据,不传key值 - Reflect.ownKeys(setArrayLenThanOne).map((key: any) => { - let param: Array = setArrayLenThanOne[key]; + // @ts-ignore + Reflect.ownKeys(setArrayLenThanOne).map((key: unknown) => { + // @ts-ignore + let param: Array = setArrayLenThanOne[key]; this.makeAddAsyncFunction(param, it, processRow); - }) + }); } else { //不聚合异步trace let asyncFuncGroup = Utils.groupBy(asyncFuncList, 'funName'); //@ts-ignore - Reflect.ownKeys(asyncFuncGroup).map((key: any) => { + Reflect.ownKeys(asyncFuncGroup).map((key: unknown) => { //@ts-ignore - let asyncFunctions: Array = asyncFuncGroup[key]; + let asyncFunctions: Array = asyncFuncGroup[key]; if (asyncFunctions.length > 0) { - let isIntersect = (a: any, b: any): boolean => + let isIntersect = (a: unknown, b: unknown): boolean => + // @ts-ignore Math.max(a.startTs + a.dur, b.startTs + b.dur) - Math.min(a.startTs, b.startTs) < a.dur + b.dur; - let depthArray: any = []; + let depthArray: unknown = []; asyncFunctions.forEach((it, i) => { + // @ts-ignore if (it.dur === -1 || it.dur === null || it.dur === undefined) { + // @ts-ignore it.dur = (TraceRow.range?.endNS || 0) - it.startTs; + // @ts-ignore it.flag = 'Did not end'; } let currentDepth = 0; let index = i; while ( + // @ts-ignore depthArray[currentDepth] !== undefined && + // @ts-ignore isIntersect(depthArray[currentDepth], asyncFunctions[index]) ) { currentDepth++; } + // @ts-ignore asyncFunctions[index].depth = currentDepth; + // @ts-ignore depthArray[currentDepth] = asyncFunctions[index]; + // @ts-ignore this.toAsyncFuncCache(asyncFunctions[index], `${asyncFunctions[i].funName}-${it.pid}`);//处理缓存的异步trace数据缺失的字段 }); } @@ -1312,18 +1346,22 @@ export class SpProcessChart { } //处理CategoryAsyncFunc hanldCategoryAsyncFunc( - asyncFuncList: Array - ): { asyncRemoveCatArr: Array, asyncCatMap: Map> } { - let asyncCatMap: Map = new Map(); + asyncFuncList: Array + ): { asyncRemoveCatArr: Array, asyncCatMap: Map> } { + let asyncCatMap: Map = new Map(); let asyncRemoveCatArr = new Array(); //取出cat字段(category)不为null的数据 for (let i = 0; i < asyncFuncList.length; i++) { const el = asyncFuncList[i]; + // @ts-ignore if (el.cat !== null) { + // @ts-ignore if (asyncCatMap.has(`${el.cat}:${el.threadName} ${el.tid}`)) { - let item: Array = asyncCatMap.get(`${el.cat}:${el.threadName} ${el.tid}`); + // @ts-ignore + let item: Array = asyncCatMap.get(`${el.cat}:${el.threadName} ${el.tid}`); item.push(el); } else { + // @ts-ignore asyncCatMap.set(`${el.cat}:${el.threadName} ${el.tid}`, [el]); } } else { @@ -1331,21 +1369,22 @@ export class SpProcessChart { asyncRemoveCatArr.push(el); } } + // @ts-ignore return { asyncRemoveCatArr, asyncCatMap }; } //处理cat字段为null的数据,按funname分类,分别按len>1和=1去处理 hanldAsyncFunc( it: { pid: number; processName: string | null }, - asyncRemoveCatList: Array - ): { setArrayLenThanOne: any, setArrayLenOnlyOne: any } { + asyncRemoveCatList: Array + ): { setArrayLenThanOne: unknown, setArrayLenOnlyOne: unknown } { let asyncFuncGroup = Utils.groupBy(asyncRemoveCatList, 'funName'); let funcArr: unknown[] = []; let setArrayLenThanOne: unknown = {}; let setArrayLenOnlyOne: unknown = {}; //@ts-ignore - Reflect.ownKeys(asyncFuncGroup).map((key: any) => { + Reflect.ownKeys(asyncFuncGroup).map((key: unknown) => { //@ts-ignore - let asyncFunctions: Array = asyncFuncGroup[key]; + let asyncFunctions: Array = asyncFuncGroup[key]; if (asyncFunctions.length > 1) { //@ts-ignore setArrayLenThanOne[`${asyncFunctions[0].funName}-${it.pid}`] = asyncFunctions; @@ -1356,20 +1395,20 @@ export class SpProcessChart { //len=1的数据继续按tid分类 let asyncFuncTidGroup = Utils.groupBy(funcArr, 'tid'); //@ts-ignore - Reflect.ownKeys(asyncFuncTidGroup).map((key: any) => { + Reflect.ownKeys(asyncFuncTidGroup).map((key: unknown) => { //@ts-ignore - let asyncTidFunc: Array = asyncFuncTidGroup[key]; + let asyncTidFunc: Array = asyncFuncTidGroup[key]; //@ts-ignore setArrayLenOnlyOne[`H:${asyncTidFunc[0].threadName} ${asyncTidFunc[0].tid}`] = asyncTidFunc; }); - return { setArrayLenThanOne, setArrayLenOnlyOne } + return { setArrayLenThanOne, setArrayLenOnlyOne }; } makeAddAsyncFunction( - asyncFunctions: any[], + asyncFunctions: unknown[], it: { pid: number; processName: string | null }, processRow: TraceRow, key?: string - ) { + ): void { let maxDepth: number = -1; let i = 0; let mapDepth = new Map(); @@ -1378,13 +1417,17 @@ export class SpProcessChart { if (asyncFunctions.length) { while (i < asyncFunctions.length) { let param = asyncFunctions[i]; + // @ts-ignore if (param.dur !== null) { + // @ts-ignore let itemEndTime = param.startTs + param.dur; let flag = false; for (let [key, val] of mapDepth.entries()) { + // @ts-ignore if (val.et < param.startTs) { flag = true; val.et = itemEndTime;//更新endts + // @ts-ignore param.depth = Number(key); break; } @@ -1392,8 +1435,10 @@ export class SpProcessChart { if (!flag) {//depth增加 maxDepth++; mapDepth.set(`${maxDepth}`, { et: itemEndTime }); + // @ts-ignore param.depth = maxDepth; } + // @ts-ignore this.toAsyncFuncCache(param, key ? key : `${asyncFunctions[i].funName}-${it.pid}`); normalData.push(param); } else { @@ -1402,15 +1447,21 @@ export class SpProcessChart { i++; } if (noEndData.length) { - noEndData.forEach((it: any, i: any) => { + noEndData.forEach((it: unknown, i: unknown) => { + // @ts-ignore if (it.dur === -1 || it.dur === null || it.dur === undefined) { + // @ts-ignore it.dur = (TraceRow.range?.endNS || 0) - it.startTs; + // @ts-ignore it.nofinish = true; + // @ts-ignore it.flag = 'Did not end'; } let index = i; maxDepth++; + // @ts-ignore noEndData[index].depth = maxDepth; + // @ts-ignore this.toAsyncFuncCache(noEndData[index], key ? key : `${asyncFunctions[i].funName}-${it.pid}`); }); } @@ -1419,15 +1470,17 @@ export class SpProcessChart { } //初始化异步泳道信息 lanesConfig( - asyncFunctions: any[], + asyncFunctions: unknown[], it: { pid: number; processName: string | null }, processRow: TraceRow, key?: string - ) { + ): void { const maxHeight = this.calMaxHeight(asyncFunctions); + // @ts-ignore const namesSet = new Set(asyncFunctions.map((item) => item.funName)); const asyncFuncName = Array.from(namesSet); let funcRow = TraceRow.skeleton(); + // @ts-ignore funcRow.rowId = key ? key : `${asyncFunctions[0].funName}-${it.pid}`; funcRow.asyncFuncName = asyncFuncName; funcRow.asyncFuncNamePID = it.pid; @@ -1438,12 +1491,14 @@ export class SpProcessChart { funcRow.style.width = '100%'; funcRow.style.height = `${maxHeight}px`; funcRow.setAttribute('height', `${maxHeight}`); + // @ts-ignore funcRow.name = key ? key : `${asyncFunctions[0].funName}`; funcRow.setAttribute('children', ''); funcRow.findHoverStruct = (): void => { FuncStruct.hoverFuncStruct = funcRow.getHoverStruct(); }; - funcRow.supplier = (): Promise => new Promise((resolve) => resolve(asyncFunctions)); + // @ts-ignore + funcRow.supplier = (): Promise => new Promise((resolve) => resolve(asyncFunctions)); funcRow.favoriteChangeHandler = this.trace.favoriteChangeHandler; funcRow.selectChangeHandler = this.trace.selectChangeHandler; funcRow.onThreadHandler = rowThreadHandler( diff --git a/ide/src/trace/component/chart/SpSegmentationChart.ts b/ide/src/trace/component/chart/SpSegmentationChart.ts index bb3de0f36d5da7c74376f819e1d7f0520298bb3d..b0d6adc2f88ba1cd6e642307bd5aa1509fd4420b 100644 --- a/ide/src/trace/component/chart/SpSegmentationChart.ts +++ b/ide/src/trace/component/chart/SpSegmentationChart.ts @@ -163,7 +163,7 @@ export class SpSegmentationChart { await this.initBinderTrace(); await this.initAllStates(); } else { - return + return; } } async initFolder() { diff --git a/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts b/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts index 741b1f3989f4e5737f37d234d0592c063de24031..f6fecfa9a693b9af836f62c5b62471e9e0a00cf1 100644 --- a/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts +++ b/ide/src/trace/component/schedulingAnalysis/TabCpuDetailsThreads.ts @@ -124,29 +124,29 @@ export class TabCpuDetailsThreads extends BaseElement { tip: (obj): string => { return `
    t_name:${ - // @ts-ignore - obj.obj.tName - }
    + // @ts-ignore + obj.obj.tName + }
    tid:${ - // @ts-ignore - obj.obj.tid - }
    + // @ts-ignore + obj.obj.tid + }
    p_name:${ - // @ts-ignore - obj.obj.pName - }
    + // @ts-ignore + obj.obj.pName + }
    p_pid:${ - // @ts-ignore - obj.obj.pid - }
    + // @ts-ignore + obj.obj.pid + }
    duration:${ - // @ts-ignore - obj.obj.durStr - }
    + // @ts-ignore + obj.obj.durStr + }
    ratio:${ - // @ts-ignore - obj.obj.ratio - }%
    + // @ts-ignore + obj.obj.ratio + }% `; }, @@ -182,37 +182,51 @@ export class TabCpuDetailsThreads extends BaseElement { this.noData(false); } - sortByColumn(detail: any): void { + sortByColumn(detail: unknown): void { // @ts-ignore function compare(cpuDetailsThreadProperty, sort, type) { - return function (a: any, b: any) { + return function (a: unknown, b: unknown) { if (type === 'number') { // @ts-ignore return sort === 2 + // @ts-ignore ? parseFloat(b[cpuDetailsThreadProperty]) - parseFloat(a[cpuDetailsThreadProperty]) + // @ts-ignore : parseFloat(a[cpuDetailsThreadProperty]) - parseFloat(b[cpuDetailsThreadProperty]); } else { if (sort === 2) { + // @ts-ignore return b[cpuDetailsThreadProperty].toString().localeCompare(a[cpuDetailsThreadProperty].toString()); } else { + // @ts-ignore return a[cpuDetailsThreadProperty].toString().localeCompare(b[cpuDetailsThreadProperty].toString()); } } }; } + // @ts-ignore if (detail.key === 'durStr') { + // @ts-ignore detail.key = 'dur'; + // @ts-ignore this.data.sort(compare(detail.key, detail.sort, 'number')); } else if ( + // @ts-ignore detail.key === 'value' || + // @ts-ignore detail.key === 'ratio' || + // @ts-ignore detail.key === 'index' || + // @ts-ignore detail.key === 'tid' || + // @ts-ignore detail.key === 'pid' ) { + // @ts-ignore this.data.sort(compare(detail.key, detail.sort, 'number')); } else { + // @ts-ignore this.data.sort(compare(detail.key, detail.sort, 'string')); } this.cpuDetailsThreadUsageTbl!.recycleDataSource = this.data; diff --git a/ide/src/trace/component/setting/SpRecordPerf.ts b/ide/src/trace/component/setting/SpRecordPerf.ts index 8b4b3631b630b76e708be0ed4e2a0822b0c8d1c2..1e08f1d640dbe0bc4fadf37adcd92bb0285b723a 100644 --- a/ide/src/trace/component/setting/SpRecordPerf.ts +++ b/ide/src/trace/component/setting/SpRecordPerf.ts @@ -349,7 +349,6 @@ export class SpRecordPerf extends BaseElement { }; eventSelectClickHandler = (): void => { - let that = this; if (SpRecordTrace.serialNumber === '') { this.eventSelect?.dataSource(eventSelect, ''); } else { @@ -360,8 +359,8 @@ export class SpRecordPerf extends BaseElement { if (SpRecordTrace.isVscode) { let cmd = Cmd.formatString(CmdConstant.CMD_GET_HIPERF_EVENTS_DEVICES, [SpRecordTrace.serialNumber]); Cmd.execHdcCmd(cmd, (res: string) => { - let eventMap = that.parseEvent(res); - let eventList = that.getSoftHardWareEvents(eventMap); + let eventMap = this.parseEvent(res); + let eventList = this.getSoftHardWareEvents(eventMap); if (eventList) { for (let eventListElement of eventList) { this.eventData.push(eventListElement.trim()); @@ -375,8 +374,8 @@ export class SpRecordPerf extends BaseElement { if (conn) { HdcDeviceManager.shellResultAsString(CmdConstant.CMD_GET_HIPERF_EVENTS, false).then((res) => { if (res) { - let eventMap = that.parseEvent(res); - let eventList = that.getSoftHardWareEvents(eventMap); + let eventMap = this.parseEvent(res); + let eventList = this.getSoftHardWareEvents(eventMap); if (eventList) { for (let eventListElement of eventList) { this.eventData.push(eventListElement.trim()); diff --git a/ide/src/trace/component/setting/SpWebHdcShell.ts b/ide/src/trace/component/setting/SpWebHdcShell.ts index 45306711b72fd7005288a94ec8e09ac14b4b5423..9f6208ada53b5ca745d6277ee4aeac0ff1e8b8b8 100644 --- a/ide/src/trace/component/setting/SpWebHdcShell.ts +++ b/ide/src/trace/component/setting/SpWebHdcShell.ts @@ -88,12 +88,11 @@ export class SpWebHdcShell extends BaseElement { window.subscribe(window.SmartEvent.UI.DeviceDisConnect, () => { this.clear(); }); - let that = this; - this.shellCanvas!.addEventListener('blur', function () { - if (that.intervalId) { - window.clearInterval(that.intervalId); + this.shellCanvas!.addEventListener('blur', () => { + if (this.intervalId) { + window.clearInterval(this.intervalId); } - that.shellCanvasCtx!.clearRect(that.shellStrLength, that.textY, 12, 3); + this.shellCanvasCtx!.clearRect(this.shellStrLength, this.textY, 12, 3); }); new ResizeObserver(() => { this.resizeCanvas(); @@ -225,7 +224,7 @@ export class SpWebHdcShell extends BaseElement { } } } - this.points = { startX: startPointX, startY: startPointY, endX: endPointX, endY: endPointY}; + this.points = { startX: startPointX, startY: startPointY, endX: endPointX, endY: endPointY }; } getCurrentLineBackSize(currentLine: string, maxBackSize: number, isStart: boolean): number { @@ -369,7 +368,7 @@ export class SpWebHdcShell extends BaseElement { } this.drawCursorStyle(); } - } catch (e) {} + } catch (e) { } } public initHtml(): string { @@ -566,55 +565,53 @@ export class SpWebHdcShell extends BaseElement { let startY: number; let endX: number; let endY: number; - let that = this; - this.shellCanvas!.addEventListener('mousedown', function (event) { - if (that.resultStr.length === 0 && that.cursorRow.length === 0) { + this.shellCanvas!.addEventListener('mousedown', (event) => { + if (this.resultStr.length === 0 && this.cursorRow.length === 0) { return; } - that.isDragging = true; + this.isDragging = true; startX = event.offsetX; startY = event.offsetY; - that.refreshShellPage(false); + this.refreshShellPage(false); }); - this.shellCanvas!.addEventListener('mousemove', function (event) { - if (!that.isDragging) { + this.shellCanvas!.addEventListener('mousemove', (event) => { + if (!this.isDragging) { return; } - if (that.resultStr.length === 0 && that.cursorRow.length === 0) { + if (this.resultStr.length === 0 && this.cursorRow.length === 0) { return; } endX = event.offsetX; endY = event.offsetY; - that.refreshShellPage(false); - that.points = undefined; - that.shellCanvasCtx!.fillStyle = 'rgba(128, 128, 128, 0.5)'; + this.refreshShellPage(false); + this.points = undefined; + this.shellCanvasCtx!.fillStyle = 'rgba(128, 128, 128, 0.5)'; if (endY > startY) { - that.forwardFlag = true; - that.forwardSelected(startX, startY, endX, endY); + this.forwardFlag = true; + this.forwardSelected(startX, startY, endX, endY); } else { - that.forwardFlag = false; - that.reverseSelected(startX, startY, endX, endY); + this.forwardFlag = false; + this.reverseSelected(startX, startY, endX, endY); } }); this.shellCanvasAddMouseUpListener(); } private shellCanvasAddMouseUpListener(): void { - let that = this; - this.shellCanvas!.addEventListener('mouseup', async function (event) { - if (!that.isDragging) { + this.shellCanvas!.addEventListener('mouseup', async (event)=> { + if (!this.isDragging) { return; } - if (that.resultStr.length === 0 && that.cursorRow.length === 0) { + if (this.resultStr.length === 0 && this.cursorRow.length === 0) { return; } - that.isDragging = false; + this.isDragging = false; //右键 if (event.button === 2) { let text: string = await navigator.clipboard.readText(); if (text) { - if (that.sendCallBack) { - that.sendCallBack(text); + if (this.sendCallBack) { + this.sendCallBack(text); } return; } diff --git a/ide/src/trace/component/setting/utils/PluginConvertUtils.ts b/ide/src/trace/component/setting/utils/PluginConvertUtils.ts index b13e7124450398b8be60d83c2cf8ff24420b7c44..aadd5ac5a418affbb6f0eddeeb2608548f16deb4 100644 --- a/ide/src/trace/component/setting/utils/PluginConvertUtils.ts +++ b/ide/src/trace/component/setting/utils/PluginConvertUtils.ts @@ -182,8 +182,9 @@ export class PluginConvertUtils { spacesNumber: number, indentation: number, key: string, - arrValue: any + arrValue: unknown ): string { + //@ts-ignore return `${text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key)}: ${arrValue.toString()}${ this.crlf }`; @@ -194,8 +195,9 @@ export class PluginConvertUtils { spacesNumber: number, indentation: number, key: string, - arrValue: any + arrValue: unknown ): string { + //@ts-ignore return `${text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key)}: ${arrValue.toString()}${ this.crlf }`; @@ -206,8 +208,9 @@ export class PluginConvertUtils { spacesNumber: number, indentation: number, key: string, - arrValue: any + arrValue: unknown ): string { + //@ts-ignore return `${text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key)}: ${arrValue.toString()}${ this.crlf }`; @@ -218,15 +221,18 @@ export class PluginConvertUtils { spacesNumber: number, indentation: number, key: string, - arrValue: any + arrValue: unknown ): string { + //@ts-ignore if (arrValue.startsWith('VMEMINFO') || arrValue.startsWith('PMEM')) { text = `${ text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key) + //@ts-ignore }: ${arrValue.toString()}${this.crlf}`; } else { text = `${ text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key) + //@ts-ignore }: "${arrValue.trim().toString()}"${this.crlf}`; } return text; @@ -237,11 +243,12 @@ export class PluginConvertUtils { spacesNumber: number, indentation: number, key: string, - arrValue: any, + arrValue: unknown, needColon: boolean ): string { if (needColon) { text = `${text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key)}: ${this.handleObj( + //@ts-ignore arrValue, indentation + 1, needColon, @@ -252,6 +259,7 @@ export class PluginConvertUtils { text + ' '.repeat(spacesNumber).repeat(indentation + 1) + this.humpToSnake(key) + + //@ts-ignore this.handleObj(arrValue, indentation + 1, needColon, spacesNumber) }${this.crlf}`; } diff --git a/ide/src/trace/component/trace/SpChartList.ts b/ide/src/trace/component/trace/SpChartList.ts index 709550f4f41e8da4eb7d60ebe3118f88b1075f51..41d5a791f3ad56469bdcd7164379a8f9098f0aa1 100644 --- a/ide/src/trace/component/trace/SpChartList.ts +++ b/ide/src/trace/component/trace/SpChartList.ts @@ -93,7 +93,7 @@ export class SpChartList extends BaseElement { } private initChartListListener(): void { - const foldCollect1 = () => { + const foldCollect1 = (): void => { this.collect1Expand = !this.collect1Expand; if (this.collect1Expand) { this.icon1!.style.transform = 'rotateZ(0deg)'; @@ -103,9 +103,9 @@ export class SpChartList extends BaseElement { this.collectRowList1.forEach((row) => this.fragmentGroup1.appendChild(row)); } this.resizeHeight(); - } + }; this.icon1?.addEventListener('click', () => foldCollect1()); - const foldCollect2 = () => { + const foldCollect2 = (): void => { this.collect2Expand = !this.collect2Expand; if (this.collect2Expand) { this.icon2!.style.transform = 'rotateZ(0deg)'; @@ -117,39 +117,39 @@ export class SpChartList extends BaseElement { this.scrollTop = 0; } this.resizeHeight(); - } + }; this.icon2?.addEventListener('click', () => foldCollect2()); document.addEventListener('keyup', (e) => { if (e.key.toLowerCase() === 'b' && e.ctrlKey === false) { // 收藏夹有泳道时 为true - const hasChildNode1 = this.collectEl1?.hasChildNodes() || this.fragmentGroup1.hasChildNodes() - const hasChildNode2 = this.collectEl2?.hasChildNodes() || this.fragmentGroup2.hasChildNodes() + const hasChildNode1 = this.collectEl1?.hasChildNodes() || this.fragmentGroup1.hasChildNodes(); + const hasChildNode2 = this.collectEl2?.hasChildNodes() || this.fragmentGroup2.hasChildNodes(); // 两个收藏夹都有泳道时 if (hasChildNode1 && hasChildNode2) { - const flag = this.collect1Expand === this.collect2Expand + const flag = this.collect1Expand === this.collect2Expand; if (flag) { - foldCollect1() - foldCollect2() + foldCollect1(); + foldCollect2(); } else { // 两收藏夹的折叠状态不一致 优先一起折叠 if (this.collect1Expand) { - foldCollect1() + foldCollect1(); } else { - foldCollect2() + foldCollect2(); } } - return + return; } // 只影响有泳道的收藏夹 if (hasChildNode1) { - foldCollect1() + foldCollect1(); } if (hasChildNode2) { - foldCollect2() + foldCollect2(); } } - }) + }); this.removeCollectIcon1?.addEventListener('click', () => { Array.from(this.collectRowList1).forEach(row => { @@ -240,7 +240,7 @@ export class SpChartList extends BaseElement { return [...this.collectRowList1, ...this.collectRowList2]; } - getCollectRowsInfo(group: string) { + getCollectRowsInfo(group: string): unknown { return (group === SpChartList.COLLECT_G1 ? this.collectRowList1 : this.collectRowList2).map((row) => { let rowJson = { type: row.rowType, @@ -255,7 +255,7 @@ export class SpChartList extends BaseElement { } // @ts-ignore - getRowParent(obj: unknown, row: TraceRow) { + getRowParent(obj: unknown, row: TraceRow): void { if (row.parentRowEl) { // @ts-ignore if (obj.parents) { diff --git a/ide/src/trace/component/trace/base/RangeSelect.ts b/ide/src/trace/component/trace/base/RangeSelect.ts index ddc9c6d7d1d1a9cbfccbf46baf0985850c03e53b..8beeff57198b2f092b37ac3cd1f2a4ed771905b4 100644 --- a/ide/src/trace/component/trace/base/RangeSelect.ts +++ b/ide/src/trace/component/trace/base/RangeSelect.ts @@ -313,6 +313,7 @@ export class RangeSelect { itRect.y = 0; itRect.height = 0; } + let result: boolean; if ( Rect.intersect( itRect as Rect, @@ -342,11 +343,12 @@ export class RangeSelect { } TraceRow.rangeSelectObject = rangeSelect; it.rangeSelect = true; - return true; + result = true; } else { it.rangeSelect = false; - return false; + result = false; } + return result; }); if (this.rangeTraceRow && this.rangeTraceRow.length) { if (this.rangeTraceRow[0].parentRowEl) { diff --git a/ide/src/trace/component/trace/base/TraceRow.ts b/ide/src/trace/component/trace/base/TraceRow.ts index fc4f9a1cc53764cd7ca98c3321beed005308575d..a6e2f184bfd2e95776eb43cdd55bc8892b71466b 100644 --- a/ide/src/trace/component/trace/base/TraceRow.ts +++ b/ide/src/trace/component/trace/base/TraceRow.ts @@ -190,7 +190,7 @@ export class TraceRow extends HTMLElement { static isUserInteraction: boolean; asyncFuncName: string | Array | undefined | null; asyncFuncNamePID: number | undefined | null; - asyncFuncThreadName: Array| string | undefined | null; + asyncFuncThreadName: Array | string | undefined | null; translateY: number = 0; //single canvas offsetY; // @ts-ignore childrenList: Array> = []; // @ts-ignore @@ -221,12 +221,12 @@ export class TraceRow extends HTMLElement { isOffScreen: boolean; skeleton?: boolean; } = { - canvasNumber: 1, - alpha: false, - contextId: '2d', - isOffScreen: true, - skeleton: false, - }, + canvasNumber: 1, + alpha: false, + contextId: '2d', + isOffScreen: true, + skeleton: false, + }, traceId?: string ) { super(); @@ -588,16 +588,18 @@ export class TraceRow extends HTMLElement { maxKey: string | undefined = undefined ): T | undefined { if (this.isHover) { + let item: T | undefined; if (maxKey) { let arr = this.dataListCache .filter((re) => re.frame && isFrameContainPoint(re.frame, this.hoverX, this.hoverY, strict, offset)) // @ts-ignore .sort((targetA, targetB) => (targetB as unknown)[maxKey] - (targetA as unknown)[maxKey]); - return arr[0]; + item = arr[0]; } else { - return this.dataListCache.find( + item = this.dataListCache.find( (re) => re.frame && isFrameContainPoint(re.frame, this.hoverX, this.hoverY, strict, offset) ); } + return item } } @@ -944,11 +946,10 @@ export class TraceRow extends HTMLElement { event.stopPropagation(); }); - let that = this; - window.addEventListener('storage', function (e): void { + window.addEventListener('storage', (e): void => { if (e.storageArea === sessionStorage) { if (e.key === 'freqInfoData') { - that.onRowCheckFileChangeHandler?.(); + this.onRowCheckFileChangeHandler?.(); } } }); // @ts-ignore @@ -1003,7 +1004,7 @@ export class TraceRow extends HTMLElement { } // @ts-ignore this.rowSettingPop!.visible = isVisible; - TraceRow.ROW_TYPE_HIPERF_THREADTYPE.push(Number(this.rowSettingTree!.getCheckdKeys())) //@ts-ignore + TraceRow.ROW_TYPE_HIPERF_THREADTYPE.push(Number(this.rowSettingTree!.getCheckdKeys())); //@ts-ignore this.onRowSettingChangeHandler?.(this.rowSettingTree!.getCheckdKeys(), this.rowSettingTree!.getCheckdNodes()); }; this.rowSettingPop?.addEventListener('mouseenter', (): void => { @@ -1527,7 +1528,7 @@ export class TraceRow extends HTMLElement { } } - focusContain(e: MouseEvent, inFavoriteArea: boolean, prevScrollY: number = 0,favoriteHeight: number): boolean { + focusContain(e: MouseEvent, inFavoriteArea: boolean, prevScrollY: number = 0, favoriteHeight: number): boolean { let _y = (e.currentTarget as HTMLElement).getBoundingClientRect().y; let myRect = this.getBoundingClientRect(); let x = e.offsetX; diff --git a/ide/src/trace/component/trace/base/TraceRowConfig.ts b/ide/src/trace/component/trace/base/TraceRowConfig.ts index 51a65fc44b96e397318411c4c078a0355d4ecfaa..d0fd6d9ebf1d94895cc2722210f116df87a9f2ef 100644 --- a/ide/src/trace/component/trace/base/TraceRowConfig.ts +++ b/ide/src/trace/component/trace/base/TraceRowConfig.ts @@ -85,7 +85,7 @@ export class TraceRowConfig extends BaseElement { TraceRowConfig.allTraceRowList.push(...this.traceRowList!); this.refreshAllConfig(true, true); // 鼠标移入该页面,隐藏泳道图tip - this.onmouseenter = () => { + this.onmouseenter = (): void => { this.spSystemTrace!.tipEL!.style.display = 'none'; this.spSystemTrace!.hoverStructNull(); this.spSystemTrace!.refreshCanvas(true); @@ -430,7 +430,7 @@ export class TraceRowConfig extends BaseElement { this.resetButton!.addEventListener('click', () => { this.loadTempConfig(this.defaultConfigList); this.resetChartTable(); - }) + }); } private initSwitchClickListener(): void { @@ -682,7 +682,7 @@ export class TraceRowConfig extends BaseElement { currentChartId: string, scene: Array, findChartNames: Array - ) { + ): void { if (this.traceRowList) { for (let index = 0; index < this.traceRowList.length; index++) { let item = this.traceRowList[index]; diff --git a/ide/src/trace/component/trace/base/TraceSheet.ts b/ide/src/trace/component/trace/base/TraceSheet.ts index 9e335cba776da9c5063b5e418df4f61eb7f6dbb2..3fd6f950bcf683c1c26b3ab2cde5522e4d0423f3 100644 --- a/ide/src/trace/component/trace/base/TraceSheet.ts +++ b/ide/src/trace/component/trace/base/TraceSheet.ts @@ -253,14 +253,17 @@ export class TraceSheet extends BaseElement { private tdClickEvent(): void { this.getComponentByID('box-spt')?.addEventListener('td-click', (evt: any) => { - this.tdClickHandler(evt)}); + this.tdClickHandler(evt) + }); this.getComponentByID('box-pts')?.addEventListener('td-click', (evt: any) => { - this.tdClickHandler(evt)}); + this.tdClickHandler(evt) + }); this.getComponentByID('box-thread-states')?.addEventListener('td-click', (evt: any) => { this.tdClickHandler(evt); }); this.getComponentByID('box-slices')?.addEventListener('td-click', (evt: any) => { - this.tdSliceClickHandler(evt)}) + this.tdSliceClickHandler(evt) + }) } private perfAnalysisListener(evt: MouseEvent): void { @@ -653,7 +656,7 @@ export class TraceSheet extends BaseElement { displayClockData = (data: ClockStruct): Promise => this.displayTab('current-selection').setClockData(data); displayDmaFenceData = (data: DmaFenceStruct, rowData: unknown): void =>//展示tab页内容 - // @ts-ignore + // @ts-ignore this.displayTab('current-selection').setDmaFenceData(data, rowData); displayPerfToolsData = (data: PerfToolStruct): void => this.displayTab('current-selection').setPerfToolsData(data); @@ -1094,16 +1097,16 @@ export class TraceSheet extends BaseElement { pane.hidden = false; this.litTabs!.activeByKey(pane.key); //显示key值对应的Tab页 // @ts-ignore - pane.tab = e.detail.tabTitle ? e.detail.tabTitle : Utils.transferPTSTitle(e.detail.title);//设置Tab页标题,有的标题可直接用,有的标题需在此转换成需要展示的字符串 + pane.tab = e.detail.tabTitle ? e.detail.tabTitle : Utils.transferPTSTitle(e.detail.title);//设置Tab页标题,有的标题可直接用,有的标题需在此转换成需要展示的字符串 let param = new BoxJumpParam(); param.traceId = this.selection!.traceId; param.leftNs = this.selection!.leftNs; param.rightNs = this.selection!.rightNs; - param.cpus = this.selection!.cpus; + param.cpus = this.selection!.cpus; // @ts-ignore - param.state = e.detail.summary ? '' : e.detail.state; + param.state = e.detail.summary ? '' : e.detail.state; // @ts-ignore - param.processId = e.detail.summary ? this.selection.processIds : e.detail.pid; + param.processId = e.detail.summary ? this.selection.processIds : e.detail.pid; // @ts-ignore param.threadId = e.detail.summary ? this.selection.threadIds : e.detail.tid; param.isJumpPage = true;// @ts-ignore @@ -1135,7 +1138,7 @@ export class TraceSheet extends BaseElement { param.isJumpPage = true; (pane.children.item(0) as TabPaneSliceChild).data = param; } - + clearMemory(): void { let allTabs = Array.from(this.shadowRoot?.querySelectorAll('#tabs lit-tabpane').values() || []); allTabs.forEach((tab) => { diff --git a/ide/src/trace/component/trace/base/TraceSheetConfig.ts b/ide/src/trace/component/trace/base/TraceSheetConfig.ts index cc3bd205a548cab1606a36c0925b14cab9fc85c3..851d71a233fee6aae7967bd16a7e7faf5dd35866 100644 --- a/ide/src/trace/component/trace/base/TraceSheetConfig.ts +++ b/ide/src/trace/component/trace/base/TraceSheetConfig.ts @@ -222,7 +222,7 @@ export let tabConfig: unknown = { 'box-perf-profile': { title: 'Perf Profile', type: TabpanePerfProfile, - require: (param: SelectionParam) => param.perfSampleIds.length > 0 || param.threadIds.length > 0, + require: (param: SelectionParam) => param.perfSampleIds.length > 0 || param.threadIds.length > 0, }, 'box-perf-sample': { title: 'Sample List', diff --git a/ide/src/trace/component/trace/search/Search.ts b/ide/src/trace/component/trace/search/Search.ts index 47a10487e76634946c1a4dc55667acec96662b39..8d97d0541af31451b2f7eb4a54996903c9a21605 100644 --- a/ide/src/trace/component/trace/search/Search.ts +++ b/ide/src/trace/component/trace/search/Search.ts @@ -279,12 +279,14 @@ export class LitSearch extends BaseElement { }); this.keyUpListener(); //阻止事件冒泡 - this.shadowRoot?.querySelector("input[name='retarge_index']")?.addEventListener('keydown', (e: any) => { + this.shadowRoot?.querySelector("input[name='retarge_index']")?.addEventListener('keydown', (e: unknown) => { SpSystemTrace.isKeyUp = false; + // @ts-ignore e.stopPropagation(); }); - this.shadowRoot?.querySelector("input[name='retarge_index']")?.addEventListener('keypress', (e: any) => { + this.shadowRoot?.querySelector("input[name='retarge_index']")?.addEventListener('keypress', (e: unknown) => { SpSystemTrace.isKeyUp = false; + // @ts-ignore e.stopPropagation(); }); } diff --git a/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts b/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts index 5bf9b943473a3503c87ad2aebe2ab68eae46ce9d..c114111fd04cc327a8dcd1e96b5c56dc5c1b0b05 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneCurrent.ts @@ -221,7 +221,7 @@ export class TabPaneCurrent extends BaseElement { enable: true, }); document.dispatchEvent(new CustomEvent('slices-change', { detail: this.slicesTimeList[i - 1] })); - document.dispatchEvent(new CustomEvent('remarksFocus-change',{ detail: 'remarks-focus' })); + document.dispatchEvent(new CustomEvent('remarksFocus-change', { detail: 'remarks-focus' })); this.systemTrace?.refreshCanvas(true); } @@ -244,7 +244,7 @@ export class TabPaneCurrent extends BaseElement { // @ts-ignore this.slicesTimeList[i - 1].text = event?.target.value; document.dispatchEvent(new CustomEvent('slices-change', { detail: this.slicesTimeList[i - 1] })); - document.dispatchEvent(new CustomEvent('remarksFocus-change',{ detail: '' })); + document.dispatchEvent(new CustomEvent('remarksFocus-change', { detail: '' })); this.setTableData(); this.systemTrace?.refreshCanvas(true); } diff --git a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts index ffdff6590214a66042dd07a5d67d4ed4c9180045..54bec7a472a5e0adca8dfd91b8117c977878ca0f 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneCurrentSelection.ts @@ -994,7 +994,8 @@ export class TabPaneCurrentSelection extends BaseElement { let [preData, nextData] = this.sortByNearData(result[3], data, list); this.setWakeupData(fromBean, wakeUps, list); if (args.length > 0) { - args.forEach((arg: any) => { + args.forEach((arg: unknown) => { + // @ts-ignore list.push({ name: arg.keyName, value: arg.strValue }); }); } diff --git a/ide/src/trace/component/trace/sheet/TabPaneFilter.html.ts b/ide/src/trace/component/trace/sheet/TabPaneFilter.html.ts index 5ef5e8bdf613f0fe01945842d9124f49fbcf1f7e..74f764380efda6d7ff199ba379196d9483948edb 100644 --- a/ide/src/trace/component/trace/sheet/TabPaneFilter.html.ts +++ b/ide/src/trace/component/trace/sheet/TabPaneFilter.html.ts @@ -430,4 +430,4 @@ margin-left: 15px; `; export const TabPaneFilterHtml = (input: string): string => { return replacePlaceholders(html, input); -} +}; diff --git a/ide/src/trace/component/trace/sheet/ability/TabPanePurgPinComparisonAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPanePurgPinComparisonAbility.ts index 4f8d00e52da2e2d2903b5202f41d150df11946ea..6e39a7df35e1f9cabd0f9a1d0a23afdc3d2dcff6 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPanePurgPinComparisonAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPanePurgPinComparisonAbility.ts @@ -38,9 +38,8 @@ export class TabPanePurgPinComparisonAbility extends BaseElement { public totalData(purgePinComParam: SelectionParam | unknown, dataList: unknown): void { if (this.purgeablePinTable) { //@ts-ignore - this.purgeablePinTable.shadowRoot?.querySelector('.table').style.height = `${ - this.parentElement!.clientHeight - 45 - }px`; + this.purgeablePinTable.shadowRoot?.querySelector('.table').style.height = `${this.parentElement!.clientHeight - 45 + }px`; } this.purgeablePinSource = []; let fileArr: unknown[] = []; // @ts-ignore @@ -56,7 +55,6 @@ export class TabPanePurgPinComparisonAbility extends BaseElement { } private initSelect(fileStartNs: number, purgePinComFileArr: Array): void { - let that = this; let input = this.selectEl!.shadowRoot?.querySelector('input') as HTMLInputElement; this.selectEl!.innerHTML = ''; let option = new LitSelectOption(); @@ -70,18 +68,19 @@ export class TabPanePurgPinComparisonAbility extends BaseElement { this.selectEl!.defaultValue = purgePinComFileArr[0].name; // @ts-ignore this.selectEl!.placeholder = purgePinComFileArr[0].name; this.selectEl!.dataSource = purgePinComFileArr; - this.selectEl!.querySelectorAll('lit-select-option').forEach((a) => { - a.addEventListener('onSelected', (e: unknown) => { + let selectOption = this.selectEl!.querySelectorAll('lit-select-option'); + for (const item of selectOption) { + item.addEventListener('onSelected', (e: unknown) => { for (let f of purgePinComFileArr) { // @ts-ignore if (input.value === f.name) { // @ts-ignore - that.updateComparisonData(fileStartNs, f.startNs); + this.updateComparisonData(fileStartNs, f.startNs); } } // @ts-ignore e.stopPropagation(); }); - }); + } } // @ts-ignore private async updateComparisonData(baseTime: number, targetTime: number): Promise { diff --git a/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotalComparisonAbility.ts b/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotalComparisonAbility.ts index 5ebcae83d8df8aee97488ac3490a8295e3141e87..d2a682bcd59de18b4b450280eaf8143dc8532f63 100644 --- a/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotalComparisonAbility.ts +++ b/ide/src/trace/component/trace/sheet/ability/TabPanePurgTotalComparisonAbility.ts @@ -38,9 +38,8 @@ export class TabPanePurgTotalComparisonAbility extends BaseElement { public totalData(purgeTotalComParam: SelectionParam | unknown, dataList: unknown): void { if (this.purgeableTotalTable) { //@ts-ignore - this.purgeableTotalTable.shadowRoot?.querySelector('.table').style.height = `${ - this.parentElement!.clientHeight - 45 - }px`; + this.purgeableTotalTable.shadowRoot?.querySelector('.table').style.height = `${this.parentElement!.clientHeight - 45 + }px`; } this.purgeableTotalSource = []; let fileArr: unknown[] = []; // @ts-ignore @@ -70,8 +69,9 @@ export class TabPanePurgTotalComparisonAbility extends BaseElement { this.selectEl!.defaultValue = purgeTotalComFileArr[0].name; // @ts-ignore this.selectEl!.placeholder = purgeTotalComFileArr[0].name; this.selectEl!.dataSource = purgeTotalComFileArr; - this.selectEl!.querySelectorAll('lit-select-option').forEach((a): void => { - a.addEventListener('onSelected', (e: unknown): void => { + let selectOption = this.selectEl!.querySelectorAll('lit-select-option'); + for (const item of selectOption) { + item.addEventListener('onSelected', (e: unknown): void => { for (let f of purgeTotalComFileArr) { // @ts-ignore if (input.value === f.name) { @@ -81,7 +81,7 @@ export class TabPanePurgTotalComparisonAbility extends BaseElement { } // @ts-ignore e.stopPropagation(); }); - }); + } } private async updateComparisonData(baseTime: number, targetTime: number): Promise { diff --git a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneComparison.ts b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneComparison.ts index 2b01b44b1cc8ef37c91ec35d8418814d935b64d2..13063d0e03b94c00048fd40daa7c3d7da10125f7 100644 --- a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneComparison.ts +++ b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneComparison.ts @@ -61,7 +61,6 @@ export class TabPaneComparison extends BaseElement { this.clear(); this.retainerTableEl!.snapshotDataSource = []; let fileArr: HeapSnapshotStruct[] = []; - let that = this; for (let file of dataListCache) { if (file.id !== data.id) { fileArr.push(file); @@ -72,7 +71,7 @@ export class TabPaneComparison extends BaseElement { this.initSelect(data.id, fileArr); this.baseFileId = data.id; this.targetFileId = fileArr[0].id; - that.updateComparisonData(data.id, fileArr[0].id); + this.updateComparisonData(data.id, fileArr[0].id); new ResizeObserver((): void => { this.comparisonTableEl!.style.height = '100%'; this.comparisonTableEl!.reMeauseHeight(); @@ -94,7 +93,6 @@ export class TabPaneComparison extends BaseElement { } initSelect(fileId: number, comFileArr: Array): void { - let that = this; let input = this.selectEl!.shadowRoot?.querySelector('input') as HTMLInputElement; this.selectEl!.innerHTML = ''; this.selectEl!.defaultValue = comFileArr[0].name || ''; @@ -107,18 +105,19 @@ export class TabPaneComparison extends BaseElement { if (comFileArr[0].name) { option.setAttribute('value', comFileArr[0].name); } - this.selectEl!.querySelectorAll('lit-select-option').forEach((a): void => { - a.addEventListener('onSelected', (e): void => { + let selectOption = this.selectEl!.querySelectorAll('lit-select-option'); + for (const item of selectOption) { + item.addEventListener('onSelected', (e): void => { this.comparisonTable!.scrollTop = 0; this.retainerTableEl!.snapshotDataSource = []; for (let f of comFileArr) { if (input.value === f.name) { - that.updateComparisonData(fileId, f.id); + this.updateComparisonData(fileId, f.id); } } e.stopPropagation(); }); - }); + } } sortComprisonByColumn(column: string, sort: number): void { @@ -376,38 +375,37 @@ export class TabPaneComparison extends BaseElement { if (this.retainsData && this.retainsData.length > 0) { this.retainsDataInit(); let i = 0; - let that = this; if (this.retainsData[0].distance > 1) { this.retainsData[0].getChildren(); this.retainsData[0].expanded = false; } let retainsTable = (): void => { const getList = (list: Array): void => { - list.forEach((structRow): void => { - let shallow = `${Math.round((structRow.shallowSize / this.fileSize) * 100)}%`; - let retained = `${Math.round((structRow.retainedSize / this.fileSize) * 100)}%`; - structRow.shallowPercent = shallow; - structRow.retainedPercent = retained; - let nodeId = `${structRow.nodeName} @${structRow.id}`; - structRow.objectName = `${structRow.edgeName}\xa0` + 'in' + `\xa0${nodeId}`; - if (structRow.distance >= 100000000 || structRow.distance === -5) { + for (const item of list) { + let shallow = `${Math.round((item.shallowSize / this.fileSize) * 100)}%`; + let retained = `${Math.round((item.retainedSize / this.fileSize) * 100)}%`; + item.shallowPercent = shallow; + item.retainedPercent = retained; + let nodeId = `${item.nodeName} @${item.id}`; + item.objectName = `${item.edgeName}\xa0` + 'in' + `\xa0${nodeId}`; + if (item.distance >= 100000000 || item.distance === -5) { // @ts-ignore - structRow.distance = '-'; + item.distance = '-'; } i++; // @ts-ignore - if (i < that.retainsData[0].distance - 1 && list[0].distance !== '-') { + if (i < this.retainsData[0].distance - 1 && list[0].distance !== '-') { list[0].getChildren(); list[0].expanded = false; - if (structRow.hasNext) { - getList(structRow.children); + if (item.hasNext) { + getList(item.children); } } else { return; } - }); + } }; - getList(that.retainsData[0].children); + getList(this.retainsData[0].children); }; retainsTable(); this.retainerTableEl!.snapshotDataSource = this.retainsData; @@ -475,7 +473,6 @@ export class TabPaneComparison extends BaseElement { if (retainerNext.status) { retainerNext.getChildren(); let i = 0; - let that = this; let retainsTable = (): void => { const getList = (comList: Array): void => { comList.forEach((row): void => { @@ -491,7 +488,7 @@ export class TabPaneComparison extends BaseElement { } i++; // @ts-ignore - if (i < that.retainsData[0].distance - 1 && comList[0].distance !== '-') { + if (i < this.retainsData[0].distance - 1 && comList[0].distance !== '-') { comList[0].getChildren(); comList[0].expanded = false; if (row.hasNext) { diff --git a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneJsCpu.ts b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneJsCpu.ts index 4e239182bf4a8a1faff01f8bb7ede441935366cf..63f7deda8cde20b279389e30fb19725a7db1d855 100644 --- a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneJsCpu.ts +++ b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneJsCpu.ts @@ -207,9 +207,8 @@ export class TabPaneJsCpuCallTree extends BaseElement { } private sortTree(arr: Array): Array { - const that = this; - function defaultSort(callTreeLeftData: JsCpuProfilerTabStruct, callTreeRightData: JsCpuProfilerTabStruct): number { - if (that.currentType === that.TYPE_TOP_DOWN) { + const defaultSort = (callTreeLeftData: JsCpuProfilerTabStruct, callTreeRightData: JsCpuProfilerTabStruct): number => { + if (this.currentType === this.TYPE_TOP_DOWN) { return callTreeRightData.totalTime - callTreeLeftData.totalTime; } else { return callTreeRightData.selfTime - callTreeLeftData.selfTime; diff --git a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts index c09252d5e30c267d09dfa4d069b5dcd4225d3365..b187d5927ebf8e19f9658c480b2637eb0ba0e08f 100644 --- a/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts +++ b/ide/src/trace/component/trace/sheet/ark-ts/TabPaneSummary.ts @@ -323,42 +323,39 @@ export class TabPaneSummary extends BaseElement { } clickToggleTable(): void { - let lis = this.shadowRoot?.querySelectorAll('li'); - let that = this; - lis!.forEach((li: HTMLElement, i: number) => { - lis![i].onclick = function (): void { - for (let i = 0; i < lis!.length; i++) { - lis![i].className = ''; - } - switch (li.textContent) { + let lis = this.shadowRoot?.querySelectorAll('li')!; + for (const item of lis) { + item.onclick = (): void => { + item.className = ''; + switch (item.textContent) { case 'Retainers': - that.stackTable!.style.display = 'none'; - that.stackText!.style.display = 'none'; - that.tbs!.style.display = 'flex'; - that.tbs!.snapshotDataSource = that.retainsData; + this.stackTable!.style.display = 'none'; + this.stackText!.style.display = 'none'; + this.tbs!.style.display = 'flex'; + this.tbs!.snapshotDataSource = this.retainsData; break; case 'Allocation stack': - if (that.stackData.length > 0) { - that.stackText!.style.display = 'none'; - that.stackTable!.style.display = 'flex'; - that.stackTable!.recycleDataSource = that.stackData; + if (this.stackData.length > 0) { + this.stackText!.style.display = 'none'; + this.stackTable!.style.display = 'flex'; + this.stackTable!.recycleDataSource = this.stackData; } else { - that.stackText!.style.display = 'flex'; - if (that.retainsData === undefined || that.retainsData.length === 0) { - that.stackText!.textContent = ''; + this.stackText!.style.display = 'flex'; + if (this.retainsData === undefined || this.retainsData.length === 0) { + this.stackText!.textContent = ''; } else { - that.stackText!.textContent = + this.stackText!.textContent = 'Stack was not recorded for this object because it had been allocated before ' + 'this profile recording started.'; } } - that.tbs!.style.display = 'none'; + this.tbs!.style.display = 'none'; break; } // @ts-ignore this.className = 'active'; }; - }); + } } classFilter(): void { @@ -587,7 +584,6 @@ export class TabPaneSummary extends BaseElement { this.retainsData[0].expanded = false; } let i = 0; - let that = this; let retainsTable = (): void => { const getList = (list: Array): void => { list.forEach((summaryRow: ConstructorItem) => { @@ -603,7 +599,7 @@ export class TabPaneSummary extends BaseElement { } i++; //@ts-ignore - if (i < that.retainsData[0].distance - 1 && list[0].distance !== '-') { + if (i < this.retainsData[0].distance - 1 && list[0].distance !== '-') { list[0].getChildren(); list[0].expanded = false; if (summaryRow.hasNext) { @@ -614,7 +610,7 @@ export class TabPaneSummary extends BaseElement { } }); }; - getList(that.retainsData[0].children); + getList(this.retainsData[0].children); }; retainsTable(); this.tbs!.snapshotDataSource = this.retainsData; diff --git a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstruction.ts b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstruction.ts index 23aed73c275a57893b266d74ac22730aec6d8fa5..8e2128a1c886c60165bef22d0682a271816f945b 100644 --- a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstruction.ts +++ b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstruction.ts @@ -27,9 +27,9 @@ export class TabPaneSampleInstruction extends BaseElement { private instructionEle: HTMLCanvasElement | undefined | null; private ctx: CanvasRenderingContext2D | undefined | null; private textEle: HTMLSpanElement | undefined | null; - private instructionArray: Array = []; - private instructionData: Array = []; - private flattenTreeData: Array = []; + private instructionArray: Array = []; + private instructionData: Array = []; + private flattenTreeData: Array = []; private isUpdateCanvas = false; private canvasX = -1; // 鼠标当前所在画布x坐标 private canvasY = -1; // 鼠标当前所在画布y坐标 @@ -38,7 +38,7 @@ export class TabPaneSampleInstruction extends BaseElement { private hintContent = ''; //悬浮框内容 private floatHint!: HTMLDivElement | undefined | null; //悬浮框 private canvasScrollTop = 0; // tab页上下滚动位置 - private hoverSampleStruct: any | undefined; + private hoverSampleStruct: unknown | undefined; private isChecked: boolean = false; private maxDepth = 0; @@ -117,7 +117,8 @@ export class TabPaneSampleInstruction extends BaseElement { this.instructionEle!.onmouseleave = () => { this.hideTip(); }; - document.addEventListener('sample-popver-change', (e: any) => { + document.addEventListener('sample-popver-change', (e: unknown) => { + // @ts-ignore const select = Number(e.detail.select); this.isChecked = Boolean(select); this.hoverSampleStruct = undefined; @@ -143,9 +144,11 @@ export class TabPaneSampleInstruction extends BaseElement { } } - setSampleInstructionData(clickData: SampleStruct, reqProperty: any): void { + setSampleInstructionData(clickData: SampleStruct, reqProperty: unknown): void { this.hoverSampleStruct = undefined; + // @ts-ignore this.instructionData = reqProperty.uniqueProperty; + // @ts-ignore this.flattenTreeData = reqProperty.flattenTreeArray; this.setRelationDataProperty(this.flattenTreeData, clickData); this.updateCanvas(this.clientWidth); @@ -167,7 +170,9 @@ export class TabPaneSampleInstruction extends BaseElement { this.ctx!.clearRect(0, 0, this.instructionEle!.width, this.instructionEle!.height); this.ctx!.beginPath(); for (const key in this.instructionArray) { + // @ts-ignore for (let i = 0; i < this.instructionArray[key].length; i++) { + // @ts-ignore const cur = this.instructionArray[key][i]; this.draw(this.ctx!, cur); } @@ -218,8 +223,12 @@ export class TabPaneSampleInstruction extends BaseElement { if (!hoverNode) { return; } + // @ts-ignore this.hintContent = `${hoverNode.detail}(${hoverNode.name})
    - ${this.isChecked ? hoverNode.hoverCycles : hoverNode.hoverInstructions} + // @ts-ignore + ${ + // @ts-ignore + this.isChecked ? hoverNode.hoverCycles : hoverNode.hoverInstructions} `; } @@ -247,7 +256,8 @@ export class TabPaneSampleInstruction extends BaseElement { * @param y * @returns */ - isContains(frame: any, x: number, y: number): boolean { + isContains(frame: unknown, x: number, y: number): boolean { + // @ts-ignore return x >= frame.x && x <= frame.x + frame.width && frame.y <= y && y <= frame.y + frame.height; } @@ -260,35 +270,46 @@ export class TabPaneSampleInstruction extends BaseElement { const clientWidth = this.instructionEle!.width; //将数据转换为层级结构 const instructionArray = this.flattenTreeData + // @ts-ignore .filter((item: SampleStruct) => (isCycles ? item.cycles : item.instructions)) - .reduce((pre: any, cur: any) => { + .reduce((pre: unknown, cur: unknown) => { + // @ts-ignore (pre[`${cur.depth}`] = pre[`${cur.depth}`] || []).push(cur); return pre; }, {}); + // @ts-ignore for (const key in instructionArray) { + // @ts-ignore for (let i = 0; i < instructionArray[key].length; i++) { + // @ts-ignore const cur = instructionArray[key][i]; //第一级节点直接将宽度设置为容器宽度 if (key === '0') { this.setSampleFrame(cur, clientWidth, 0); } else { //获取上一层级节点数据 + // @ts-ignore const preList = instructionArray[Number(key) - 1]; //获取当前节点的父节点 const parentNode = preList.find((node: SampleStruct) => node.name === cur.parentName); //计算当前节点下指令数之和 用于计算每个节点所占的宽度比 const total = isCycles + // @ts-ignore ? instructionArray[key] - .filter((i: any) => i.parentName === parentNode.name) - .reduce((pre: number, cur: SampleStruct) => pre + cur.cycles!, 0) + // @ts-ignore + .filter((i: unknown) => i.parentName === parentNode.name) + .reduce((pre: number, cur: SampleStruct) => pre + cur.cycles!, 0) + // @ts-ignore : instructionArray[key] - .filter((i: any) => i.parentName === parentNode.name) - .reduce((pre: number, cur: SampleStruct) => pre + cur.instructions!, 0); + // @ts-ignore + .filter((i: unknown) => i.parentName === parentNode.name) + .reduce((pre: number, cur: SampleStruct) => pre + cur.instructions!, 0); const curWidth = isCycles ? cur.cycles : cur.instructions; const width = Math.floor(parentNode.frame.width * (curWidth / total)); if (i === 0) { this.setSampleFrame(cur, width, parentNode.frame.x); } else { + // @ts-ignore const preNode = instructionArray[key][i - 1]; preNode.parentName === parentNode.name ? this.setSampleFrame(cur, width, preNode.frame.x + preNode.frame.width) @@ -297,11 +318,14 @@ export class TabPaneSampleInstruction extends BaseElement { } } } + // @ts-ignore this.instructionArray = instructionArray; this.ctx!.clearRect(0, 0, this.instructionEle!.width, this.instructionEle!.height); this.ctx!.beginPath(); for (const key in this.instructionArray) { + // @ts-ignore for (let i = 0; i < this.instructionArray[key].length; i++) { + // @ts-ignore const cur = this.instructionArray[key][i]; this.draw(this.ctx!, cur); } @@ -331,9 +355,12 @@ export class TabPaneSampleInstruction extends BaseElement { * @param canvasY * @returns */ - searchDataByCoord(nodes: any, canvasX: number, canvasY: number) { + searchDataByCoord(nodes: unknown, canvasX: number, canvasY: number) { + // @ts-ignore for (const key in nodes) { + // @ts-ignore for (let i = 0; i < nodes[key].length; i++) { + // @ts-ignore const cur = nodes[key][i]; if (this.isContains(cur.frame, canvasX, canvasY)) { return cur; @@ -357,6 +384,7 @@ export class TabPaneSampleInstruction extends BaseElement { const textColor = ColorUtils.FUNC_COLOR[ColorUtils.hashFunc(data.name || '', data.depth!, ColorUtils.FUNC_COLOR.length)]; ctx.lineWidth = 0.4; + // @ts-ignore if (this.hoverSampleStruct && data.name == this.hoverSampleStruct.name) { if (spApplication.dark) { ctx.strokeStyle = '#fff'; @@ -382,43 +410,55 @@ export class TabPaneSampleInstruction extends BaseElement { * @param relationData * @param clickData */ - setRelationDataProperty(relationData: Array, clickData: SampleStruct): void { - const propertyData = this.instructionData.find((subArr: any) => + setRelationDataProperty(relationData: Array, clickData: SampleStruct): void { + const propertyData = this.instructionData.find((subArr: unknown) => + // @ts-ignore subArr.some((obj: SampleStruct) => obj.begin === clickData.begin) ); //获取非unknown数据 - const knownRelation = relationData.filter((relation) => relation['name'].indexOf('unknown') < 0); + const knownRelation = relationData.filter((relation) => relation.name.indexOf('unknown') < 0); propertyData.forEach((property: any) => { - const relation = knownRelation.find((relation) => relation['name'] === property['func_name']); - relation['instructions'] = Math.ceil(property['instructions']) || 1; - relation['hoverInstructions'] = Math.ceil(property['instructions']); - relation['cycles'] = Math.ceil(property['cycles']) || 1; - relation['hoverCycles'] = Math.ceil(property['cycles']); - this.maxDepth = Math.max(this.maxDepth, relation['depth']); + const relation = knownRelation.find((relation) => relation.name === property.func_name); + relation.instructions = Math.ceil(property.instructions) || 1; + relation.hoverInstructions = Math.ceil(property.instructions); + relation.cycles = Math.ceil(property.cycles) || 1; + relation.hoverCycles = Math.ceil(property.cycles); + this.maxDepth = Math.max(this.maxDepth, relation.depth); }); //获取所有unknown数据 let instructionSum = 0; let cyclesSum = 0; let hoverInstructionsSum = 0; let hoverCyclesSum = 0; - const unknownRelation = relationData.filter((relation) => relation['name'].indexOf('unknown') > -1); + // @ts-ignore + const unknownRelation = relationData.filter((relation) => relation.name.indexOf('unknown') > -1); if (unknownRelation.length > 0) { unknownRelation.forEach((unknownItem) => { instructionSum = 0; cyclesSum = 0; hoverInstructionsSum = 0; hoverCyclesSum = 0; + // @ts-ignore const children = unknownItem['children']; for (const key in children) { - const it = relationData.find((relation) => relation['name'] === key); + // @ts-ignore + const it = relationData.find((relation) => relation.name === key); + // @ts-ignore instructionSum += it['instructions'] ?? 0; + // @ts-ignore cyclesSum += it['cycles'] ?? 0; + // @ts-ignore hoverInstructionsSum += it['hoverInstructions'] ?? 0; + // @ts-ignore hoverCyclesSum += it['hoverCycles'] ?? 0; } + // @ts-ignore unknownItem['instructions'] = instructionSum; + // @ts-ignore unknownItem['hoverInstructions'] = hoverInstructionsSum; + // @ts-ignore unknownItem['cycles'] = cyclesSum; + // @ts-ignore unknownItem['hoverCycles'] = hoverCyclesSum; }); } diff --git a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionDistributions.ts b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionDistributions.ts index bb334e6cbedabf95e0d9336e009816d27e82b43c..a7c7dd0fc774def6ee0f38c29d86fa5a34637c17 100644 --- a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionDistributions.ts +++ b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionDistributions.ts @@ -25,17 +25,17 @@ const barWidth = 2; // 柱子宽度 export class TabPaneSampleInstructionDistributions extends BaseElement { private instructionChartEle: HTMLCanvasElement | undefined | null; private ctx: CanvasRenderingContext2D | undefined | null; - private onReadableData: Array = []; + private onReadableData: Array = []; private hintContent = ''; //悬浮框内容 private floatHint!: HTMLDivElement | undefined | null; //悬浮框 private canvasScrollTop = 0; // tab页上下滚动位置 private isUpdateCanvas = false; - private cacheData: Array = []; + private cacheData: Array = []; private canvasX = -1; // 鼠标当前所在画布x坐标 private canvasY = -1; // 鼠标当前所在画布y坐标 private startX = 0; // 画布相对于整个界面的x坐标 private startY = 0; // 画布相对于整个界面的y坐标 - private hoverBar: any; + private hoverBar: unknown; private isChecked: boolean = false; private xCount = 0; //x轴刻度个数 private xMaxValue = 0; //x轴上数据最大值 @@ -105,7 +105,8 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { this.instructionChartEle!.onmouseleave = () => { this.hideTip(); }; - document.addEventListener('sample-popver-change', (e: any) => { + document.addEventListener('sample-popver-change', (e: unknown) => { + // @ts-ignore const select = Number(e.detail.select); this.isChecked = Boolean(select); this.calInstructionRangeCount(this.isChecked); @@ -135,8 +136,10 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { * @param canvasY * @returns */ - searchDataByCoord(nodes: any, canvasX: number, canvasY: number) { + searchDataByCoord(nodes: unknown, canvasX: number, canvasY: number) { + // @ts-ignore for (let i = 0; i < nodes.length; i++) { + // @ts-ignore const element = nodes[i]; if (this.isContains(element, canvasX, canvasY)) { return element; @@ -206,8 +209,12 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { } const detail = hoverNode!; this.hintContent = ` - ${detail.instruct}
    - ${parseFloat(detail.heightPer)} + ${ + // @ts-ignore + detail.instruct}
    + ${ + // @ts-ignore + parseFloat(detail.heightPer)} `; } @@ -218,7 +225,8 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { * @param y * @returns */ - isContains(point: any, x: number, y: number): boolean { + isContains(point: unknown, x: number, y: number): boolean { + // @ts-ignore return x >= point.x && x <= point.x + 2 && point.y <= y && y <= point.y + point.height; } @@ -232,12 +240,16 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { const count = this.onReadableData.length; let instructions = {}; if (isCycles) { - instructions = this.onReadableData.reduce((pre: any, current: any) => { + // @ts-ignore + instructions = this.onReadableData.reduce((pre: unknown, current: unknown) => { + // @ts-ignore (pre[`${Math.ceil(current.cycles)}`] = pre[`${Math.ceil(current.cycles)}`] || []).push(current); return pre; }, {}); } else { - instructions = this.onReadableData.reduce((pre: any, current: any) => { + // @ts-ignore + instructions = this.onReadableData.reduce((pre: unknown, current: unknown) => { + // @ts-ignore (pre[`${Math.ceil(current.instructions)}`] = pre[`${Math.ceil(current.instructions)}`] || []).push(current); return pre; }, {}); @@ -250,7 +262,8 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { .map((i) => Number(i)) .reduce((pre, cur) => Math.max(pre, cur), 0) + 10; const yMaxValue = Object.values(instructions).reduce( - (pre: number, cur: any) => Math.max(pre, Number((cur.length / count).toFixed(2))), + // @ts-ignore + (pre: number, cur: unknown) => Math.max(pre, Number((cur.length / count).toFixed(2))), 0 ); this.yAvg = Number(((yMaxValue / 5) * 1.5).toFixed(2)) || yMaxValue; @@ -266,16 +279,19 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { * @param height * @param count */ - drawBar(instructionData: any, height: number, count: number) { + drawBar(instructionData: unknown, height: number, count: number): void { const yTotal = Number((this.yAvg * 5).toFixed(2)); const interval = Math.floor((height - paddingBottom) / 6); + // @ts-ignore for (const x in instructionData) { const xNum = Number(x); const xPosition = xStep + (xNum / (this.xCount * this.xAvg)) * (this.xCount * this.xSpacing) - barWidth / 2; + // @ts-ignore const yNum = Number((instructionData[x].length / count).toFixed(3)); const percent = Number((yNum / yTotal).toFixed(2)); const barHeight = (height - paddingBottom - interval) * percent; this.drawRect(xPosition, height - paddingBottom - barHeight, barWidth, barHeight); + // @ts-ignore const existX = this.cacheData.find((i) => i.instruct === x); if (!existX) { this.cacheData.push({ @@ -286,6 +302,7 @@ export class TabPaneSampleInstructionDistributions extends BaseElement { heightPer: parseFloat((yNum * 100).toFixed(2)), }); } else { + // @ts-ignore existX.x = xPosition; } } diff --git a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelection.ts b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelection.ts index 1f17bd0f1088ba3ff096f3e598cd3762248cd94c..b099c82aa446d848ed498af0fe44a37b735704ea 100644 --- a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelection.ts +++ b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelection.ts @@ -28,8 +28,8 @@ export class TabPaneSampleInstructionSelection extends BaseElement { private instructionEle: HTMLCanvasElement | undefined | null; private ctx: CanvasRenderingContext2D | undefined | null; private textEle: HTMLSpanElement | undefined | null; - private instructionArray: Array = []; - private instructionData: Array = []; + private instructionArray: Array = []; + private instructionData: Array = []; private isUpdateCanvas = false; private canvasX = -1; // 鼠标当前所在画布x坐标 private canvasY = -1; // 鼠标当前所在画布y坐标 @@ -38,7 +38,7 @@ export class TabPaneSampleInstructionSelection extends BaseElement { private hintContent = ''; //悬浮框内容 private floatHint: HTMLDivElement | undefined | null; //悬浮框 private canvasScrollTop = 0; // tab页上下滚动位置 - private hoverSampleStruct: any | undefined; + private hoverSampleStruct: unknown | undefined; private isChecked: boolean = false; private maxDepth = 0; @@ -127,7 +127,8 @@ export class TabPaneSampleInstructionSelection extends BaseElement { this.instructionEle!.onmouseleave = () => { this.hideTip(); }; - document.addEventListener('sample-popver-change', (e: any) => { + document.addEventListener('sample-popver-change', (e: unknown) => { + // @ts-ignore const select = Number(e.detail.select); this.hoverSampleStruct = undefined; this.isChecked = Boolean(select); @@ -168,7 +169,9 @@ export class TabPaneSampleInstructionSelection extends BaseElement { this.ctx!.clearRect(0, 0, this.instructionEle!.width, this.instructionEle!.height); this.ctx!.beginPath(); for (const key in this.instructionArray) { + // @ts-ignore for (let i = 0; i < this.instructionArray[key].length; i++) { + // @ts-ignore const cur = this.instructionArray[key][i]; this.draw(this.ctx!, cur); } @@ -219,8 +222,11 @@ export class TabPaneSampleInstructionSelection extends BaseElement { if (!hoverNode) { return; } + // @ts-ignore this.hintContent = `${hoverNode.detail}(${hoverNode.name})
    - ${this.isChecked ? hoverNode.hoverCycles : hoverNode.hoverInstructions} + ${ + // @ts-ignore + this.isChecked ? hoverNode.hoverCycles : hoverNode.hoverInstructions} `; } @@ -248,7 +254,8 @@ export class TabPaneSampleInstructionSelection extends BaseElement { * @param y * @returns */ - isContains(frame: any, x: number, y: number): boolean { + isContains(frame: unknown, x: number, y: number): boolean { + // @ts-ignore return x >= frame.x && x <= frame.x + frame.width && frame.y <= y && y <= frame.y + frame.height; } @@ -261,35 +268,46 @@ export class TabPaneSampleInstructionSelection extends BaseElement { const clientWidth = this.instructionEle!.width; //将数据转换为层级结构 const instructionArray = this.instructionData - .filter((item: any) => (isCycles ? item.cycles : item.instructions)) - .reduce((pre: any, cur: any) => { + // @ts-ignore + .filter((item: unknown) => (isCycles ? item.cycles : item.instructions)) + .reduce((pre: unknown, cur: unknown) => { + // @ts-ignore (pre[`${cur.depth}`] = pre[`${cur.depth}`] || []).push(cur); return pre; }, {}); + // @ts-ignore for (const key in instructionArray) { + // @ts-ignore for (let i = 0; i < instructionArray[key].length; i++) { + // @ts-ignore const cur = instructionArray[key][i]; //第一级节点直接将宽度设置为容器宽度 if (key === '0') { this.setSampleFrame(cur, clientWidth, 0); } else { //获取上一层级节点数据 + // @ts-ignore const preList = instructionArray[Number(key) - 1]; //获取当前节点的父节点 const parentNode = preList.find((node: SampleStruct) => node.name === cur.parentName); //计算当前节点下指令数之和 用于计算每个节点所占的宽度比 const total = isCycles + // @ts-ignore ? instructionArray[key] - .filter((i: any) => i.parentName === parentNode.name) - .reduce((pre: number, cur: SampleStruct) => pre + cur.cycles!, 0) + // @ts-ignore + .filter((i: unknown) => i.parentName === parentNode.name) + .reduce((pre: number, cur: SampleStruct) => pre + cur.cycles!, 0) + // @ts-ignore : instructionArray[key] - .filter((i: any) => i.parentName === parentNode.name) - .reduce((pre: number, cur: SampleStruct) => pre + cur.instructions!, 0); + // @ts-ignore + .filter((i: unknown) => i.parentName === parentNode.name) + .reduce((pre: number, cur: SampleStruct) => pre + cur.instructions!, 0); const curWidth = isCycles ? cur.cycles : cur.instructions; const width = Math.floor(parentNode.frame.width * (curWidth / total)); if (i === 0) { this.setSampleFrame(cur, width, parentNode.frame.x); } else { + // @ts-ignore const preNode = instructionArray[key][i - 1]; preNode.parentName === parentNode.name ? this.setSampleFrame(cur, width, preNode.frame.x + preNode.frame.width) @@ -298,12 +316,16 @@ export class TabPaneSampleInstructionSelection extends BaseElement { } } } + // @ts-ignore this.instructionArray = instructionArray; this.ctx!.clearRect(0, 0, this.instructionEle!.width, this.instructionEle!.height); this.ctx!.beginPath(); + // @ts-ignore for (const key in instructionArray) { + // @ts-ignore for (let i = 0; i < instructionArray[key].length; i++) { + // @ts-ignore const cur = instructionArray[key][i]; this.draw(this.ctx!, cur); } @@ -333,9 +355,12 @@ export class TabPaneSampleInstructionSelection extends BaseElement { * @param canvasY * @returns */ - searchDataByCoord(nodes: any, canvasX: number, canvasY: number) { + searchDataByCoord(nodes: unknown, canvasX: number, canvasY: number) { + // @ts-ignore for (const key in nodes) { + // @ts-ignore for (let i = 0; i < nodes[key].length; i++) { + // @ts-ignore const cur = nodes[key][i]; if (this.isContains(cur.frame, canvasX, canvasY)) { return cur; @@ -359,12 +384,13 @@ export class TabPaneSampleInstructionSelection extends BaseElement { const textColor = ColorUtils.FUNC_COLOR[ColorUtils.hashFunc(data.name || '', data.depth!, ColorUtils.FUNC_COLOR.length)]; ctx.lineWidth = 0.4; + // @ts-ignore if (this.hoverSampleStruct && data.name == this.hoverSampleStruct.name) { if (spApplication.dark) { ctx.strokeStyle = '#fff'; } else { ctx.strokeStyle = '#000'; - } + } } else { if (spApplication.dark) { ctx.strokeStyle = '#000'; @@ -384,27 +410,30 @@ export class TabPaneSampleInstructionSelection extends BaseElement { * @param instructionData * @returns */ - getAvgInstructionData(instructionData: Array) { + getAvgInstructionData(instructionData: Array) { + // @ts-ignore const length = instructionData[0].property.length; - const knowData = instructionData.filter((instruction) => instruction['name'].indexOf('unknown') < 0); + const knowData = instructionData.filter((instruction) => instruction.name.indexOf('unknown') < 0); knowData.forEach((instruction) => { + // @ts-ignore if (instruction.property.length > 0) { - const totalInstruction = instruction['property'].reduce( - (pre: number, cur: SampleStruct) => pre + Math.ceil(cur['instructions']!), + const totalInstruction = instruction.property.reduce( + (pre: number, cur: SampleStruct) => pre + Math.ceil(cur.instructions!), 0 ); - const totalCycles = instruction['property'].reduce( - (pre: number, cur: SampleStruct) => pre + Math.ceil(cur['cycles']!), + // @ts-ignore + const totalCycles = instruction.property.reduce( + (pre: number, cur: SampleStruct) => pre + Math.ceil(cur.cycles!), 0 ); - instruction['instructions'] = Math.ceil(totalInstruction / length) || 1; - instruction['cycles'] = Math.ceil(totalCycles / length) || 1; - instruction['hoverInstructions'] = Math.ceil(totalInstruction / length); - instruction['hoverCycles'] = Math.ceil(totalCycles / length); - this.maxDepth = Math.max(this.maxDepth, instruction['depth']); + instruction.instructions = Math.ceil(totalInstruction / length) || 1; + instruction.cycles = Math.ceil(totalCycles / length) || 1; + instruction.hoverInstructions = Math.ceil(totalInstruction / length); + instruction.hoverCycles = Math.ceil(totalCycles / length); + this.maxDepth = Math.max(this.maxDepth, instruction.depth); } }); - const unknownData = instructionData.filter((instruction) => instruction['name'].indexOf('unknown') > -1); + const unknownData = instructionData.filter((instruction) => instruction.name.indexOf('unknown') > -1); let instructionSum = 0; let cyclesSum = 0; let hoverInstructionsSum = 0; @@ -414,16 +443,26 @@ export class TabPaneSampleInstructionSelection extends BaseElement { cyclesSum = 0; hoverInstructionsSum = 0; hoverCyclesSum = 0; - for (const key in unknown['children']) { + // @ts-ignore + for (const key in unknown.children) { + // @ts-ignore const child = instructionData.find((instruction) => instruction['name'] === key); + // @ts-ignore instructionSum += child['instructions'] ?? 0; + // @ts-ignore cyclesSum += child['cycles'] ?? 0; + // @ts-ignore hoverInstructionsSum += child['hoverInstructions'] ?? 0; + // @ts-ignore hoverCyclesSum += child['hoverCycles'] ?? 0; } + // @ts-ignore unknown['instructions'] = instructionSum; + // @ts-ignore unknown['cycles'] = cyclesSum; + // @ts-ignore unknown['hoverInstructions'] = hoverInstructionsSum; + // @ts-ignore unknown['hoverCycles'] = hoverCyclesSum; }); return instructionData; diff --git a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelectionTotalTime.ts b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelectionTotalTime.ts index f2ff377e1c299fd2b39856445ffd0ba7a607c33c..5015f1577dda5c6a174cf04710baa115ad28c31e 100644 --- a/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelectionTotalTime.ts +++ b/ide/src/trace/component/trace/sheet/bpftrace/TabPaneSampleInstructionSelectionTotalTime.ts @@ -130,7 +130,7 @@ export class TabPaneSampleInstructionTotalTime extends BaseElement { * @param canvasY * @returns */ - searchDataByCoord(nodes: unknown, canvasX: number, canvasY: number) { + searchDataByCoord(nodes: unknown, canvasX: number, canvasY: number):unknown { // @ts-ignore for (let i = 0; i < nodes.length; i++) { // @ts-ignore @@ -261,7 +261,7 @@ export class TabPaneSampleInstructionTotalTime extends BaseElement { * @param height * @param count */ - drawBar(instructionData: unknown, height: number, count: number) { + drawBar(instructionData: unknown, height: number, count: number): void { const yTotal = Number((this.yAvg * 5).toFixed(2)); const interval = Math.floor((height - paddingBottom) / 6); // @ts-ignore for (const x in instructionData) { diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts index d0aaebae89c20ec4776d8e2ffb1cb5c98b0fb657..ddf08c842b4a934e09dca7cf3e376c734f56b693 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneFilesystemStatistics.ts @@ -40,9 +40,8 @@ export class TabPaneFileStatistics extends BaseElement { this.fileStatisticsLoadingPage.style.visibility = 'visible'; // @ts-ignore this.selectionParam = fileStatisticsSelection; // @ts-ignore - this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${ - this.parentElement!.clientHeight - 25 - }px`; + this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${this.parentElement!.clientHeight - 25 + }px`; this.queryDataByDB(fileStatisticsSelection); } @@ -67,9 +66,8 @@ export class TabPaneFileStatistics extends BaseElement { new ResizeObserver((): void => { if (this.parentElement!.clientHeight !== 0) { // @ts-ignore - this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${ - this.parentElement!.clientHeight - 25 - }px`; + this.fileStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${this.parentElement!.clientHeight - 25 + }px`; this.fileStatisticsTbl!.reMeauseHeight(); // @ts-ignore this.fileStatisticsLoadingPage.style.height = `${this.parentElement!.clientHeight - 24}px`; } @@ -236,13 +234,12 @@ export class TabPaneFileStatistics extends BaseElement { fileStatisticsAllNode.children.forEach((item: unknown): void => { // @ts-ignore item.children.sort((fileStatisticsA: unknown, fileStatisticsB: unknown) => { - if (this.fileStatisticsSortType === 1) { + return this.fileStatisticsSortType === 1 ? // @ts-ignore - return fileStatisticsA.node[key] - fileStatisticsB.node[key]; - } else if (this.fileStatisticsSortType === 2) { - // @ts-ignore - return fileStatisticsB.node[key] - fileStatisticsA.node[key]; - } + fileStatisticsA.node[key] - fileStatisticsB.node[key] : + this.fileStatisticsSortType === 2 ? + // @ts-ignore + fileStatisticsB.node[key] - fileStatisticsA.node[key] : 0; }); }); } diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatistics.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatistics.ts index 3bbf62bbb67522f5a9805e1e40e23c028fcff72e..c53ae91fff993da14d2cb5e9863018b4452fabcd 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatistics.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneIOTierStatistics.ts @@ -42,9 +42,8 @@ export class TabPaneIOTierStatistics extends BaseElement { // @ts-ignore this.ioTierStatisticsSelectionParam = ioTierStatisticsSelection; // @ts-ignore - this.ioTierStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${ - this.parentElement!.clientHeight - 20 - }px`; + this.ioTierStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${this.parentElement!.clientHeight - 20 + }px`; this.queryDataByDB(ioTierStatisticsSelection); } @@ -69,9 +68,8 @@ export class TabPaneIOTierStatistics extends BaseElement { new ResizeObserver((): void => { if (this.parentElement!.clientHeight !== 0) { // @ts-ignore - this.ioTierStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${ - this.parentElement!.clientHeight - 25 - }px`; + this.ioTierStatisticsTbl!.shadowRoot!.querySelector('.table').style.height = `${this.parentElement!.clientHeight - 25 + }px`; this.ioTierStatisticsTbl!.reMeauseHeight(); // @ts-ignore this.loadingPage.style.height = `${this.parentElement!.clientHeight - 24}px`; @@ -216,17 +214,17 @@ export class TabPaneIOTierStatistics extends BaseElement { // @ts-ignore currentFatherObject.minDuration <= resultItem.minDuration ? // @ts-ignore - currentFatherObject.minDuration + currentFatherObject.minDuration : // @ts-ignore - resultItem.minDuration; + resultItem.minDuration; // @ts-ignore currentFatherObject.maxDuration = // @ts-ignore currentFatherObject.maxDuration >= resultItem.maxDuration ? // @ts-ignore - currentFatherObject.maxDuration + currentFatherObject.maxDuration : // @ts-ignore - resultItem.maxDuration; + resultItem.maxDuration; // @ts-ignore currentFatherObject.children.push(this.getInitData(resultItem)); } else { @@ -324,13 +322,13 @@ export class TabPaneIOTierStatistics extends BaseElement { sortTable(allNode: unknown, key: string): void { // @ts-ignore allNode.children.sort((ioTierStatNodeA: unknown, ioTierStatNodeB: unknown) => { - if (this.ioTierStatisticsSortType === 1) { + return this.ioTierStatisticsSortType === 1 ? // @ts-ignore - return ioTierStatNodeA.node[key] - ioTierStatNodeB.node[key]; - } else if (this.ioTierStatisticsSortType === 2) { - // @ts-ignore - return ioTierStatNodeB.node[key] - ioTierStatNodeA.node[key]; - } + ioTierStatNodeA.node[key] - ioTierStatNodeB.node[key] : + this.ioTierStatisticsSortType === 2 ? + // @ts-ignore + ioTierStatNodeB.node[key] - ioTierStatNodeA.node[key] : 0; + }); // @ts-ignore allNode.children.forEach((item: unknown): void => { // @ts-ignore @@ -346,13 +344,12 @@ export class TabPaneIOTierStatistics extends BaseElement { item.children.forEach((ioTierStatItem: unknown): void => { // @ts-ignore ioTierStatItem.children.sort((ioTierStatItemA: unknown, ioTierStatItemB: unknown) => { - if (this.ioTierStatisticsSortType === 1) { + return this.ioTierStatisticsSortType === 1 ? // @ts-ignore - return ioTierStatItemA.node[key] - ioTierStatItemB.node[key]; - } else if (this.ioTierStatisticsSortType === 2) { - // @ts-ignore - return ioTierStatItemB.node[key] - ioTierStatItemA.node[key]; - } + ioTierStatItemA.node[key] - ioTierStatItemB.node[key] : + this.ioTierStatisticsSortType === 2 ? + // @ts-ignore + ioTierStatItemB.node[key] - ioTierStatItemA.node[key] : 0; }); }); }); diff --git a/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatistics.ts b/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatistics.ts index 0e1e0a284139f2fe14679edbd4539c3a55ac78a4..d3eb1679542e63375288559d3db2d67603247c0f 100644 --- a/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatistics.ts +++ b/ide/src/trace/component/trace/sheet/file-system/TabPaneVirtualMemoryStatistics.ts @@ -412,7 +412,7 @@ export class TabPaneVirtualMemoryStatistics extends BaseElement { // @ts-ignore backData = vmStatItemB.node[key] - vmStatItemA.node[key]; } - return backData + return backData; }); }); }); diff --git a/ide/src/trace/component/trace/sheet/gpufreq/TabPaneGpufreqDataCut.ts b/ide/src/trace/component/trace/sheet/gpufreq/TabPaneGpufreqDataCut.ts index bb71a425f963a3fdc9b038a8062aab6d28f11002..1f768f9b66cb5554152f53898b7b029d8d588c4a 100644 --- a/ide/src/trace/component/trace/sheet/gpufreq/TabPaneGpufreqDataCut.ts +++ b/ide/src/trace/component/trace/sheet/gpufreq/TabPaneGpufreqDataCut.ts @@ -105,8 +105,8 @@ export class TabPaneGpufreqDataCut extends BaseElement { let result: Array = await getGpufreqDataCut(tIds, funcName, leftNS, rightNS, single, loop); return result; }; - //是否改变single按钮颜色 - private isChangeSingleBtn(flag: boolean): void { + //是否改变single按钮颜色 + private isChangeSingleBtn(flag: boolean): void { if (flag) { this.setAttribute('single', ''); } else { @@ -182,11 +182,11 @@ export class TabPaneGpufreqDataCut extends BaseElement { let initItem: GpuCountBean = initData[j]; _lastList.push(...this.segmentationData(initItem, dataItem, i)); j++; - currentIndex++; + currentIndex++; if (currentIndex === initData.length) { i++; j = 0; - currentIndex = 0; + currentIndex = 0; }; }; let tree: TreeDataStringBean = this.createTree(_lastList); @@ -269,9 +269,9 @@ export class TabPaneGpufreqDataCut extends BaseElement { dur: number; percent: number; level: number; - children: TreeDataBean[]; + children: TreeDataBean[]; } = { - thread: 'gpufreq Frequency', + thread: 'gpufreq Frequency', value: 0, dur: 0, percent: 100, @@ -286,15 +286,15 @@ export class TabPaneGpufreqDataCut extends BaseElement { item.level = 4; this.updateValueMap(item, parentIndex, freq, valueMap); }); - Object.values(valueMap).forEach((node: TreeDataBean) => { - const parentNode: TreeDataBean = valueMap[node.freq! - 1]; + Object.values(valueMap).forEach((node: TreeDataBean) => { + const parentNode: TreeDataBean = valueMap[node.freq! - 1]; if (parentNode) { parentNode.children.push(node); parentNode.dur += node.dur; parentNode.value += node.value; } else { - root.children.push(node); - root.dur += node.dur; + root.children.push(node); + root.dur += node.dur; root.value += node.value; } }); @@ -314,12 +314,12 @@ export class TabPaneGpufreqDataCut extends BaseElement { value: item.value, dur: item.dur, startNS: item.startNS, - percent: 100, + percent: 100, level: 2, cycle: parentIndex + 1, children: [], }; - } else { + } else { valueMap[parentIndex].dur += item.dur; valueMap[parentIndex].value += item.value; }; @@ -341,9 +341,9 @@ export class TabPaneGpufreqDataCut extends BaseElement { private getFirstLevelChildren(obj: TreeDataBean): Array { const result: Array = []; if (Array.isArray(obj.children)) { - obj.children.forEach((child) => { + obj.children.forEach((child) => { if (child.cycle !== undefined && child.dur !== undefined && child.value !== undefined && child.startNS !== undefined) { - result.push(new CycleDataBean(7,child.dur, Number((child.value / this.KUNIT).toFixed(3)), child.startNS, child.cycle,'',1)); + result.push(new CycleDataBean(7, child.dur, Number((child.value / this.KUNIT).toFixed(3)), child.startNS, child.cycle, '', 1)); }; }); }; @@ -362,14 +362,14 @@ export class TabPaneGpufreqDataCut extends BaseElement { for (const child of root.children) { treeDataString.children!.push(this.convertChildToString(child) as TreeDataStringBean); }; - }; + }; return treeDataString; }; private convertChildToString(child: TreeDataBean | TreeDataBean[]): TreeDataStringBean | TreeDataStringBean[] { - if (Array.isArray(child)) { - if (child.length > 0) { + if (Array.isArray(child)) { + if (child.length > 0) { return child.map(c => this.convertChildToString(c) as TreeDataStringBean); - } else { + } else { return []; } } else if (child && child.children) { diff --git a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts index d8c3b59cc4b2fb7f65773422f6d85de6b4ca63bc..9d08c068eec4cf8b78449561af2ecf080c7b8c16 100644 --- a/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts +++ b/ide/src/trace/component/trace/sheet/hilog/TabPaneHiLogs.ts @@ -139,7 +139,7 @@ export class TabPaneHiLogs extends BaseElement { this.tableTimeHandle?.(); }; this.tagFilterInput!.addEventListener('keyup', (ev) => { - if(ev.key.toLocaleLowerCase() === String.fromCharCode(47)){ + if (ev.key.toLocaleLowerCase() === String.fromCharCode(47)) { ev.stopPropagation(); } }); @@ -147,7 +147,7 @@ export class TabPaneHiLogs extends BaseElement { this.tableTimeHandle?.(); }; this.searchFilterInput!.addEventListener('keyup', (ev) => { - if(ev.key.toLocaleLowerCase() === String.fromCharCode(47)){ + if (ev.key.toLocaleLowerCase() === String.fromCharCode(47)) { ev.stopPropagation(); } }); @@ -155,7 +155,7 @@ export class TabPaneHiLogs extends BaseElement { this.tableTimeHandle?.(); }; this.processFilter!.addEventListener('keyup', (ev) => { - if(ev.key.toLocaleLowerCase() === String.fromCharCode(47)){ + if (ev.key.toLocaleLowerCase() === String.fromCharCode(47)) { ev.stopPropagation(); } }); diff --git a/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts b/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts index 159ad4e8045bfffc187dbc8d7f708804318958fe..065e470132af0ab2de16754409948bf4a00aa67b 100644 --- a/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts +++ b/ide/src/trace/component/trace/sheet/hiperf/TabPerfProfile.ts @@ -322,7 +322,7 @@ export class TabpanePerfProfile extends BaseElement { this.initPerfProfilerDataAndListener(); this.perfProfilerFilter?.addEventListener('focus', () => { spSystemTrace.focusTarget = 'bottomUpInput'; - }) + }); this.perfProfilerFilter?.addEventListener('blur', () => { spSystemTrace.focusTarget = ''; }); diff --git a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMCallTree.ts b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMCallTree.ts index e9fe2e9726144440db7fa810e1d0900c3aa58d1f..e4a0dc73f0b8243fde24be5e097ed19914ebe3dc 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMCallTree.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMCallTree.ts @@ -183,13 +183,12 @@ export class TabpaneNMCalltree extends BaseElement { if (data.type === 'AllocEvent') { data.type = '1'; } - const that = this; if (this.subTypeArr.length > 0) { this.subTypeArr.map((memory): void => { selections.push({ memoryTap: memory, }); - if (that.currentSelection?.nativeMemory && that.currentSelection.nativeMemory.length > 0) { + if (this.currentSelection?.nativeMemory && this.currentSelection.nativeMemory.length > 0) { const typeName = SpSystemTrace.DATA_DICT.get(memory); if ((data.type === 'MmapEvent' && memory === -1) || data.type === typeName) { data.type = `${selections.length + 2}`; @@ -339,15 +338,14 @@ export class TabpaneNMCalltree extends BaseElement { async initFilterTypes(): Promise { this.currentNMCallTreeFilter = this.shadowRoot?.querySelector('#nm-call-tree-filter'); let secondFilterList = ['All Heap & Anonymous VM', 'All Heap', 'All Anonymous VM']; - let that = this; - function addSubType(subTypeList: unknown): void { + const addSubType = (subTypeList: unknown): void => { if (!subTypeList) { return; } - that.subTypeArr = []; // @ts-ignore + this.subTypeArr = []; // @ts-ignore for (let data of subTypeList) { secondFilterList.push(data.subType); - that.subTypeArr.push(data.subTypeId); + this.subTypeArr.push(data.subTypeId); } } if (this.currentSelection!.nativeMemory!.length > 0) { @@ -417,7 +415,7 @@ export class TabpaneNMCalltree extends BaseElement { this.nmCallTreeTbl!.rememberScrollTop = true; this.nmCallTreeTbl!.exportTextHandleMap.set('heapSizeStr', (value) => { // @ts-ignore - return `${value['size']}`; + return `${value.size}`; }); this.nmCallTreeFilter = this.shadowRoot?.querySelector('#nm-call-tree-filter'); this.filesystemTbr = this.shadowRoot?.querySelector('#tb-filesystem-list'); @@ -458,7 +456,7 @@ export class TabpaneNMCalltree extends BaseElement { this.initCloseCallBackByHeadLine(); this.nmCallTreeFilter?.addEventListener('focus', () => { spSystemTrace.focusTarget = 'bottomUpInput'; - }) + }); this.nmCallTreeFilter?.addEventListener('blur', () => { spSystemTrace.focusTarget = ''; }); diff --git a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts index 8b6a1c4609f2d0204376ff52459842637d8da64c..15100276d53d8935a13638d9bc8c81b755f29acf 100644 --- a/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts +++ b/ide/src/trace/component/trace/sheet/native-memory/TabPaneNMSampleList.ts @@ -322,11 +322,11 @@ export class TabPaneNMSampleList extends BaseElement { TabPaneNMSampleList.filter!.firstSelect = TabPaneNMSampleList.filterSelect; TabPaneNMSampleList.sampleTbl!.exportTextHandleMap.set('totalGrowth', (value) => { // @ts-ignore - return `${value['total']}`; + return `${value.total}`; }); TabPaneNMSampleList.sampleTbl!.exportTextHandleMap.set('growth', (value) => { // @ts-ignore - return `${value['heapSize']}`; + return `${value.heapSize}`; }); } diff --git a/ide/src/trace/component/trace/sheet/schedswitch/TabPaneSchedSwitch.ts b/ide/src/trace/component/trace/sheet/schedswitch/TabPaneSchedSwitch.ts index 30564501a55392337da7a2ddabc46bf4bdf345fb..faad0d9c037f939586d8c6a2c7c4312a35ffcdcf 100644 --- a/ide/src/trace/component/trace/sheet/schedswitch/TabPaneSchedSwitch.ts +++ b/ide/src/trace/component/trace/sheet/schedswitch/TabPaneSchedSwitch.ts @@ -118,12 +118,12 @@ export class TabPaneSchedSwitch extends BaseElement { this.queryCycleRangeData(); }); this.threadIdInput!.addEventListener('keyup', (ev) => { - if(ev.key.toLocaleLowerCase() === String.fromCharCode(47)){ + if (ev.key.toLocaleLowerCase() === String.fromCharCode(47)) { ev.stopPropagation(); } }); this.funcNameInput!.addEventListener('keyup', (ev) => { - if(ev.key.toLocaleLowerCase() === String.fromCharCode(47)){ + if (ev.key.toLocaleLowerCase() === String.fromCharCode(47)) { ev.stopPropagation(); } }); diff --git a/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts b/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts index ea40b9952c97e63beed82c629de411f868e4fbb7..668d84075f1d5157af0dabf5ed53d99db1ac0550 100644 --- a/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts +++ b/ide/src/trace/component/trace/sheet/sdk/TabPaneSdkSlice.ts @@ -271,9 +271,9 @@ export class TabPaneSdkSlice extends BaseElement { if (type === 'number') { return sliceSort === 2 ? // @ts-ignore - parseFloat(bSdkSlice[property]) - parseFloat(aSdkSlice[property]) + parseFloat(bSdkSlice[property]) - parseFloat(aSdkSlice[property]) : // @ts-ignore - parseFloat(aSdkSlice[property]) - parseFloat(bSdkSlice[property]); + parseFloat(aSdkSlice[property]) - parseFloat(bSdkSlice[property]); } // @ts-ignore if (bSdkSlice[property] > aSdkSlice[property]) { @@ -359,24 +359,33 @@ export class TabPaneSdkSlice extends BaseElement { } getFormattedSliceValue(sliceKey: string, sliceValue: unknown): unknown { + let result: string = ''; //@ts-ignore switch (this.columnMap[sliceKey]) { case 'TimeStamp': - return Utils.getTimeString(Number(sliceValue)); + result = Utils.getTimeString(Number(sliceValue)); + break; case 'ClockTime': - return Utils.getTimeStampHMS(Number(sliceValue)); + result = Utils.getTimeStampHMS(Number(sliceValue)); + break; case 'RangTime': - return Utils.getDurString(Number(sliceValue)); + result = Utils.getDurString(Number(sliceValue)); + break; case 'PercentType': - return `${sliceValue}%`; + result = `${sliceValue}%`; + break; case 'CurrencyType': //@ts-ignore - return sliceValue.toString().replace(/\B(?=(\d{3})+$)/g, ','); + result = sliceValue.toString().replace(/\B(?=(\d{3})+$)/g, ','); + break; case 'FIXED': //@ts-ignore - return sliceValue.toFixed(2); + result = sliceValue.toFixed(2); + break; default: if (typeof sliceValue === 'string') { - return sliceValue.replace(//gi, '>'); + result = sliceValue.replace(//gi, '>'); + break; } } + return result; } } diff --git a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsComparison.ts b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsComparison.ts index 3789db3376e8112738a6bdbec1a513c0da87df47..b59453df328b7a9fb561c88aa8d79d2ee2d512ff 100644 --- a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsComparison.ts +++ b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsComparison.ts @@ -77,18 +77,19 @@ export class TabPaneSmapsComparison extends TabPaneSmapsStatistics { this.selectEl!.defaultValue = smapsComFileArr[0].name; // @ts-ignore this.selectEl!.placeholder = smapsComFileArr[0].name; this.selectEl!.dataSource = smapsComFileArr; - this.selectEl!.querySelectorAll('lit-select-option').forEach((a) => { - a.addEventListener('onSelected', (e: unknown) => { + let selectOption: NodeListOf = this.selectEl!.querySelectorAll('lit-select-option'); + for (const item of selectOption) { + item.addEventListener('onSelected', (e: unknown) => { for (let f of smapsComFileArr) { // @ts-ignore if (input.value === f.name) { // @ts-ignore - that.querySmapsData(fileStartNs, f.startNs); + this.querySmapsData(fileStartNs, f.startNs); } } // @ts-ignore e.stopPropagation(); - }); - }); + }) + } } private async querySmapsData(baseTime: number, targetTime: number): Promise { diff --git a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts index a398c09b6a3b33bb1eb53eaa965dce36388bb5a8..da1de4d16cc2961738495dee43b3a1b078803ed2 100644 --- a/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts +++ b/ide/src/trace/component/trace/sheet/smaps/TabPaneSmapsRecord.ts @@ -38,7 +38,7 @@ export class TabPaneSmapsRecord extends BaseElement { set data(smapsValue: SelectionParam | unknown) { this.smapsRecordDataSource = []; if (smapsValue) { - if (this.pixelmapId == -1) { + if (this.pixelmapId === -1) { for (let [key, value] of SpSystemTrace.DATA_DICT) { if (value === 'pixelmap') { this.pixelmapId = key; diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPanePurgPinComparisonVM.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPanePurgPinComparisonVM.ts index e59c271b8c097ab1e4bb177e6633c240817ded3d..0882a726db5fb174a9c22b4ecc423c86bbfd4836 100644 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPanePurgPinComparisonVM.ts +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPanePurgPinComparisonVM.ts @@ -36,9 +36,8 @@ export class TabPanePurgPinComparisonVM extends BaseElement { } public totalData(data: SelectionParam | unknown, dataList: unknown): void { //@ts-ignore - this.purgeablePinTables?.shadowRoot?.querySelector('.table')?.style?.height = `${ - this.parentElement!.clientHeight - 45 - }px`; + this.purgeablePinTables?.shadowRoot?.querySelector('.table')?.style?.height = `${this.parentElement!.clientHeight - 45 + }px`; this.purgeablePinSource = []; let fileArr: unknown[] = []; // @ts-ignore @@ -55,7 +54,6 @@ export class TabPanePurgPinComparisonVM extends BaseElement { this.updateComparisonData(data.startNs, fileArr[0].startNs); } private initSelect(fileStartNs: number, purgePinComVmList: Array): void { - let that = this; let input = this.selectEl!.shadowRoot?.querySelector('input') as HTMLInputElement; this.selectEl!.innerHTML = ''; let option = new LitSelectOption(); @@ -72,19 +70,20 @@ export class TabPanePurgPinComparisonVM extends BaseElement { // @ts-ignore this.selectEl!.placeholder = purgePinComVmList[0].name; this.selectEl!.dataSource = purgePinComVmList; - this.selectEl!.querySelectorAll('lit-select-option').forEach((a) => { - a.addEventListener('onSelected', (e: unknown) => { + let selectOption = this.selectEl!.querySelectorAll('lit-select-option'); + for (const item of selectOption) { + item.addEventListener('onSelected', (e: unknown) => { for (let f of purgePinComVmList) { // @ts-ignore if (input.value === f.name) { // @ts-ignore - that.updateComparisonData(fileStartNs, f.startNs); + this.updateComparisonData(fileStartNs, f.startNs); } } // @ts-ignore e.stopPropagation(); }); - }); + } } private async updateComparisonData(baseTime: number, targetTime: number): Promise { this.purgeablePinSource = []; diff --git a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShmComparison.ts b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShmComparison.ts index 468574b07abeb553937482f7925eafb324acddba..a4e24803c78bcaf652bdb933c6389b2a528900a2 100644 --- a/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShmComparison.ts +++ b/ide/src/trace/component/trace/sheet/vmtracker/TabPaneVmTrackerShmComparison.ts @@ -55,7 +55,6 @@ export class TabPaneVmTrackerShmComparison extends BaseElement { setShmData(data: SnapshotStruct, dataList: Array): void { let fileArr: SnapshotStruct[] = []; - let that = this; for (let file of dataList) { if (file.startNs !== data.startNs) { fileArr.push(file); @@ -65,7 +64,7 @@ export class TabPaneVmTrackerShmComparison extends BaseElement { this.baseFileTs = data.startNs; this.initSelect(data.startNs, fileArr); this.targetFileTs = fileArr[0].startNs; - that.updateComparisonData(data.startNs, fileArr[0].startNs); + this.updateComparisonData(data.startNs, fileArr[0].startNs); } async updateComparisonData(baseFileTs: number, targetFileTs: number): Promise { @@ -101,7 +100,6 @@ export class TabPaneVmTrackerShmComparison extends BaseElement { } initSelect(fileId: number, fileArr: Array): void { - let that = this; let input = this.selectEl!.shadowRoot?.querySelector('input') as HTMLInputElement; this.selectEl!.innerHTML = ''; let option = new LitSelectOption(); @@ -114,17 +112,18 @@ export class TabPaneVmTrackerShmComparison extends BaseElement { this.selectEl!.defaultValue = fileArr[0].name || ''; this.selectEl!.placeholder = fileArr[0].name || ''; this.selectEl!.dataSource = fileArr; - this.selectEl!.querySelectorAll('lit-select-option').forEach((a) => { - a.addEventListener('onSelected', (e) => { + let selectOption = this.selectEl!.querySelectorAll('lit-select-option'); + for (const item of selectOption) { + item.addEventListener('onSelected', (e) => { this.comparisonTableEl!.scrollTop = 0; for (let f of fileArr) { if (input.value === f.name) { - that.updateComparisonData(fileId, f.startNs); + this.updateComparisonData(fileId, f.startNs); } } e.stopPropagation(); }); - }); + } } sortShmByColumn(column: string, sort: number): void { diff --git a/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts b/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts index df879f9832dc1faf0124bd465683a77c0f4bdb55..2d10a06394cec1004898a00f9ad9ea57c3dc8eef 100644 --- a/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts +++ b/ide/src/trace/component/trace/timer-shaft/TabPaneFlag.ts @@ -190,7 +190,7 @@ export class TabPaneFlag extends BaseElement { // @ts-ignore this.flagList[index - 1].text = event?.target.value; document.dispatchEvent(new CustomEvent('flag-change', { detail: this.flagList[index - 1] })); - document.dispatchEvent(new CustomEvent('remarksFocus-change',{ detail: 'remarks-focus' })); + document.dispatchEvent(new CustomEvent('remarksFocus-change', { detail: 'remarks-focus' })); // 旗子颜色改变时,重绘泳道图 this.systemTrace?.refreshCanvas(true); } @@ -211,7 +211,7 @@ export class TabPaneFlag extends BaseElement { // @ts-ignore this.flagList[index - 1].text = event?.target.value; document.dispatchEvent(new CustomEvent('flag-change', { detail: this.flagList[index - 1] })); - document.dispatchEvent(new CustomEvent('remarksFocus-change',{ detail: '' })); + document.dispatchEvent(new CustomEvent('remarksFocus-change', { detail: '' })); this.setTableData(); // 旗子颜色改变时,重绘泳道图 this.systemTrace?.refreshCanvas(true); diff --git a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts index e996f2ba21db8bd4e45b16d82c5ff2ed0912afe4..e347b21b84d7b24f9f8cab185fc5af71e1ded6f4 100644 --- a/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts +++ b/ide/src/trace/database/logic-worker/ProcedureLogicWorkerPerf.ts @@ -410,7 +410,7 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { from perf_napi_async A, trace_range R WHERE - (` + str +`)` + eventStr +` + (` + str + `)` + eventStr + ` AND time between ${args.leftNs} and ${args.rightNs} `, {}); @@ -540,7 +540,7 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { if (!this.isHideThread) { list.unshift(threadCallChain); } - + if (this.isOnlyKernel) { const flag = "[kernel.kallsyms]" const newList = list.filter(i => i.fileName === flag || i.path === flag) @@ -781,9 +781,9 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { } } recursionHideChildren(item, (node: PerfCallChainMerageData): boolean => { - return node.libName !== '[kernel.kallsyms]' - }) - }) + return node.libName !== '[kernel.kallsyms]'; + }); + }); } hideNumMaxAndMin(startNum: number, endNum: string): void { @@ -797,7 +797,7 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { } clearSplitMapData(symbolName: string): void { - if (symbolName in this.splitMapData){ + if (symbolName in this.splitMapData) { delete this.splitMapData[symbolName]; } } @@ -851,31 +851,31 @@ export class ProcedureLogicWorkerPerf extends LogicHandler { } kernelCombination(): void { - function mergeChildren(item: PerfCallChainMerageData) { + function mergeChildren(item: PerfCallChainMerageData): void { if (item.children.length <= 0) { - return + return; } item.children = item.children.reduce((total: PerfCallChainMerageData[], pfcall: PerfCallChainMerageData): PerfCallChainMerageData[] => { for (const prev of total) { - if (pfcall.symbol == prev.symbol) { - prev.children.push(...pfcall.children) - prev.total += pfcall.total - prev.count += pfcall.count - prev.totalEvent += pfcall.totalEvent - prev.eventCount += pfcall.eventCount + if (pfcall.symbol === prev.symbol) { + prev.children.push(...pfcall.children); + prev.total += pfcall.total; + prev.count += pfcall.count; + prev.totalEvent += pfcall.totalEvent; + prev.eventCount += pfcall.eventCount; return total } } - total.push(pfcall) + total.push(pfcall); return total - }, [] as PerfCallChainMerageData[]) + }, [] as PerfCallChainMerageData[]); for (const child of item.children) { - mergeChildren(child) + mergeChildren(child); } } this.allProcess.forEach((item: PerfCallChainMerageData): void => { - mergeChildren(item) - }) + mergeChildren(item); + }); } findSearchNode(sampleArray: PerfCallChainMerageData[], search: string, parentSearch: boolean): void { @@ -1245,7 +1245,7 @@ export class PerfCallChain { nextNode: PerfCallChain | undefined = undefined; isThread: boolean = false; isProcess: boolean = false; - isThreadState : boolean = false; + isThreadState: boolean = false; static setNextNode(currentNode: PerfCallChain, nextNode: PerfCallChain): void { currentNode.nextNode = nextNode; @@ -1297,7 +1297,7 @@ export class PerfCallChainMerageData extends ChartStruct { isSelected: boolean = false; searchShow: boolean = true; isSearch: boolean = false; - isState : boolean = false; + isState: boolean = false; set parentNode(data: PerfCallChainMerageData | undefined) { this.parent = data; this.#parentNode = data; @@ -1358,7 +1358,7 @@ export class PerfCallChainMerageData extends ChartStruct { if (callChain.isThread && !currentNode.isThread) { currentNode.isThread = callChain.isThread; } - if (callChain.isThreadState && !currentNode.isState){ + if (callChain.isThreadState && !currentNode.isState) { currentNode.isState = callChain.isThreadState; } currentNode.dur += sample.count; diff --git a/ide/src/trace/database/sql/dmaFence.sql.ts b/ide/src/trace/database/sql/dmaFence.sql.ts index eb7a9bfb23f4092ff953b79bc59b3db53fffbfd1..bb1415ecd859de911c6ed95d845a882762f50165 100644 --- a/ide/src/trace/database/sql/dmaFence.sql.ts +++ b/ide/src/trace/database/sql/dmaFence.sql.ts @@ -86,6 +86,6 @@ export const queryDmaFenceData = (leftNS: number, rightNS: number, nameList: Str (s.new_ts < ${leftNS} + r.start_ts AND (s.new_ts + s.newDur) > ${rightNS} + r.start_ts) ) ORDER BY - s.new_ts;` + s.new_ts;`; return query('queryDmaFenceData', sql); }; \ No newline at end of file diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts index 786818a6a5134cae5310e7fb9e32720932d299b7..4f81bd0c77f29cede4e0ce38c0589e078e0f0861 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerCommon.ts @@ -2021,7 +2021,8 @@ export function findSearchNode(data: unknown[], search: string, parentSearch: bo } // draw prio curve -export function prioClickHandlerFun(param: unknown, row: TraceRow, threadFilter: Array, arr: unknown, oldVal: number): void { +// @ts-ignore +export function prioClickHandlerFun(param: unknown, row: TraceRow, threadFilter: Array, arr: unknown, oldVal: number): void { //@ts-ignore let maxCount = Math.max(...param.map((obj: unknown) => obj.count)); //@ts-ignore diff --git a/ide/src/trace/database/ui-worker/ProcedureWorkerGpuCounter.ts b/ide/src/trace/database/ui-worker/ProcedureWorkerGpuCounter.ts index e1a0d6980226278654f45925331a729888bd9939..2cc1fe5ae8d30337fa9754b78ce16cb238e0fe5a 100644 --- a/ide/src/trace/database/ui-worker/ProcedureWorkerGpuCounter.ts +++ b/ide/src/trace/database/ui-worker/ProcedureWorkerGpuCounter.ts @@ -204,7 +204,7 @@ export class GpuCounterStruct extends BaseStruct { } } -export class Maleoon_counter_obj { +export class MaleoonCounterObj { [key: string]: Array; gpu_clocks: Array; tiler_utilization: Array; @@ -262,7 +262,7 @@ export class Maleoon_counter_obj { } } -export class Gpu_counter_type { +export class GpuCounterType { [key: string]: Array; 'cycle': Array; 'drawcall': Array;