• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 { TabPaneCurrentSelection } from '../sheet/TabPaneCurrentSelection';
17import { TabPaneFreq } from '../sheet/freq/TabPaneFreq';
18import { TabPaneCpuByThread } from '../sheet/cpu/TabPaneCpuByThread';
19import { SelectionParam } from '../../../bean/BoxSelection';
20import { TabPaneCpuByProcess } from '../sheet/cpu/TabPaneCpuByProcess';
21import { TabPaneCpuUsage } from '../sheet/cpu/TabPaneCpuUsage';
22import { TabPaneSPT } from '../sheet/cpu/TabPaneSPT';
23import { TabPanePTS } from '../sheet/cpu/TabPanePTS';
24import { TabPaneSlices } from '../sheet/process/TabPaneSlices';
25import { TabPaneCounter } from '../sheet/process/TabPaneCounter';
26import { TabPaneFps } from '../sheet/fps/TabPaneFps';
27import { TabPaneFlag } from '../timer-shaft/TabPaneFlag';
28import { TabPaneBoxChild } from '../sheet/cpu/TabPaneBoxChild';
29import { TabPaneNMStatstics } from '../sheet/native-memory/TabPaneNMStatstics';
30import { TabPaneNMemory } from '../sheet/native-memory/TabPaneNMemory';
31import { TabPaneNMSampleList } from '../sheet/native-memory/TabPaneNMSampleList';
32import { TabpanePerfProfile } from '../sheet/hiperf/TabPerfProfile';
33import { TabPanePerfSampleChild } from '../sheet/hiperf/TabPerfSampleChild';
34import { TabPanePerfSample } from '../sheet/hiperf/TabPerfSampleList';
35import { TabPaneLiveProcesses } from '../sheet/ability/TabPaneLiveProcesses';
36import { TabPaneHistoryProcesses } from '../sheet/ability/TabPaneHistoryProcesses';
37import { TabPaneCpuAbility } from '../sheet/ability/TabPaneCpuAbility';
38import { TabPaneMemoryAbility } from '../sheet/ability/TabPaneMemoryAbility';
39import { TabPaneDiskAbility } from '../sheet/ability/TabPaneDiskAbility';
40import { TabPaneNetworkAbility } from '../sheet/ability/TabPaneNetworkAbility';
41import { TabPaneFileStatistics } from '../sheet/file-system/TabPaneFilesystemStatistics';
42import { TabpaneFilesystemCalltree } from '../sheet/file-system/TabPaneFileSystemCalltree';
43import { TabPaneFileSystemEvents } from '../sheet/file-system/TabPaneFileSystemEvents';
44import { TabPaneFileSystemDescHistory } from '../sheet/file-system/TabPaneFileSystemDescHistory';
45import { TabPaneFileSystemDescTimeSlice } from '../sheet/file-system/TabPaneFileSystemDescTimeSlice';
46import { TabPaneSdkSlice } from '../sheet/sdk/TabPaneSdkSlice';
47import { TabPaneSdkCounter } from '../sheet/sdk/TabPaneSdkCounter';
48import { TabPaneCounterSample } from '../sheet/cpu/TabPaneCounterSample';
49import { TabPaneThreadStates } from '../sheet/process/TabPaneThreadStates';
50import { TabPaneThreadUsage } from '../sheet/process/TabPaneThreadUsage';
51import { TabPaneFrequencySample } from '../sheet/cpu/TabPaneFrequencySample';
52import { TabPaneEnergyAnomaly } from '../sheet/energy/TabPaneEnergyAnomaly';
53import { TabPaneSystemDetails } from '../sheet/energy/TabPaneSystemDetails';
54import { TabPanePowerDetails } from '../sheet/energy/TabPanePowerDetails';
55import { TabPanePowerBattery } from '../sheet/energy/TabPanePowerBattery';
56import { TabPaneCpuStateClick } from '../sheet/cpu/TabPaneCpuStateClick';
57import { TabPaneVirtualMemoryStatistics } from '../sheet/file-system/TabPaneVirtualMemoryStatistics';
58import { TabPaneIOTierStatistics } from '../sheet/file-system/TabPaneIOTierStatistics';
59import { TabPaneIOCallTree, TabPaneVMCallTree } from '../sheet/file-system/TabPaneIOCallTree';
60import { TabPaneIoCompletionTimes } from '../sheet/file-system/TabPaneIoCompletionTimes';
61import { TabPaneVirtualMemoryEvents } from '../sheet/file-system/TabPaneVMEvents';
62import { TabPaneSmapsStatistics } from '../sheet/smaps/TabPaneSmapsStatistics';
63import { TabPaneSmapsSample } from '../sheet/smaps/TabPaneSmapsSample';
64import { TabPaneFreqLimit } from '../sheet/freq/TabPaneFreqLimit';
65import { TabPaneCpuFreqLimits } from '../sheet/freq/TabPaneCpuFreqLimits';
66import { TabpaneNMCalltree } from '../sheet/native-memory/TabPaneNMCallTree';
67import { TabPaneClockCounter } from '../sheet/clock/TabPaneClockCounter';
68import { TabPaneXpowerCounter } from '../sheet/xpower/TabPaneXpowerCounter';
69import { TabPaneXpowerComponentTop } from '../sheet/xpower/TabPaneXpowerComponentTop';
70import { TabPaneXpowerComponentAudio } from '../sheet/xpower/TabPaneXpowerComponentAudio';
71import { TabPaneXpowerComponentDisplay } from '../sheet/xpower/TabPaneXpowerComponentDisplay';
72import { TabPaneXpowerComponentCamera } from '../sheet/xpower/TabPaneXpowerComponentCamera';
73import { TabPaneXpowerComponentCpu } from '../sheet/xpower/TabPaneXpowerComponentCpu';
74import { TabPaneXpowerStatistic } from '../sheet/xpower/TabPaneXpowerStatistic';
75import { TabPaneXpowerWifiBytes } from '../sheet/xpower/TabPaneXpowerWifiBytes';
76import { TabPaneXpowerWifiPackets } from '../sheet/xpower/TabPaneXpowerWifiPackets';
77import { TabPaneXpowerDisplay } from '../sheet/xpower/TabPaneXpowerAppDetailDisplay';
78import { TabPaneXpowerStatisticCurrentData } from '../sheet/xpower/TabPaneXpowerStatisticCurrentData';
79import { TabPaneXpowerThreadEnergy } from '../sheet/xpower/TabPaneXpowerThreadEnergy';
80import { TabPaneXpowerThreadLoad } from '../sheet/xpower/TabPaneXpowerThreadLoad';
81import { TabPaneXpowerThreadInfoSelection } from '../sheet/xpower/TabPaneXpowerThreadInfoSelection';
82import { TabPaneXpowerGpuFreq } from '../sheet/xpower/TabPaneXpowerGpuFreq';
83import { TabPaneXpowerGpuFreqSelection } from '../sheet/xpower/TabPaneXpowerGpuFreqSelection';
84import { TabPaneHang } from '../sheet/hang/TabPaneHang';
85import { TabPaneHangSummary } from '../sheet/hang/TabPaneHangSummary';
86import { TabPaneIrqCounter } from '../sheet/irq/TabPaneIrqCounter';
87import { TabPaneFrames } from '../sheet/jank/TabPaneFrames';
88import { TabPanePerfAnalysis } from '../sheet/hiperf/TabPanePerfAnalysis';
89import { TabPaneNMStatisticAnalysis } from '../sheet/native-memory/TabPaneNMStatisticAnalysis';
90import { TabPaneFilesystemStatisticsAnalysis } from '../sheet/file-system/TabPaneFilesystemStatisticsAnalysis';
91import { TabPaneIOTierStatisticsAnalysis } from '../sheet/file-system/TabPaneIOTierStatisticsAnalysis';
92import { TabPaneVirtualMemoryStatisticsAnalysis } from '../sheet/file-system/TabPaneVirtualMemoryStatisticsAnalysis';
93import { TabPaneCurrent } from '../sheet/TabPaneCurrent';
94import { TabPaneStartup } from '../sheet/process/TabPaneStartup';
95import { TabPaneSysCall } from '../sheet/process/TabPaneSysCall';
96import { TabPaneStaticInit } from '../sheet/process/TabPaneStaticInit';
97import { TabPaneTaskFrames } from '../sheet/task/TabPaneTaskFrames';
98import { TabPaneFrameDynamic } from '../sheet/frame/TabPaneFrameDynamic';
99import { TabFrameSpacing } from '../sheet/frame/TabFrameSpacing';
100import { TabPaneSummary } from '../sheet/ark-ts/TabPaneSummary';
101import { TabPaneComparison } from '../sheet/ark-ts/TabPaneComparison';
102import { TabPaneJsCpuTopDown } from '../sheet/ark-ts/TabPaneJsCpuCallTree';
103import { TabPaneJsCpuBottomUp } from '../sheet/ark-ts/TabPaneJsCpuBottomUp';
104import { TabPaneJsCpuStatistics } from '../sheet/ark-ts/TabPaneJsCpuStatistics';
105import { TabPaneGpuClickSelect } from '../sheet/gpu/TabPaneGpuClickSelect';
106import { TabPaneGpuTotalBoxSelect } from '../sheet/gpu/TabPaneGpuTotalBoxSelect';
107import { TabPaneGpuWindowBoxSelect } from '../sheet/gpu/TabPaneGpuWindowBoxSelect';
108import { TabPaneGpuGL } from '../sheet/gpu/TabPaneGpuGL';
109import { TabPanePurgTotal } from '../sheet/ability/TabPanePurgTotal';
110import { TabPanePurgTotalSelection } from '../sheet/ability/TabPanePurgTotalSelection';
111import { TabPanePurgPin } from '../sheet/ability/TabPanePurgPin';
112import { TabPanePurgPinSelection } from '../sheet/ability/TabPanePurgPinSelection';
113import { TabPaneVmTrackerShmSelection } from '../sheet/vmtracker/TabPaneVmTrackerShmSelection';
114import { TabPaneVmTrackerShm } from '../sheet/vmtracker/TabPaneVmTrackerShm';
115import { TabPaneDmaAbility } from '../sheet/ability/TabPaneDmaAbility';
116import { TabPaneDmaSelectAbility } from '../sheet/ability/TabPaneDmaSelectAbility';
117import { TabPaneGpuMemoryAbility } from '../sheet/ability/TabPaneGpuMemoryAbility';
118import { TabPaneDmaVmTracker } from '../sheet/vmtracker/TabPaneDmaVmTracker';
119import { TabPaneGpuMemoryVmTracker } from '../sheet/vmtracker/TabPaneGpuMemoryVmTracker';
120import { TabPaneGpuMemorySelectAbility } from '../sheet/ability/TabPaneGpuMemorySelectAbility';
121import { TabPaneGpuMemorySelectVmTracker } from '../sheet/vmtracker/TabPaneGpuMemorySelectVmTracker';
122import { TabPaneDmaSelectVmTracker } from '../sheet/vmtracker/TabPaneDmaSelectVmTracker';
123import { TabpanePerfBottomUp } from '../sheet/hiperf/TabPerfBottomUp';
124import { TabPanePurgTotalComparisonAbility } from '../sheet/ability/TabPanePurgTotalComparisonAbility';
125import { TabPanePurgPinComparisonAbility } from '../sheet/ability/TabPanePurgPinComparisonAbility';
126import { TabPanePurgTotalComparisonVM } from '../sheet/vmtracker/TabPanePurgTotalComparisonVM';
127import { TabPanePurgPinComparisonVM } from '../sheet/vmtracker/TabPanePurgPinComparisonVM';
128import { TabPaneDmaAbilityComparison } from '../sheet/ability/TabPaneDmaAbilityComparison';
129import { TabPaneGpuMemoryComparison } from '../sheet/ability/TabPaneGpuMemoryComparison';
130import { TabPaneDmaVmTrackerComparison } from '../sheet/vmtracker/TabPaneDmaVmTrackerComparison';
131import { TabPaneGpuMemoryVmTrackerComparison } from '../sheet/vmtracker/TabPaneGpuMemoryVmTrackerComparison';
132import { TabPaneVmTrackerShmComparison } from '../sheet/vmtracker/TabPaneVmTrackerShmComparison';
133import { TabPaneSmapsComparison } from '../sheet/smaps/TabPaneSmapsComparison';
134import { TabPaneSmapsRecord } from '../sheet/smaps/TabPaneSmapsRecord';
135import { TabPaneGpuClickSelectComparison } from '../sheet/gpu/TabPaneGpuClickSelectComparison';
136import { TabPaneHiLogs } from '../sheet/hilog/TabPaneHiLogs';
137import { TabPaneHiLogSummary } from '../sheet/hilog/TabPaneHiLogSummary';
138import { TabPaneSchedPriority } from '../sheet/cpu/TabPaneSchedPriority';
139import { TabPaneGpuResourceVmTracker } from '../sheet/vmtracker/TabPaneGpuResourceVmTracker';
140import { TabPaneGpuGraph } from '../sheet/gpu/TabPaneGraph';
141import { TabPaneFreqUsage } from '../sheet/frequsage/TabPaneFreqUsage';
142import { TabPaneHisysEvents } from '../sheet/hisysevent/TabPaneHisysEvents';
143import { TabPaneHiSysEventSummary } from '../sheet/hisysevent/TabPaneHiSysEventSummary';
144import { TabPaneBinders } from '../sheet/binder/TabPaneBinders';
145import { TabPaneGpufreq } from '../sheet/gpufreq/TabPaneGpufreqUsage';
146import { TabPaneSampleInstruction } from '../sheet/bpftrace/TabPaneSampleInstruction';
147import { TabPaneDataCut } from '../sheet/TabPaneDataCut';
148import { TabPaneGpuCounterSelection } from '../sheet/gpu-counter/TabPaneGpuCounterSelection';
149import { TabPaneGpuCounter } from '../sheet/gpu-counter/TabPaneGpuCounter';
150import { TabPaneTimeParallel } from '../sheet/parallel/TabPaneTimeParallel';
151import { TabPaneMtParallel } from '../sheet/parallel/TabPaneMtParallel';
152import { TabPanePerfAsync } from '../sheet/hiperf/TabPerfAsyncList';
153import { TabPaneUserPlugin } from '../sheet/userPlugin/TabPaneUserPlugin';
154import { TabPaneDmaFence } from '../sheet/dma-fence/TabPaneDmaFenceSelect';
155import { TabPaneSliceChild } from '../sheet/process/TabPaneSliceChild';
156import { TabPaneSysCallChild } from '../sheet/process/TabPaneSysCallChild';
157import { TabPerfFuncAsm } from '../sheet/hiperf/TabPerfFuncAsm';
158
159export let tabConfig: {
160  [key: string]: {
161    title: string
162    type: unknown
163    require?: (param: SelectionParam) => boolean
164  }
165} = {
166  'current-selection': {
167    title: 'Current Selection',
168    type: TabPaneCurrentSelection,
169  }, //cpu data click
170  'cpu-state-click': {
171    title: 'Cpu State',
172    type: TabPaneCpuStateClick,
173  },
174  'box-freq': {
175    title: 'Frequency',
176    type: TabPaneFreq,
177  }, //freq data click
178  'box-freq-limit': {
179    title: 'Frequency Limits',
180    type: TabPaneFreqLimit,
181  },
182  'box-cpu-freq-limit': {
183    title: 'Cpu Frequency Limits',
184    type: TabPaneCpuFreqLimits,
185    require: (param: SelectionParam) => param.cpuFreqLimit.length > 0,
186  },
187  'box-cpu-thread': {
188    title: 'CPU by thread',
189    type: TabPaneCpuByThread,
190    require: (param: SelectionParam) => param.cpus.length > 0,
191  }, //range select
192  'box-cpu-process': {
193    title: 'CPU by process',
194    type: TabPaneCpuByProcess,
195    require: (param: SelectionParam) => param.cpus.length > 0,
196  },
197  'box-cpu-usage': {
198    title: 'CPU Usage',
199    type: TabPaneCpuUsage,
200    require: (param: SelectionParam) => param.cpus.length > 0,
201  },
202  'box-spt': {
203    title: 'Thread Switches',
204    type: TabPaneSPT,
205    require: (param: SelectionParam) => param.cpus.length > 0,
206  },
207  'box-pts': {
208    title: 'Thread States',
209    type: TabPanePTS,
210    require: (param: SelectionParam) => param.cpus.length > 0,
211  },
212  'box-thread-states': {
213    title: 'Thread by State',
214    type: TabPaneThreadStates,
215    require: (param: SelectionParam) => param.threadIds.length > 0,
216  },
217  'box-process-startup': {
218    title: 'App Startups',
219    type: TabPaneStartup,
220    require: (param: SelectionParam) => param.processIds.length > 0 && param.startup,
221  },
222  'box-thread-syscall': {
223    title: 'SysCall Event',
224    type: TabPaneSysCall,
225    require: (param: SelectionParam) => param.processSysCallIds.length > 0 || param.threadSysCallIds.length > 0,
226  },
227  'box-thread-syscall-child': {
228    title: '',
229    type: TabPaneSysCallChild,
230  },
231  'box-process-static-init': {
232    title: 'Static Initialization',
233    type: TabPaneStaticInit,
234    require: (param: SelectionParam) => param.processIds.length > 0 && param.staticInit,
235  },
236  'box-thread-usage': {
237    title: 'Thread Usage',
238    type: TabPaneThreadUsage,
239    require: (param: SelectionParam) => param.threadIds.length > 0,
240  },
241  'box-slices': {
242    title: 'Slices',
243    type: TabPaneSlices,
244    require: (param: SelectionParam) => param.funTids.length > 0 || param.funAsync.length > 0 || param.funCatAsync.length > 0,
245  },
246  'box-perf-analysis': {
247    title: 'Analysis',
248    type: TabPanePerfAnalysis,
249    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
250  },
251  'box-perf-bottom-up': {
252    title: 'Bottom Up',
253    type: TabpanePerfBottomUp,
254    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
255  },
256  'box-perf-profile': {
257    title: 'Perf Profile',
258    type: TabpanePerfProfile,
259    require: (param: SelectionParam) => param.perfSampleIds.length > 0 || param.threadIds.length > 0,
260  },
261  'box-perf-sample': {
262    title: 'Sample List',
263    type: TabPanePerfSample,
264    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
265  },
266  'box-perf-sample-child': {
267    title: '',
268    type: TabPanePerfSampleChild
269  },
270  'box-perf-async': {
271    title: 'Async Call Profile',
272    type: TabPanePerfAsync,
273    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
274  },
275  'box-counters': {
276    title: 'Counters',
277    type: TabPaneCounter,
278    require: (param: SelectionParam) => param.processTrackIds.length > 0 || param.virtualTrackIds.length > 0,
279  },
280  'box-clock-counters': {
281    title: 'Clock Counters',
282    type: TabPaneClockCounter,
283    require: (param: SelectionParam) => param.clockMapData.size > 0,
284  },
285  'box-xpower-counters': {
286    title: 'Xpower Counters',
287    type: TabPaneXpowerCounter,
288    require: (param: SelectionParam) => param.xpowerMapData.size > 0,
289  },
290  'box-xpower-component-top': {
291    title: 'Xpower Component Top',
292    type: TabPaneXpowerComponentTop,
293    require: (param: SelectionParam) => param.xpowerComponentTopMapData.size > 0,
294  },
295  'box-xpower-statistic': {
296    title: 'Xpower Statistic',
297    type: TabPaneXpowerStatistic,
298    require: (param: SelectionParam) => param.xpowerStatisticMapData.size > 0,
299  },
300  'box-xpower-display': {
301    title: 'Xpower Display Detail',
302    type: TabPaneXpowerDisplay,
303    require: (param: SelectionParam) => param.xpowerDisplayMapData.size > 0,
304  },
305  'box-xpower-wifiPackets': {
306    title: 'Xpower WifiPackets',
307    type: TabPaneXpowerWifiPackets,
308    require: (param: SelectionParam) => param.xpowerWifiPacketsMapData.size > 0,
309  },
310  'box-xpower-wifiBytes': {
311    title: 'Xpower WifiBytes',
312    type: TabPaneXpowerWifiBytes,
313    require: (param: SelectionParam) => param.xpowerWifiBytesMapData.size > 0,
314  },
315  'box-xpower-statistic-current-data': {
316    title: 'Xpower Statistic Current Data',
317    type: TabPaneXpowerStatisticCurrentData,
318  },
319  'box-xpower-thread-energy': {
320    title: 'Xpower Thread energy',
321    type: TabPaneXpowerThreadEnergy,
322    require: (param: SelectionParam) => param.xpowerThreadEnergyMapData.size > 0,
323  },
324  'box-xpower-thread-load': {
325    title: 'Xpower Thread Load',
326    type: TabPaneXpowerThreadLoad,
327    require: (param: SelectionParam) => param.xpowerThreadLoadMapData.size > 0,
328  },
329  'box-xpower-gpu-freq': {
330    title: 'Xpower Gpu Frequency',
331    type: TabPaneXpowerGpuFreq,
332    require: (param: SelectionParam) => param.xpowerGpuFreqMapData.size > 0,
333  },
334  'box-hang': {
335    title: 'Hangs',
336    type: TabPaneHang,
337    require: (param: SelectionParam) => param.hangMapData.size > 0,
338  },
339  'box-hang-summary': {
340    title: 'Hang Summary',
341    type: TabPaneHangSummary,
342    require: (param: SelectionParam) => param.hangMapData.size > 0,
343  },
344  'box-irq-counters': {
345    title: 'Irq Counters',
346    type: TabPaneIrqCounter,
347    require: (param: SelectionParam) => param.irqCallIds.length > 0 || param.softIrqCallIds.length > 0,
348  },
349  'box-fps': {
350    title: 'FPS',
351    type: TabPaneFps,
352    require: (param: SelectionParam) => param.hasFps,
353  },
354  'box-cpu-child': {
355    title: '',
356    type: TabPaneBoxChild,
357  },
358  'box-native-statstics': {
359    title: 'Statistics',
360    type: TabPaneNMStatstics,
361    require: (param: SelectionParam) => param.nativeMemory.length > 0,
362  },
363  'box-native-statistic-analysis': {
364    title: 'Analysis',
365    type: TabPaneNMStatisticAnalysis,
366    require: (param: SelectionParam) => param.nativeMemory.length > 0 || param.nativeMemoryStatistic.length > 0,
367  },
368  'box-native-calltree': {
369    title: 'Call Info',
370    type: TabpaneNMCalltree,
371    require: (param: SelectionParam) => param.nativeMemory.length > 0 || param.nativeMemoryStatistic.length > 0,
372  },
373  'box-native-memory': {
374    title: 'Native Memory',
375    type: TabPaneNMemory,
376    require: (param: SelectionParam) => param.nativeMemory.length > 0,
377  },
378  'box-native-sample': {
379    title: 'Snapshot List',
380    type: TabPaneNMSampleList,
381    require: (param: SelectionParam) => param.nativeMemory.length > 0,
382  },
383
384  'box-live-processes-child': {
385    title: 'Live Processes',
386    type: TabPaneLiveProcesses,
387    require: (param: SelectionParam) =>
388      param.cpuAbilityIds.length > 0 ||
389      (param.memoryAbilityIds.length > 0 && param.diskAbilityIds.length > 0) ||
390      param.networkAbilityIds.length > 0,
391  },
392  'box-history-processes-child': {
393    title: 'Processes History',
394    type: TabPaneHistoryProcesses,
395    require: (param: SelectionParam) =>
396      param.cpuAbilityIds.length > 0 ||
397      param.memoryAbilityIds.length > 0 ||
398      param.diskAbilityIds.length > 0 ||
399      param.networkAbilityIds.length > 0,
400  },
401  'box-system-cpu-child': {
402    title: 'System CPU Summary',
403    type: TabPaneCpuAbility,
404    require: (param: SelectionParam) => param.cpuAbilityIds.length > 0,
405  },
406  'box-system-memory-child': {
407    title: 'System Memory Summary',
408    type: TabPaneMemoryAbility,
409    require: (param: SelectionParam) => param.memoryAbilityIds.length > 0,
410  },
411  'box-system-diskIo-child': {
412    title: 'System Disk Summary',
413    type: TabPaneDiskAbility,
414    require: (param: SelectionParam) => param.diskAbilityIds.length > 0,
415  },
416  'box-system-network-child': {
417    title: 'System Network Summary',
418    type: TabPaneNetworkAbility,
419    require: (param: SelectionParam) => param.networkAbilityIds.length > 0,
420  },
421  'box-sdk-slice-child': {
422    title: 'Sdk Slice',
423    type: TabPaneSdkSlice,
424    require: (param: SelectionParam) => param.sdkSliceIds.length > 0,
425  },
426  'box-system-counter-child': {
427    title: 'SDK Counter',
428    type: TabPaneSdkCounter,
429    require: (param: SelectionParam) => param.sdkCounterIds.length > 0,
430  },
431  'box-counter-sample': {
432    title: 'Cpu State',
433    type: TabPaneCounterSample,
434    require: (param: SelectionParam) => param.cpuStateFilterIds.length > 0,
435  },
436
437  'box-frequency-sample': {
438    title: 'Cpu Frequency',
439    type: TabPaneFrequencySample,
440    require: (param: SelectionParam) => param.cpuFreqFilterIds.length > 0,
441  },
442  'box-anomaly-details': {
443    title: 'Anomaly details',
444    type: TabPaneEnergyAnomaly,
445    require: (param: SelectionParam) => param.anomalyEnergy.length > 0,
446  },
447  'box-system-details': {
448    title: 'System Details',
449    type: TabPaneSystemDetails,
450    require: (param: SelectionParam) => param.systemEnergy.length > 0,
451  },
452  'box-power-battery': {
453    title: 'Power Battery',
454    type: TabPanePowerBattery,
455    require: (param: SelectionParam) => param.powerEnergy.length > 0,
456  },
457  'box-power-details': {
458    title: 'Power Details',
459    type: TabPanePowerDetails,
460    require: (param: SelectionParam) => param.powerEnergy.length > 0,
461  },
462  'box-file-system-statistics': {
463    title: 'Filesystem statistics',
464    type: TabPaneFileStatistics,
465    require: (param: SelectionParam) => param.fileSystemType.length > 0,
466  },
467  'box-file-system-statistics-analysis': {
468    title: 'Analysis',
469    type: TabPaneFilesystemStatisticsAnalysis,
470    require: (param: SelectionParam) => param.fileSystemType.length > 0,
471  },
472  'box-file-system-calltree': {
473    title: 'Filesystem Calltree',
474    type: TabpaneFilesystemCalltree,
475    require: (param: SelectionParam) => param.fileSystemType.length > 0 || param.fsCount > 0,
476  },
477  'box-file-system-event': {
478    title: 'Filesystem Events',
479    type: TabPaneFileSystemEvents,
480    require: (param: SelectionParam) => param.fileSystemType.length > 0,
481  },
482  'box-file-system-desc-history': {
483    title: 'File Descriptor History',
484    type: TabPaneFileSystemDescHistory,
485    require: (param: SelectionParam) => param.fileSystemType.length > 0,
486  },
487  'box-file-system-desc-time-slice': {
488    title: 'File Descriptor Time Slice',
489    type: TabPaneFileSystemDescTimeSlice,
490    require: (param: SelectionParam) => param.fileSystemType.length > 0,
491  },
492  'box-virtual-memory-statistics': {
493    title: 'Page Fault Statistics',
494    type: TabPaneVirtualMemoryStatistics,
495    require: (param: SelectionParam) => param.fileSysVirtualMemory,
496  },
497  'box-virtual-memory-statistics-analysis': {
498    title: 'Analysis',
499    type: TabPaneVirtualMemoryStatisticsAnalysis,
500    require: (param: SelectionParam) => param.fileSysVirtualMemory,
501  },
502  'box-vm-calltree': {
503    title: 'Page Fault CallTree',
504    type: TabPaneVMCallTree,
505    require: (param: SelectionParam) => param.fileSysVirtualMemory || param.vmCount > 0,
506  },
507  'box-vm-events': {
508    title: 'Page Fault Events',
509    type: TabPaneVirtualMemoryEvents,
510    require: (param: SelectionParam) => param.fileSysVirtualMemory,
511  },
512  'box-io-tier-statistics': {
513    title: 'Disk I/O Tier Statistics',
514    type: TabPaneIOTierStatistics,
515    require: (param: SelectionParam) => param.diskIOLatency,
516  },
517  'box-io-tier-statistics-analysis': {
518    title: 'Analysis',
519    type: TabPaneIOTierStatisticsAnalysis,
520    require: (param: SelectionParam) => param.diskIOLatency,
521  },
522  'box-io-calltree': {
523    title: 'Disk I/O Latency Calltree',
524    type: TabPaneIOCallTree,
525    require: (param: SelectionParam) => param.diskIOLatency || param.diskIOipids.length > 0,
526  },
527  'box-io-events': {
528    title: 'Trace Completion Times',
529    type: TabPaneIoCompletionTimes,
530    require: (param: SelectionParam) => param.diskIOLatency,
531  },
532  'box-smaps-statistics': {
533    title: 'Smaps Statistic',
534    type: TabPaneSmapsStatistics,
535    require: (param: SelectionParam) => param.smapsType.length > 0,
536  },
537  'box-smaps-sample': {
538    title: 'Smaps sample',
539    type: TabPaneSmapsSample,
540    require: (param: SelectionParam) => param.smapsType.length > 0,
541  },
542  'box-smaps-comparison': {
543    title: 'Smaps Comparison',
544    type: TabPaneSmapsComparison,
545  },
546  'box-smaps-record': {
547    title: 'Native Heap',
548    type: TabPaneSmapsRecord,
549  },
550  'box-vmtracker-shm': {
551    title: 'SHM',
552    type: TabPaneVmTrackerShm,
553    require: (param: SelectionParam) => param.vmtrackershm.length > 0,
554  },
555  'box-vmtracker-shm-selection': {
556    title: 'SHM Selection',
557    type: TabPaneVmTrackerShmSelection,
558  },
559  'box-frames': {
560    title: 'Frames',
561    type: TabPaneFrames,
562    require: (param: SelectionParam) => param.jankFramesData.length > 0,
563  },
564  'box-heap-summary': {
565    title: 'Summary',
566    type: TabPaneSummary,
567    require: (param: SelectionParam) => param.jsMemory.length > 0,
568  },
569  'box-heap-comparison': {
570    title: 'Comparison',
571    type: TabPaneComparison,
572  }, // snapshot data click
573  'box-task-frames': {
574    title: 'Frames',
575    type: TabPaneTaskFrames,
576    require: (param: SelectionParam) => param.taskFramesData.length > 0,
577  },
578  'box-frame-dynamic': {
579    title: 'Frame Dynamic',
580    type: TabPaneFrameDynamic,
581    require: (param: SelectionParam) => param.frameDynamic.length > 0,
582  },
583  'box-frames-spacing': {
584    title: 'Frame spacing',
585    type: TabFrameSpacing,
586    require: (param: SelectionParam) => param.frameSpacing.length > 0,
587  },
588  'box-js-Profiler-statistics': {
589    title: 'Js Profiler Statistics',
590    type: TabPaneJsCpuStatistics,
591    require: (param: SelectionParam) => param.jsCpuProfilerData.length > 0,
592  },
593  'box-js-Profiler-bottom-up': {
594    title: 'Js Profiler BottomUp',
595    type: TabPaneJsCpuBottomUp,
596    require: (param: SelectionParam) => param.jsCpuProfilerData.length > 0,
597  },
598  'box-js-Profiler-top-down': {
599    title: 'Js Profiler CallTree',
600    type: TabPaneJsCpuTopDown,
601    require: (param: SelectionParam) => param.jsCpuProfilerData.length > 0,
602  },
603  'gpu-click-select': {
604    title: 'Gpu Dump Selection',
605    type: TabPaneGpuClickSelect,
606  },
607  'gpu-gl-box-select': {
608    title: 'GL',
609    type: TabPaneGpuGL,
610    require: (param: SelectionParam) => param.gpu.gl,
611  },
612  'gpu-graph-box-select': {
613    title: 'Graph',
614    type: TabPaneGpuGraph,
615    require: (param: SelectionParam) => param.gpu.graph,
616  },
617  'gpu-total-box-select': {
618    title: 'Gpu Total',
619    type: TabPaneGpuTotalBoxSelect,
620    require: (param: SelectionParam) => param.gpu.gpuTotal,
621  },
622  'gpu-window-box-select': {
623    title: 'Gpu Window',
624    type: TabPaneGpuWindowBoxSelect,
625    require: (param: SelectionParam) => param.gpu.gpuWindow,
626  },
627  'box-purgeable-total': {
628    title: 'Purg Total',
629    type: TabPanePurgTotal,
630    require: (param: SelectionParam) => param.purgeableTotalAbility.length > 0 || param.purgeableTotalVM.length > 0,
631  },
632  'box-purgeable-total-selection': {
633    title: 'Purg Total Selection',
634    type: TabPanePurgTotalSelection,
635  },
636  'box-purgeable-pin': {
637    title: 'Purg Pin',
638    type: TabPanePurgPin,
639    require: (param: SelectionParam) => param.purgeablePinAbility.length > 0 || param.purgeablePinVM.length > 0,
640  },
641  'box-purgeable-pin-selection': {
642    title: 'Purg Pin Selection',
643    type: TabPanePurgPinSelection,
644  },
645  'box-purgeable-total-comparison-ability': {
646    title: 'Purg Total Comparison',
647    type: TabPanePurgTotalComparisonAbility,
648  },
649  'box-purgeable-pin-comparison-ability': {
650    title: 'Purg Pin Comparison',
651    type: TabPanePurgPinComparisonAbility,
652  },
653  'box-purgeable-total-comparison-vm': {
654    title: 'Purg Total Comparison',
655    type: TabPanePurgTotalComparisonVM,
656  },
657  'box-purgeable-pin-comparison-vm': {
658    title: 'Purg Pin Comparison',
659    type: TabPanePurgPinComparisonVM,
660  },
661  'box-dma-ability': {
662    title: 'DMA',
663    type: TabPaneDmaAbility,
664    require: (param: SelectionParam) => param.dmaAbilityData.length > 0,
665  },
666  'box-dma-selection-ability': {
667    title: 'DMA Selection',
668    type: TabPaneDmaSelectAbility,
669  }, //DMA Ability click
670  'box-gpu-memory-ability': {
671    title: 'Gpu Memory',
672    type: TabPaneGpuMemoryAbility,
673    require: (param: SelectionParam) => param.gpuMemoryAbilityData.length > 0,
674  },
675  'box-smaps-dma': {
676    title: 'DMA',
677    type: TabPaneDmaVmTracker,
678    require: (param: SelectionParam) => param.dmaVmTrackerData.length > 0,
679  },
680  'box-smaps-gpu-memory': {
681    title: 'Gpu Memory',
682    type: TabPaneGpuMemoryVmTracker,
683    require: (param: SelectionParam) => param.gpuMemoryTrackerData.length > 0,
684  },
685  'box-smaps-gpu-resource': {
686    title: 'Gpu Resource',
687    type: TabPaneGpuResourceVmTracker,
688  },
689  'box-dma-selection-vmTracker': {
690    title: 'DMA Selection',
691    type: TabPaneDmaSelectVmTracker,
692  }, //DMA VmTracker click
693  'box-gpu-memory-selection-ability': {
694    title: 'Gpu Memory Selection',
695    type: TabPaneGpuMemorySelectAbility,
696  }, // Gpu Memory ability click
697  'box-gpu-memory-selection-vmTracker': {
698    title: 'Gpu Memory Selection',
699    type: TabPaneGpuMemorySelectVmTracker,
700  }, //Gpu Memory DMA VmTracker click
701  'box-dma-ability-comparison': {
702    title: 'DMA Comparison',
703    type: TabPaneDmaAbilityComparison,
704  }, // dma Comparison ability click
705  'box-gpu-memory-comparison': {
706    title: 'Gpu Memory Comparison',
707    type: TabPaneGpuMemoryComparison,
708  }, // Gpu Memory Comparison click
709  'box-vmTracker-comparison': {
710    title: 'DMA Comparison',
711    type: TabPaneDmaVmTrackerComparison,
712  }, // DMA Comparison click
713  'box-gpu-memory-vmTracker-comparison': {
714    title: 'Gpu Memory Comparison',
715    type: TabPaneGpuMemoryVmTrackerComparison,
716  }, // DMA Comparison click
717  'box-vmtracker-shm-comparison': {
718    title: 'SHM Comparison',
719    type: TabPaneVmTrackerShmComparison,
720  },
721  'gpu-click-select-comparison': {
722    title: 'Gpu Dump Comparison',
723    type: TabPaneGpuClickSelectComparison,
724  },
725  'box-hilogs': {
726    title: 'Hilogs',
727    type: TabPaneHiLogs,
728    require: (param: SelectionParam) => param.hiLogs.length > 0,
729  },
730  'box-hilogs-summary': {
731    title: 'Summary',
732    type: TabPaneHiLogSummary,
733    require: (param: SelectionParam) => param.hiLogs.length > 0,
734  },
735  'box-sched-priority': {
736    title: 'Sched Priority',
737    type: TabPaneSchedPriority,
738    require: (param: SelectionParam) => param.cpus.length > 0,
739  },
740  'box-flag': {
741    title: 'Flags Selection',
742    type: TabPaneFlag,
743  },
744  'tabpane-current': {
745    title: 'M Selection',
746    type: TabPaneCurrent,
747    require: (param: SelectionParam) => param.isCurrentPane,
748  }, //current selection
749  'tabpane-frequsage': {
750    title: 'Freq Usage',
751    type: TabPaneFreqUsage,
752    require: (param: SelectionParam) => param.threadIds.length > 0,
753  },
754  'tab-hisysevents': {
755    title: 'HiSysevents',
756    type: TabPaneHisysEvents,
757    require: (param: SelectionParam) => param.hiSysEvents.length > 0,
758  },
759  'tab-hisysevents-summary': {
760    title: 'Statistics',
761    type: TabPaneHiSysEventSummary,
762    require: (param: SelectionParam) => param.hiSysEvents.length > 0,
763  },
764  'tabpane-gpufreq': {
765    title: 'Gpufreq Usage',
766    type: TabPaneGpufreq,
767    require: (param: SelectionParam) => param.clockMapData.size === 1 && param.clockMapData.has('gpufreq Frequency') === true,
768  },
769  'tabpane-datacut': {
770    title: 'Data Cut',
771    type: TabPaneDataCut,
772    require: (param: SelectionParam) => param.threadIds.length > 0 ||
773      (param.clockMapData.size > 0 && param.clockMapData.has('gpufreq Frequency') === true),
774  },
775  'box-sample-instruction': {
776    title: 'Data Flow',
777    type: TabPaneSampleInstruction,
778  },
779  'box-gpu-counter-selection': {
780    title: 'Gpu Counter',
781    type: TabPaneGpuCounterSelection,
782    require: (param: SelectionParam) => param.gpuCounter.length > 0,
783  },
784  'box-gpu-counter': {
785    title: 'Gpu Counter',
786    type: TabPaneGpuCounter,
787  },
788  'tabpane-time-parallel': {
789    title: 'Time Parallel',
790    type: TabPaneTimeParallel,
791    require: (param: SelectionParam) => param.threadIds.length > 0,
792  },
793  'tabpane-mt-parallel': {
794    title: 'MT Parallel',
795    type: TabPaneMtParallel,
796    require: (param: SelectionParam) => param.threadIds.length > 0,
797  },
798  'tab-pane-userplugin': {
799    title: 'User Plugin',
800    type: TabPaneUserPlugin,
801  },
802  'tabpane-dmafrence': {
803    title: 'Dma Frence',
804    type: TabPaneDmaFence,
805    require: (param: SelectionParam) => param.dmaFenceNameData.length > 0,
806  },
807  'box-slice-child': {
808    title: '',
809    type: TabPaneSliceChild,
810  },
811  'tab-perf-func-asm': {
812    title: '',
813    type: TabPerfFuncAsm,
814  },
815  'box-xpower-thread-info-selection': {
816    title: 'Thread Info Selection',
817    type: TabPaneXpowerThreadInfoSelection,
818  }, //xpower thread info click
819  'box-xpower-gpu-freq-selection': {
820    title: 'Gpu Freq Selection',
821    type: TabPaneXpowerGpuFreqSelection,
822  }, //xpower gpu freq click
823};
824