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