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