1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { CpuFreqLimitsStruct } from '../database/ui-worker/ProcedureWorkerCpuFreqLimits.js'; 17import { ClockStruct } from '../database/ui-worker/ProcedureWorkerClock.js'; 18import { IrqStruct } from '../database/ui-worker/ProcedureWorkerIrq.js'; 19import { FuncStruct } from '../database/ui-worker/ProcedureWorkerFunc.js'; 20import { FrameDynamicStruct } from '../database/ui-worker/ProcedureWorkerFrameDynamic.js'; 21import { FrameAnimationStruct } from '../database/ui-worker/ProcedureWorkerFrameAnimation.js'; 22import { FrameSpacingStruct } from '../database/ui-worker/ProcedureWorkerFrameSpacing.js'; 23import { JsCpuProfilerChartFrame } from './JsStruct.js'; 24 25export class SelectionParam { 26 recordStartNs: number = 0; 27 leftNs: number = 0; 28 rightNs: number = 0; 29 hasFps: boolean = false; 30 statisticsSelectData: any = undefined; 31 fileSystemVMData: any = undefined; 32 fileSystemIoData: any = undefined; 33 fileSystemFsData: any = undefined; 34 perfAll: boolean = false; 35 fileSysVirtualMemory: boolean = false; 36 diskIOLatency: boolean = false; 37 fsCount: number = 0; 38 vmCount: number = 0; 39 isCurrentPane: boolean = false; 40 startup: boolean = false; 41 staticInit: boolean = false; 42 43 cpus: Array<number> = []; 44 cpuStateFilterIds: Array<number> = []; 45 cpuFreqFilterIds: Array<number> = []; 46 cpuFreqLimitDatas: Array<Array<CpuFreqLimitsStruct>> = []; 47 threadIds: Array<number> = []; 48 processIds: Array<number> = []; 49 processTrackIds: Array<number> = []; 50 virtualTrackIds: Array<number> = []; 51 clockMapData: Map<string, Array<ClockStruct>> = new Map<string, Array<ClockStruct>>(); 52 irqMapData: Map<string, Array<IrqStruct>> = new Map<string, Array<IrqStruct>>(); 53 funTids: Array<number> = []; 54 funAsync: Array<{ name: string; pid: number }> = []; 55 nativeMemory: Array<String> = []; 56 nativeMemoryStatistic: Array<String> = []; 57 cpuAbilityIds: Array<string> = []; 58 memoryAbilityIds: Array<string> = []; 59 diskAbilityIds: Array<string> = []; 60 networkAbilityIds: Array<string> = []; 61 perfSampleIds: Array<number> = []; 62 perfCpus: Array<number> = []; 63 perfProcess: Array<number> = []; 64 perfThread: Array<number> = []; 65 fileSystemType: Array<number> = []; 66 sdkCounterIds: Array<string> = []; 67 sdkSliceIds: Array<string> = []; 68 diskIOipids: Array<number> = []; 69 diskIOReadIds: Array<number> = []; 70 diskIOWriteIds: Array<number> = []; 71 systemEnergy: Array<string> = []; 72 powerEnergy: Array<string> = []; 73 anomalyEnergy: Array<string> = []; 74 smapsType: Array<string> = []; 75 vmtrackershm: Array<string> = []; 76 promiseList: Array<Promise<any>> = []; 77 jankFramesData: Array<any> = []; 78 jsMemory: Array<any> = []; 79 taskFramesData: Array<FuncStruct> = []; 80 frameDynamic: Array<FrameDynamicStruct> = []; 81 frameAnimation: Array<FrameAnimationStruct> = []; 82 frameSpacing: Array<FrameSpacingStruct> = []; 83 jsCpuProfilerData: Array<JsCpuProfilerChartFrame> = []; 84 gpu: { 85 gl:boolean, 86 gpuTotal: boolean, 87 gpuWindow: boolean 88 } = { 89 gl: false, 90 gpuWindow:false, 91 gpuTotal: false 92 } 93 purgeableTotalAbility: Array<any> = []; 94 purgeableTotalVM: Array<any> = []; 95 purgeablePinAbility: Array<any> = []; 96 purgeablePinVM: Array<any> = []; 97 purgeableTotalSelection: Array<any> = []; 98 purgeablePinSelection: Array<any> = []; 99 dmaAbilityData: Array<any> = []; 100 gpuMemoryAbilityData: Array<any> = []; 101 dmaVmTrackerData: Array<any> = []; 102 gpuMemoryTrackerData: Array<any> = []; 103} 104 105export class BoxJumpParam { 106 leftNs: number = 0; 107 rightNs: number = 0; 108 state: string = ''; 109 processId: number = 0; 110 threadId: number = 0; 111} 112 113export class SelectionData { 114 name: string = ''; 115 process: string = ''; 116 pid: string = ''; 117 thread: string = ''; 118 tid: string = ''; 119 wallDuration: number = 0; 120 wallDurationFormat: string = ''; 121 avgDuration: string = ''; 122 occurrences: number = 0; 123 state: string = ''; 124 trackId: number = 0; 125 delta: string = ''; 126 rate: string = ''; 127 avgWeight: string = ''; 128 count: string = ''; 129 first: string = ''; 130 last: string = ''; 131 min: string = ''; 132 max: string = ''; 133 stateJX: string = ''; 134 cpu: number = 0; 135} 136 137export class Counter { 138 id: number = 0; 139 trackId: number = 0; 140 name: string = ''; 141 value: number = 0; 142 startTime: number = 0; 143} 144 145export class Fps { 146 startNS: number = 0; 147 timeStr: string = ''; 148 fps: number = 0; 149} 150