1fb726d48Sopenharmony_ci/*
2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd.
3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License.
5fb726d48Sopenharmony_ci * You may obtain a copy of the License at
6fb726d48Sopenharmony_ci *
7fb726d48Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8fb726d48Sopenharmony_ci *
9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and
13fb726d48Sopenharmony_ci * limitations under the License.
14fb726d48Sopenharmony_ci */
15fb726d48Sopenharmony_ci
16fb726d48Sopenharmony_ciimport { CompareStruct } from '../component/trace/sheet/SheetUtils';
17fb726d48Sopenharmony_ci
18fb726d48Sopenharmony_ciexport class SystemCpuSummary {
19fb726d48Sopenharmony_ci  startTime: number = -1;
20fb726d48Sopenharmony_ci  startTimeStr: string = '';
21fb726d48Sopenharmony_ci  duration: number = -1;
22fb726d48Sopenharmony_ci  durationStr: string = '';
23fb726d48Sopenharmony_ci  totalLoad: number = -1;
24fb726d48Sopenharmony_ci  totalLoadStr: string = '';
25fb726d48Sopenharmony_ci  userLoad: number = -1;
26fb726d48Sopenharmony_ci  userLoadStr: string = '';
27fb726d48Sopenharmony_ci  systemLoad: number = -1;
28fb726d48Sopenharmony_ci  systemLoadStr: string = '';
29fb726d48Sopenharmony_ci  threads: number = -1;
30fb726d48Sopenharmony_ci  threadsStr: string = '';
31fb726d48Sopenharmony_ci}
32fb726d48Sopenharmony_ci
33fb726d48Sopenharmony_ciexport class SystemDiskIOSummary {
34fb726d48Sopenharmony_ci  startTime: number = -1;
35fb726d48Sopenharmony_ci  startTimeStr: string = '';
36fb726d48Sopenharmony_ci  duration: number = -1;
37fb726d48Sopenharmony_ci  durationStr: string = '';
38fb726d48Sopenharmony_ci  dataRead: number = -1;
39fb726d48Sopenharmony_ci  dataReadStr: string = '';
40fb726d48Sopenharmony_ci  dataReadSec: number = -1;
41fb726d48Sopenharmony_ci  dataReadSecStr: string = '';
42fb726d48Sopenharmony_ci  dataWrite: number = -1;
43fb726d48Sopenharmony_ci  dataWriteStr: string = '';
44fb726d48Sopenharmony_ci  dataWriteSec: number = -1;
45fb726d48Sopenharmony_ci  dataWriteSecStr: string = '';
46fb726d48Sopenharmony_ci  readsIn: number = -1;
47fb726d48Sopenharmony_ci  readsInStr: string = '';
48fb726d48Sopenharmony_ci  readsInSec: number = -1;
49fb726d48Sopenharmony_ci  readsInSecStr: string = '';
50fb726d48Sopenharmony_ci  writeOut: number = -1;
51fb726d48Sopenharmony_ci  writeOutStr: string = '';
52fb726d48Sopenharmony_ci  writeOutSec: number = -1;
53fb726d48Sopenharmony_ci  writeOutSecStr: string = '';
54fb726d48Sopenharmony_ci}
55fb726d48Sopenharmony_ci
56fb726d48Sopenharmony_ciexport class ProcessHistory {
57fb726d48Sopenharmony_ci  processId: number = -1;
58fb726d48Sopenharmony_ci  alive: string = ''; // 0 alive and 1 dead
59fb726d48Sopenharmony_ci  firstSeen: string = '';
60fb726d48Sopenharmony_ci  firstSeenNumber: number = -1;
61fb726d48Sopenharmony_ci  lastSeen: string = '';
62fb726d48Sopenharmony_ci  lastSeenNumber: number = -1;
63fb726d48Sopenharmony_ci  processName: string = '';
64fb726d48Sopenharmony_ci  responsibleProcess: string = '';
65fb726d48Sopenharmony_ci  userName: string = '';
66fb726d48Sopenharmony_ci  cpuTime: string = '';
67fb726d48Sopenharmony_ci  cpuTimeNumber: number = -1;
68fb726d48Sopenharmony_ci  pss: number = -1;
69fb726d48Sopenharmony_ci}
70fb726d48Sopenharmony_ci
71fb726d48Sopenharmony_ciexport class LiveProcess {
72fb726d48Sopenharmony_ci  processId: number = -1;
73fb726d48Sopenharmony_ci  processName: string = '';
74fb726d48Sopenharmony_ci  responsibleProcess: string = '';
75fb726d48Sopenharmony_ci  userName: string = '';
76fb726d48Sopenharmony_ci  cpu: string = '';
77fb726d48Sopenharmony_ci  threads: number = -1;
78fb726d48Sopenharmony_ci  memory: string = '';
79fb726d48Sopenharmony_ci  memoryNumber: number = -1;
80fb726d48Sopenharmony_ci  diskWrite: number = -1;
81fb726d48Sopenharmony_ci  diskReads: number = -1;
82fb726d48Sopenharmony_ci  cpuTime: string = '';
83fb726d48Sopenharmony_ci  cpuTimeNumber: number = -1;
84fb726d48Sopenharmony_ci}
85fb726d48Sopenharmony_ci
86fb726d48Sopenharmony_ciexport class SystemNetworkSummary {
87fb726d48Sopenharmony_ci  startTime: number = -1;
88fb726d48Sopenharmony_ci  startTimeStr: string = '';
89fb726d48Sopenharmony_ci  duration: number = -1;
90fb726d48Sopenharmony_ci  durationStr: string = '';
91fb726d48Sopenharmony_ci  dataReceived: number = -1;
92fb726d48Sopenharmony_ci  dataReceivedStr: string = '';
93fb726d48Sopenharmony_ci  dataReceivedSec: number = -1;
94fb726d48Sopenharmony_ci  dataReceivedSecStr: string = '';
95fb726d48Sopenharmony_ci  dataSend: number = -1;
96fb726d48Sopenharmony_ci  dataSendStr: string = '';
97fb726d48Sopenharmony_ci  dataSendSec: number = -1;
98fb726d48Sopenharmony_ci  dataSendSecStr: string = '';
99fb726d48Sopenharmony_ci  packetsIn: number = -1;
100fb726d48Sopenharmony_ci  packetsInStr: string = '';
101fb726d48Sopenharmony_ci  packetsInSec: number = -1;
102fb726d48Sopenharmony_ci  packetsInSecStr: string = '';
103fb726d48Sopenharmony_ci  packetsOut: number = -1;
104fb726d48Sopenharmony_ci  packetsOutStr: string = '';
105fb726d48Sopenharmony_ci  packetsOutSec: number = -1;
106fb726d48Sopenharmony_ci  packetsOutSecStr: string = '';
107fb726d48Sopenharmony_ci}
108fb726d48Sopenharmony_ci
109fb726d48Sopenharmony_ciexport class SystemMemorySummary {
110fb726d48Sopenharmony_ci  startTimeStr: string = '0';
111fb726d48Sopenharmony_ci  durationStr: string = '0';
112fb726d48Sopenharmony_ci  durationNumber: number = -1;
113fb726d48Sopenharmony_ci  memoryTotal: string = '0';
114fb726d48Sopenharmony_ci  memFree: string = '0';
115fb726d48Sopenharmony_ci  buffers: string = '0';
116fb726d48Sopenharmony_ci  cached: string = '0';
117fb726d48Sopenharmony_ci  shmem: string = '0';
118fb726d48Sopenharmony_ci  slab: string = '0';
119fb726d48Sopenharmony_ci  swapTotal: string = '0';
120fb726d48Sopenharmony_ci  swapFree: string = '0';
121fb726d48Sopenharmony_ci  mapped: string = '0';
122fb726d48Sopenharmony_ci  vmallocUsed: string = '0';
123fb726d48Sopenharmony_ci  pageTables: string = '0';
124fb726d48Sopenharmony_ci  kernelStack: string = '0';
125fb726d48Sopenharmony_ci  active: string = '0';
126fb726d48Sopenharmony_ci  inactive: string = '0';
127fb726d48Sopenharmony_ci  unevictable: string = '0';
128fb726d48Sopenharmony_ci  vmallocTotal: string = '0';
129fb726d48Sopenharmony_ci  sUnreclaim: string = '0';
130fb726d48Sopenharmony_ci  kReclaimable: string = '0';
131fb726d48Sopenharmony_ci  cmaTotal: string = '0';
132fb726d48Sopenharmony_ci  cmaFree: string = '0';
133fb726d48Sopenharmony_ci  zram: string = '0';
134fb726d48Sopenharmony_ci}
135fb726d48Sopenharmony_ci
136fb726d48Sopenharmony_ciexport class Dma {
137fb726d48Sopenharmony_ci  processId: number = -1;
138fb726d48Sopenharmony_ci  timeStamp: string = '';
139fb726d48Sopenharmony_ci  startNs: number = -1;
140fb726d48Sopenharmony_ci  expTaskComm: string | number = '';
141fb726d48Sopenharmony_ci  avgSize: number = 0;
142fb726d48Sopenharmony_ci  minSize: number = -1;
143fb726d48Sopenharmony_ci  maxSize: number = -1;
144fb726d48Sopenharmony_ci  bufName: string | number = '';
145fb726d48Sopenharmony_ci  expName: string | number = '';
146fb726d48Sopenharmony_ci  size: number = -1;
147fb726d48Sopenharmony_ci  processName: string = '';
148fb726d48Sopenharmony_ci  process: string = ''; //processName + processId
149fb726d48Sopenharmony_ci  fd: number = -1;
150fb726d48Sopenharmony_ci  ino: number = -1;
151fb726d48Sopenharmony_ci  expPid: number = -1;
152fb726d48Sopenharmony_ci  flag: number = -1;
153fb726d48Sopenharmony_ci  avgSizes: string = '';
154fb726d48Sopenharmony_ci  minSizes: string = '';
155fb726d48Sopenharmony_ci  maxSizes: string = '';
156fb726d48Sopenharmony_ci  sizes: string = '';
157fb726d48Sopenharmony_ci  sumSize: number = -1;
158fb726d48Sopenharmony_ci  sumSizes: string = '';
159fb726d48Sopenharmony_ci}
160fb726d48Sopenharmony_ci
161fb726d48Sopenharmony_ciexport class GpuMemory {
162fb726d48Sopenharmony_ci  processId: number = -1;
163fb726d48Sopenharmony_ci  threadId: number = -1;
164fb726d48Sopenharmony_ci  timeStamp: string = '';
165fb726d48Sopenharmony_ci  expTaskComm: string = '';
166fb726d48Sopenharmony_ci  startNs: number = -1;
167fb726d48Sopenharmony_ci  avgSize: number = -1;
168fb726d48Sopenharmony_ci  minSize: number = -1;
169fb726d48Sopenharmony_ci  maxSize: number = -1;
170fb726d48Sopenharmony_ci  gpuName: string = '';
171fb726d48Sopenharmony_ci  gpuNameId: number = -1;
172fb726d48Sopenharmony_ci  processName: string = '';
173fb726d48Sopenharmony_ci  process: string = ''; //processName + processId
174fb726d48Sopenharmony_ci  threadName: string = '';
175fb726d48Sopenharmony_ci  thread: string = ''; //threadName + threadI
176fb726d48Sopenharmony_ci  size: number = -1;
177fb726d48Sopenharmony_ci  avgSizes: string = '';
178fb726d48Sopenharmony_ci  minSizes: string = '';
179fb726d48Sopenharmony_ci  maxSizes: string = '';
180fb726d48Sopenharmony_ci  sizes: string = '';
181fb726d48Sopenharmony_ci  sumSize: number = -1;
182fb726d48Sopenharmony_ci  sumSizes: string = '';
183fb726d48Sopenharmony_ci}
184fb726d48Sopenharmony_ci
185fb726d48Sopenharmony_ciexport class DmaComparison extends CompareStruct {
186fb726d48Sopenharmony_ci  processId: number = -1;
187fb726d48Sopenharmony_ci  processName: string = '';
188fb726d48Sopenharmony_ci  process: string = ''; //processName + processId
189fb726d48Sopenharmony_ci  sizes: string = '';
190fb726d48Sopenharmony_ci  thread: string = '';
191fb726d48Sopenharmony_ci
192fb726d48Sopenharmony_ci  constructor(process: string, value: number) {
193fb726d48Sopenharmony_ci    super(process, value);
194fb726d48Sopenharmony_ci    this.process = process;
195fb726d48Sopenharmony_ci  }
196fb726d48Sopenharmony_ci
197fb726d48Sopenharmony_ci  clone(isBase?: boolean): DmaComparison {
198fb726d48Sopenharmony_ci    const value = isBase ? this.value : -this.value;
199fb726d48Sopenharmony_ci    return new DmaComparison(this.process, value);
200fb726d48Sopenharmony_ci  }
201fb726d48Sopenharmony_ci}
202fb726d48Sopenharmony_ci
203fb726d48Sopenharmony_ciexport class GpuMemoryComparison extends CompareStruct {
204fb726d48Sopenharmony_ci  processId: number = -1;
205fb726d48Sopenharmony_ci  processName: string = '';
206fb726d48Sopenharmony_ci  process: string = ''; //processName + processId
207fb726d48Sopenharmony_ci  sizes: string = '';
208fb726d48Sopenharmony_ci  gpuNameId: number = -1;
209fb726d48Sopenharmony_ci  gpuName: string = '';
210fb726d48Sopenharmony_ci  threadName: string = '';
211fb726d48Sopenharmony_ci  threadId: number = -1;
212fb726d48Sopenharmony_ci  thread: string = '';
213fb726d48Sopenharmony_ci
214fb726d48Sopenharmony_ci  constructor(process: string, thread: string, gpuName: string, value: number) {
215fb726d48Sopenharmony_ci    super(process + '' + thread + '' + gpuName, value);
216fb726d48Sopenharmony_ci    this.process = process;
217fb726d48Sopenharmony_ci    this.gpuName = gpuName;
218fb726d48Sopenharmony_ci    this.thread = thread;
219fb726d48Sopenharmony_ci  }
220fb726d48Sopenharmony_ci
221fb726d48Sopenharmony_ci  clone(isBase?: boolean): GpuMemoryComparison {
222fb726d48Sopenharmony_ci    const value = isBase ? this.value : -this.value;
223fb726d48Sopenharmony_ci    return new GpuMemoryComparison(this.process, this.thread, this.gpuName, value);
224fb726d48Sopenharmony_ci  }
225fb726d48Sopenharmony_ci}
226