1 /*
2 * Copyright (c) Huawei Technologies Co., Ltd. 2024. All rights reserved.
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
16 #include "xpower_stdtype.h"
17 namespace SysTuning {
18 namespace TraceStdtype {
AppendNewAppStatisticData(DataIndex componentType,uint64_t startTime,uint64_t dur,int64_t energy)19 size_t XPowerAppStatistic::AppendNewAppStatisticData(DataIndex componentType,
20 uint64_t startTime,
21 uint64_t dur,
22 int64_t energy)
23 {
24 ids_.emplace_back(id_++);
25 componentTypes_.emplace_back(componentType);
26 timeStamps_.emplace_back(startTime);
27 durs_.emplace_back(dur);
28 energys_.emplace_back(energy);
29 return Size() - 1;
30 }
31
ComponentTypesData() const32 const std::deque<DataIndex> &XPowerAppStatistic::ComponentTypesData() const
33 {
34 return componentTypes_;
35 }
36
DurationsData() const37 const std::deque<int64_t> &XPowerAppStatistic::DurationsData() const
38 {
39 return durs_;
40 }
41
EnergysData() const42 const std::deque<int64_t> &XPowerAppStatistic::EnergysData() const
43 {
44 return energys_;
45 }
46
Clear()47 void XPowerAppStatistic::Clear()
48 {
49 CacheBase::Clear();
50 componentTypes_.clear();
51 durs_.clear();
52 energys_.clear();
53 }
54
ClearExportedData()55 void XPowerAppStatistic::ClearExportedData()
56 {
57 EraseElements(ids_, timeStamps_, componentTypes_, durs_, energys_);
58 }
59
AppendNewAppDetailCPUData(DataIndex threadName,uint64_t startTime,uint64_t threadTime,int64_t threadLoad,int64_t threadEnergy)60 size_t XPowerAppDetailCPU::AppendNewAppDetailCPUData(DataIndex threadName,
61 uint64_t startTime,
62 uint64_t threadTime,
63 int64_t threadLoad,
64 int64_t threadEnergy)
65 {
66 ids_.emplace_back(id_++);
67 threadNames_.emplace_back(threadName);
68 timeStamps_.emplace_back(startTime);
69 threadTimes_.emplace_back(threadTime);
70 threadLoads_.emplace_back(threadLoad);
71 threadEnergys_.emplace_back(threadEnergy);
72 return Size() - 1;
73 }
74
ThreadNamesData() const75 const std::deque<DataIndex> &XPowerAppDetailCPU::ThreadNamesData() const
76 {
77 return threadNames_;
78 }
79
ThreadTimesData() const80 const std::deque<int64_t> &XPowerAppDetailCPU::ThreadTimesData() const
81 {
82 return threadTimes_;
83 }
84
ThreadLoadsData() const85 const std::deque<int64_t> &XPowerAppDetailCPU::ThreadLoadsData() const
86 {
87 return threadLoads_;
88 }
89
ThreadEnergysData() const90 const std::deque<int64_t> &XPowerAppDetailCPU::ThreadEnergysData() const
91 {
92 return threadEnergys_;
93 }
94
Clear()95 void XPowerAppDetailCPU::Clear()
96 {
97 CacheBase::Clear();
98 threadNames_.clear();
99 threadTimes_.clear();
100 threadLoads_.clear();
101 threadEnergys_.clear();
102 }
103
ClearExportedData()104 void XPowerAppDetailCPU::ClearExportedData()
105 {
106 EraseElements(ids_, timeStamps_, threadNames_, threadTimes_, threadLoads_, threadEnergys_);
107 }
108
AppendNewAppDetailGPUData(int64_t frequency,uint64_t startTime,int64_t idleTime,int64_t runTime)109 size_t XPowerAppDetailGPU::AppendNewAppDetailGPUData(int64_t frequency,
110 uint64_t startTime,
111 int64_t idleTime,
112 int64_t runTime)
113 {
114 ids_.emplace_back(id_++);
115 frequencys_.emplace_back(frequency);
116 timeStamps_.emplace_back(startTime);
117 idleTimes_.emplace_back(idleTime);
118 runTimes_.emplace_back(runTime);
119 return Size() - 1;
120 }
121
FrequencysData() const122 const std::deque<int64_t> &XPowerAppDetailGPU::FrequencysData() const
123 {
124 return frequencys_;
125 }
126
IdleTimesData() const127 const std::deque<int64_t> &XPowerAppDetailGPU::IdleTimesData() const
128 {
129 return idleTimes_;
130 }
131
RuntimesData() const132 const std::deque<int64_t> &XPowerAppDetailGPU::RuntimesData() const
133 {
134 return runTimes_;
135 }
136
Clear()137 void XPowerAppDetailGPU::Clear()
138 {
139 CacheBase::Clear();
140 frequencys_.clear();
141 idleTimes_.clear();
142 runTimes_.clear();
143 }
144
ClearExportedData()145 void XPowerAppDetailGPU::ClearExportedData()
146 {
147 EraseElements(ids_, timeStamps_, frequencys_, idleTimes_, runTimes_);
148 }
149
AppendNewAppDetailWifiData(uint64_t startTime,int64_t txPackets,int64_t rxPackets,int64_t txBytes,int64_t rxBytes)150 size_t XPowerAppDetailWifi::AppendNewAppDetailWifiData(uint64_t startTime,
151 int64_t txPackets,
152 int64_t rxPackets,
153 int64_t txBytes,
154 int64_t rxBytes)
155 {
156 ids_.emplace_back(id_++);
157 timeStamps_.emplace_back(startTime);
158 txPackets_.emplace_back(txPackets);
159 rxPackets_.emplace_back(rxPackets);
160 txBytes_.emplace_back(txBytes);
161 rxBytes_.emplace_back(rxBytes);
162 return Size() - 1;
163 }
164
TxPacketsData() const165 const std::deque<int64_t> &XPowerAppDetailWifi::TxPacketsData() const
166 {
167 return txPackets_;
168 }
169
RxPacketsData() const170 const std::deque<int64_t> &XPowerAppDetailWifi::RxPacketsData() const
171 {
172 return rxPackets_;
173 }
174
TxBytesData() const175 const std::deque<int64_t> &XPowerAppDetailWifi::TxBytesData() const
176 {
177 return txBytes_;
178 }
179
RxBytesData() const180 const std::deque<int64_t> &XPowerAppDetailWifi::RxBytesData() const
181 {
182 return rxBytes_;
183 }
184
Clear()185 void XPowerAppDetailWifi::Clear()
186 {
187 CacheBase::Clear();
188 txPackets_.clear();
189 rxPackets_.clear();
190 txBytes_.clear();
191 rxBytes_.clear();
192 }
193
ClearExportedData()194 void XPowerAppDetailWifi::ClearExportedData()
195 {
196 EraseElements(ids_, timeStamps_, txPackets_, rxPackets_, txBytes_, rxBytes_);
197 }
198
AppendNewAppDetailDisplayData(const XPowerAppDetailDisplayRow & row)199 size_t XPowerAppDetailDisplay::AppendNewAppDetailDisplayData(const XPowerAppDetailDisplayRow &row)
200 {
201 ids_.emplace_back(id_++);
202 timeStamps_.emplace_back(row.startTime);
203 count1Hertzs_.emplace_back(row.count1Hertz);
204 count5Hertzs_.emplace_back(row.count5Hertz);
205 count10Hertzs_.emplace_back(row.count10Hertz);
206 count15Hertzs_.emplace_back(row.count15Hertz);
207 count24Hertzs_.emplace_back(row.count24Hertz);
208 count30Hertzs_.emplace_back(row.count30Hertz);
209 count45Hertzs_.emplace_back(row.count45Hertz);
210 count60Hertzs_.emplace_back(row.count60Hertz);
211 count90Hertzs_.emplace_back(row.count90Hertz);
212 count120Hertzs_.emplace_back(row.count120Hertz);
213 count180Hertzs_.emplace_back(row.count180Hertz);
214 return Size() - 1;
215 }
216
Count1HertzsData() const217 const std::deque<int64_t> &XPowerAppDetailDisplay::Count1HertzsData() const
218 {
219 return count1Hertzs_;
220 }
221
Count5HertzsData() const222 const std::deque<int64_t> &XPowerAppDetailDisplay::Count5HertzsData() const
223 {
224 return count5Hertzs_;
225 }
226
Count10HertzsData() const227 const std::deque<int64_t> &XPowerAppDetailDisplay::Count10HertzsData() const
228 {
229 return count10Hertzs_;
230 }
231
Count15HertzsData() const232 const std::deque<int64_t> &XPowerAppDetailDisplay::Count15HertzsData() const
233 {
234 return count15Hertzs_;
235 }
236
Count24HertzsData() const237 const std::deque<int64_t> &XPowerAppDetailDisplay::Count24HertzsData() const
238 {
239 return count24Hertzs_;
240 }
Count30HertzsData() const241 const std::deque<int64_t> &XPowerAppDetailDisplay::Count30HertzsData() const
242 {
243 return count30Hertzs_;
244 }
245
Count45HertzsData() const246 const std::deque<int64_t> &XPowerAppDetailDisplay::Count45HertzsData() const
247 {
248 return count45Hertzs_;
249 }
250
Count60HertzsData() const251 const std::deque<int64_t> &XPowerAppDetailDisplay::Count60HertzsData() const
252 {
253 return count60Hertzs_;
254 }
255
Count90HertzsData() const256 const std::deque<int64_t> &XPowerAppDetailDisplay::Count90HertzsData() const
257 {
258 return count90Hertzs_;
259 }
260
Count120HertzsData() const261 const std::deque<int64_t> &XPowerAppDetailDisplay::Count120HertzsData() const
262 {
263 return count120Hertzs_;
264 }
265
Count180HertzsData() const266 const std::deque<int64_t> &XPowerAppDetailDisplay::Count180HertzsData() const
267 {
268 return count180Hertzs_;
269 }
270
Clear()271 void XPowerAppDetailDisplay::Clear()
272 {
273 CacheBase::Clear();
274 count1Hertzs_.clear();
275 count5Hertzs_.clear();
276 count10Hertzs_.clear();
277 count15Hertzs_.clear();
278 count24Hertzs_.clear();
279 count30Hertzs_.clear();
280 count45Hertzs_.clear();
281 count60Hertzs_.clear();
282 count90Hertzs_.clear();
283 count120Hertzs_.clear();
284 count180Hertzs_.clear();
285 }
286
ClearExportedData()287 void XPowerAppDetailDisplay::ClearExportedData()
288 {
289 EraseElements(ids_, timeStamps_, count1Hertzs_, count5Hertzs_, count10Hertzs_);
290 EraseElements(count15Hertzs_, count24Hertzs_, count30Hertzs_, count45Hertzs_, count60Hertzs_);
291 EraseElements(count90Hertzs_, count120Hertzs_, count180Hertzs_);
292 }
293
AppendNewComponentTopData(const XPowerComponentTopRow & row)294 size_t XPowerComponentTop::AppendNewComponentTopData(const XPowerComponentTopRow &row)
295 {
296 ids_.emplace_back(id_++);
297 timeStamps_.emplace_back(row.startTime);
298 componentTypes_.emplace_back(row.componentType);
299 appnames_.emplace_back(row.appname);
300 backgroundDurations_.emplace_back(row.backgroundDuration);
301 backgroundEnergys_.emplace_back(row.backgroundEnergy);
302 foregroundDurations_.emplace_back(row.foregroundDuration);
303 foregroundEnergys_.emplace_back(row.foregroundEnergy);
304 screenOffDurations_.emplace_back(row.screenOffDuration);
305 screenOffEnergys_.emplace_back(row.screenOffEnergy);
306 screenOnDurations_.emplace_back(row.screenOnDuration);
307 screenOnEnergys_.emplace_back(row.screenOnEnergy);
308 cameraIds_.emplace_back(row.cameraId);
309 uids_.emplace_back(row.uid);
310 loads_.emplace_back(row.load);
311 appUsageDurations_.emplace_back(row.appUsageDuration);
312 appUsageEnergys_.emplace_back(row.appUsageEnergy);
313 return Size() - 1;
314 }
315
ComponentTypesData() const316 const std::deque<DataIndex> &XPowerComponentTop::ComponentTypesData() const
317 {
318 return componentTypes_;
319 }
320
AppnamesData() const321 const std::deque<int64_t> &XPowerComponentTop::AppnamesData() const
322 {
323 return appnames_;
324 }
325
BackgroundDurationsData() const326 const std::deque<int64_t> &XPowerComponentTop::BackgroundDurationsData() const
327 {
328 return backgroundDurations_;
329 }
330
BackgroundEnergysData() const331 const std::deque<int64_t> &XPowerComponentTop::BackgroundEnergysData() const
332 {
333 return backgroundEnergys_;
334 }
335
ForegroundDurationsData() const336 const std::deque<int64_t> &XPowerComponentTop::ForegroundDurationsData() const
337 {
338 return foregroundDurations_;
339 }
340
ForegroundEnergysData() const341 const std::deque<int64_t> &XPowerComponentTop::ForegroundEnergysData() const
342 {
343 return foregroundEnergys_;
344 }
345
ScreenOffDurationsData() const346 const std::deque<int64_t> &XPowerComponentTop::ScreenOffDurationsData() const
347 {
348 return screenOffDurations_;
349 }
350
ScreenOffEnergysData() const351 const std::deque<int64_t> &XPowerComponentTop::ScreenOffEnergysData() const
352 {
353 return screenOffEnergys_;
354 }
355
ScreenOnDurationsData() const356 const std::deque<int64_t> &XPowerComponentTop::ScreenOnDurationsData() const
357 {
358 return screenOnDurations_;
359 }
360
ScreenOnEnergysData() const361 const std::deque<int64_t> &XPowerComponentTop::ScreenOnEnergysData() const
362 {
363 return screenOnEnergys_;
364 }
365
CameraIdsData() const366 const std::deque<int64_t> &XPowerComponentTop::CameraIdsData() const
367 {
368 return cameraIds_;
369 }
370
UidsData() const371 const std::deque<int64_t> &XPowerComponentTop::UidsData() const
372 {
373 return uids_;
374 }
375
LoadsData() const376 const std::deque<int64_t> &XPowerComponentTop::LoadsData() const
377 {
378 return loads_;
379 }
380
AppUsageDurationsData() const381 const std::deque<int64_t> &XPowerComponentTop::AppUsageDurationsData() const
382 {
383 return appUsageDurations_;
384 }
385
AppUsageEnergysData() const386 const std::deque<int64_t> &XPowerComponentTop::AppUsageEnergysData() const
387 {
388 return appUsageEnergys_;
389 }
390
Clear()391 void XPowerComponentTop::Clear()
392 {
393 CacheBase::Clear();
394 componentTypes_.clear();
395 appnames_.clear();
396 backgroundDurations_.clear();
397 backgroundEnergys_.clear();
398 foregroundDurations_.clear();
399 foregroundEnergys_.clear();
400 screenOffDurations_.clear();
401 screenOffEnergys_.clear();
402 screenOnDurations_.clear();
403 screenOnEnergys_.clear();
404 cameraIds_.clear();
405 uids_.clear();
406 loads_.clear();
407 appUsageDurations_.clear();
408 appUsageEnergys_.clear();
409 }
410
ClearExportedData()411 void XPowerComponentTop::ClearExportedData()
412 {
413 EraseElements(ids_, timeStamps_, componentTypes_, appnames_, backgroundDurations_, backgroundEnergys_);
414 EraseElements(foregroundDurations_, foregroundEnergys_, screenOffDurations_, screenOffEnergys_, uids_);
415 EraseElements(screenOnDurations_, screenOnEnergys_, cameraIds_, loads_, appUsageDurations_, appUsageEnergys_);
416 }
417
418 } // namespace TraceStdtype
419 } // namespace SysTuning