1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci// VM Tracker Dma泳道图 16fb726d48Sopenharmony_ciimport { Dma, DmaComparison } from '../../bean/AbilityMonitor'; 17fb726d48Sopenharmony_ciimport { query } from '../SqlLite'; 18fb726d48Sopenharmony_ciimport { SnapshotStruct } from '../ui-worker/ProcedureWorkerSnapshot'; 19fb726d48Sopenharmony_ci 20fb726d48Sopenharmony_ciexport const queryDmaSampsData = (process: number): Promise<Array<SnapshotStruct>> => 21fb726d48Sopenharmony_ci query( 22fb726d48Sopenharmony_ci 'queryDmaSampsData', 23fb726d48Sopenharmony_ci `SELECT 24fb726d48Sopenharmony_ci (A.ts - B.start_ts) as startNs, 25fb726d48Sopenharmony_ci sum(A.size) as value, 26fb726d48Sopenharmony_ci A.flag as flag, 27fb726d48Sopenharmony_ci A.ipid as ipid, 28fb726d48Sopenharmony_ci E.data as expTaskComm 29fb726d48Sopenharmony_ci FROM memory_dma A,trace_range B 30fb726d48Sopenharmony_ci left join data_dict as E on E.id=A.exp_task_comm_id 31fb726d48Sopenharmony_ci WHERE 32fb726d48Sopenharmony_ci A.flag = 0 33fb726d48Sopenharmony_ci AND $pid = A.ipid 34fb726d48Sopenharmony_ci AND A.ts < B.end_ts 35fb726d48Sopenharmony_ci GROUP by A.ts;`, 36fb726d48Sopenharmony_ci { $pid: process } 37fb726d48Sopenharmony_ci ); 38fb726d48Sopenharmony_ci 39fb726d48Sopenharmony_ciexport const queryisExistsDmaData = (process: number): Promise<Array<SnapshotStruct>> => 40fb726d48Sopenharmony_ci query( 41fb726d48Sopenharmony_ci 'queryisExistsDmaData', 42fb726d48Sopenharmony_ci `SELECT EXISTS ( 43fb726d48Sopenharmony_ci SELECT 1 44fb726d48Sopenharmony_ci FROM memory_dma A,trace_range B 45fb726d48Sopenharmony_ci left join data_dict as E on E.id=A.exp_task_comm_id 46fb726d48Sopenharmony_ci WHERE A.flag = 0 47fb726d48Sopenharmony_ci AND $pid = A.ipid 48fb726d48Sopenharmony_ci AND A.ts < B.end_ts 49fb726d48Sopenharmony_ci GROUP by A.ts 50fb726d48Sopenharmony_ci ) AS data_exists`, 51fb726d48Sopenharmony_ci { $pid: process } 52fb726d48Sopenharmony_ci ); 53fb726d48Sopenharmony_ci 54fb726d48Sopenharmony_ci//Ability Monitor Dma 框选 55fb726d48Sopenharmony_ciexport const getTabDmaAbilityData = (leftNs: number, rightNs: number, dur: number): Promise<Array<Dma>> => 56fb726d48Sopenharmony_ci query<Dma>( 57fb726d48Sopenharmony_ci 'getTabDmaAbilityData', 58fb726d48Sopenharmony_ci `SELECT (S.ts-TR.start_ts) as startNs, 59fb726d48Sopenharmony_ci MAX(S.size) as maxSize, 60fb726d48Sopenharmony_ci MIN(S.size) as minSize, 61fb726d48Sopenharmony_ci Avg(S.size) as avgSize, 62fb726d48Sopenharmony_ci E.pid as processId, 63fb726d48Sopenharmony_ci E.name as processName 64fb726d48Sopenharmony_ci from trace_range as TR,memory_dma as S 65fb726d48Sopenharmony_ci left join process as E on E.ipid=S.ipid 66fb726d48Sopenharmony_ci WHERE 67fb726d48Sopenharmony_ci $leftNS <= startNs + ${dur} and $rightNS >= startNs 68fb726d48Sopenharmony_ci and flag = 0 69fb726d48Sopenharmony_ci GROUP by E.pid 70fb726d48Sopenharmony_ci `, 71fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 72fb726d48Sopenharmony_ci ); 73fb726d48Sopenharmony_ci 74fb726d48Sopenharmony_ci//VM Tracker Dma 框选 75fb726d48Sopenharmony_ciexport const getTabDmaVmTrackerData = ( 76fb726d48Sopenharmony_ci leftNs: number, 77fb726d48Sopenharmony_ci rightNs: number, 78fb726d48Sopenharmony_ci processId: number, 79fb726d48Sopenharmony_ci dur: number 80fb726d48Sopenharmony_ci): Promise<Array<Dma>> => 81fb726d48Sopenharmony_ci query<Dma>( 82fb726d48Sopenharmony_ci 'getTabDmaVmTrackerData', 83fb726d48Sopenharmony_ci `SELECT (S.ts-TR.start_ts) as startNs, 84fb726d48Sopenharmony_ci MAX(S.size) as maxSize, 85fb726d48Sopenharmony_ci MIN(S.size) as minSize, 86fb726d48Sopenharmony_ci Avg(S.size) as avgSize 87fb726d48Sopenharmony_ci from trace_range as TR,memory_dma as S 88fb726d48Sopenharmony_ci left join data_dict as C on C.id=S.exp_task_comm_id 89fb726d48Sopenharmony_ci where 90fb726d48Sopenharmony_ci $leftNS <= startNs + ${dur} and $rightNS >= startNs 91fb726d48Sopenharmony_ci and flag = 0 92fb726d48Sopenharmony_ci and 93fb726d48Sopenharmony_ci $pid = S.ipid 94fb726d48Sopenharmony_ci `, 95fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs, $pid: processId } 96fb726d48Sopenharmony_ci ); 97fb726d48Sopenharmony_ci 98fb726d48Sopenharmony_ci//Ability Monitor Dma 点选 99fb726d48Sopenharmony_ciexport const getTabDmaAbilityClickData = (startNs: number): Promise<Array<Dma>> => 100fb726d48Sopenharmony_ci query<Dma>( 101fb726d48Sopenharmony_ci 'getTabDmaAbilityClickData', 102fb726d48Sopenharmony_ci `SELECT 103fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 104fb726d48Sopenharmony_ci S.fd as fd, 105fb726d48Sopenharmony_ci S.size as size, 106fb726d48Sopenharmony_ci S.ino as ino, 107fb726d48Sopenharmony_ci S.exp_pid as expPid, 108fb726d48Sopenharmony_ci buf_name_id as bufName, 109fb726d48Sopenharmony_ci exp_name_id as expName, 110fb726d48Sopenharmony_ci exp_task_comm_id as expTaskComm, 111fb726d48Sopenharmony_ci E.pid as processId, 112fb726d48Sopenharmony_ci E.name as processName, 113fb726d48Sopenharmony_ci S.flag as flag 114fb726d48Sopenharmony_ci from trace_range as TR,memory_dma as S 115fb726d48Sopenharmony_ci left join process as E on E.ipid=S.ipid 116fb726d48Sopenharmony_ci WHERE 117fb726d48Sopenharmony_ci startNs = ${startNs} 118fb726d48Sopenharmony_ci `, 119fb726d48Sopenharmony_ci { $startNs: startNs } 120fb726d48Sopenharmony_ci ); 121fb726d48Sopenharmony_ci 122fb726d48Sopenharmony_ci//VM Tracker Dma 点选 123fb726d48Sopenharmony_ciexport const getTabDmaVMTrackerClickData = (startNs: number, processId: number): Promise<Array<Dma>> => 124fb726d48Sopenharmony_ci query<Dma>( 125fb726d48Sopenharmony_ci 'getTabDmaVMTrackerClickData', 126fb726d48Sopenharmony_ci `SELECT 127fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 128fb726d48Sopenharmony_ci S.fd as fd, 129fb726d48Sopenharmony_ci S.size as size, 130fb726d48Sopenharmony_ci S.ino as ino, 131fb726d48Sopenharmony_ci S.exp_pid as expPid, 132fb726d48Sopenharmony_ci buf_name_id as bufName, 133fb726d48Sopenharmony_ci exp_name_id as expName, 134fb726d48Sopenharmony_ci exp_task_comm_id as expTaskComm, 135fb726d48Sopenharmony_ci S.flag as flag 136fb726d48Sopenharmony_ci from trace_range as TR,memory_dma as S 137fb726d48Sopenharmony_ci WHERE 138fb726d48Sopenharmony_ci startNs = ${startNs} 139fb726d48Sopenharmony_ci AND 140fb726d48Sopenharmony_ci $pid = S.ipid 141fb726d48Sopenharmony_ci `, 142fb726d48Sopenharmony_ci { $startNs: startNs, $pid: processId } 143fb726d48Sopenharmony_ci ); 144fb726d48Sopenharmony_ci 145fb726d48Sopenharmony_ci//Ability Monitor Dma 点选比较 146fb726d48Sopenharmony_ciexport const getTabDmaAbilityComparisonData = (startNs: number): Promise<Array<DmaComparison>> => 147fb726d48Sopenharmony_ci query<DmaComparison>( 148fb726d48Sopenharmony_ci 'getTabDmaAbilityComparisonData', 149fb726d48Sopenharmony_ci `SELECT 150fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 151fb726d48Sopenharmony_ci sum(S.size) as value, 152fb726d48Sopenharmony_ci E.pid as processId, 153fb726d48Sopenharmony_ci E.name as processName 154fb726d48Sopenharmony_ci from trace_range as TR,memory_dma as S 155fb726d48Sopenharmony_ci left join process as E on E.ipid=S.ipid 156fb726d48Sopenharmony_ci WHERE 157fb726d48Sopenharmony_ci startNs = ${startNs} 158fb726d48Sopenharmony_ci GROUP by 159fb726d48Sopenharmony_ci E.pid 160fb726d48Sopenharmony_ci `, 161fb726d48Sopenharmony_ci { $startNs: startNs } 162fb726d48Sopenharmony_ci ); 163fb726d48Sopenharmony_ci 164fb726d48Sopenharmony_ci//VM Tracker Dma 点选比较 165fb726d48Sopenharmony_ciexport const getTabDmaVmTrackerComparisonData = (startNs: number, processId: number): Promise<Array<DmaComparison>> => 166fb726d48Sopenharmony_ci query<DmaComparison>( 167fb726d48Sopenharmony_ci 'getTabDmaVmTrackerComparisonData', 168fb726d48Sopenharmony_ci `SELECT 169fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 170fb726d48Sopenharmony_ci sum(S.size) as value 171fb726d48Sopenharmony_ci from trace_range as TR,memory_dma as S 172fb726d48Sopenharmony_ci WHERE 173fb726d48Sopenharmony_ci startNs = ${startNs} 174fb726d48Sopenharmony_ci AND 175fb726d48Sopenharmony_ci $pid = S.ipid 176fb726d48Sopenharmony_ci `, 177fb726d48Sopenharmony_ci { $startNs: startNs, $pid: processId } 178fb726d48Sopenharmony_ci ); 179