1 /*
2 * Copyright (c) 2021 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 #include "arkts_stdtype.h"
16
17 namespace SysTuning {
18 namespace TraceStdtype {
AppendNewData(uint32_t id,std::string filePath,uint64_t startTime,uint64_t endTime,uint64_t selfSizeCount)19 size_t JsHeapFiles::AppendNewData(uint32_t id,
20 std::string filePath,
21 uint64_t startTime,
22 uint64_t endTime,
23 uint64_t selfSizeCount)
24 {
25 fileIds_.emplace_back(id);
26 filePaths_.emplace_back(filePath);
27 startTimes_.emplace_back(startTime);
28 endTimes_.emplace_back(endTime);
29 selfSizeCount_.emplace_back(selfSizeCount);
30 ids_.emplace_back(Size());
31 return Size() - 1;
32 }
IDs() const33 const std::deque<uint32_t>& JsHeapFiles::IDs() const
34 {
35 return fileIds_;
36 }
FilePaths() const37 const std::deque<std::string>& JsHeapFiles::FilePaths() const
38 {
39 return filePaths_;
40 }
StartTimes() const41 const std::deque<uint64_t>& JsHeapFiles::StartTimes() const
42 {
43 return startTimes_;
44 }
EndTimes() const45 const std::deque<uint64_t>& JsHeapFiles::EndTimes() const
46 {
47 return endTimes_;
48 }
49
SelfSizeCount() const50 const std::deque<uint64_t>& JsHeapFiles::SelfSizeCount() const
51 {
52 return selfSizeCount_;
53 }
54
AppendNewData(uint32_t fileId,uint32_t edgeIndex,uint32_t type,uint32_t nameOrIndex,uint32_t toNode,uint32_t fromNodeId,uint32_t toNodeId)55 size_t JsHeapEdges::AppendNewData(uint32_t fileId,
56 uint32_t edgeIndex,
57 uint32_t type,
58 uint32_t nameOrIndex,
59 uint32_t toNode,
60 uint32_t fromNodeId,
61 uint32_t toNodeId)
62 {
63 fileIds_.emplace_back(fileId);
64 edgeIndexs_.emplace_back(edgeIndex);
65 types_.emplace_back(type);
66 nameOrIndexs_.emplace_back(nameOrIndex);
67 toNodes_.emplace_back(toNode);
68 fromNodeIds_.emplace_back(fromNodeId);
69 toNodeIds_.emplace_back(toNodeId);
70 ids_.emplace_back(Size());
71 return Size() - 1;
72 }
FileIds() const73 const std::deque<uint32_t>& JsHeapEdges::FileIds() const
74 {
75 return fileIds_;
76 }
EdgeIndexs() const77 const std::deque<uint32_t>& JsHeapEdges::EdgeIndexs() const
78 {
79 return edgeIndexs_;
80 }
Types() const81 const std::deque<uint32_t>& JsHeapEdges::Types() const
82 {
83 return types_;
84 }
NameOrIndexs() const85 const std::deque<uint32_t>& JsHeapEdges::NameOrIndexs() const
86 {
87 return nameOrIndexs_;
88 }
ToNodes() const89 const std::deque<uint32_t>& JsHeapEdges::ToNodes() const
90 {
91 return toNodes_;
92 }
FromNodeIds() const93 const std::deque<uint32_t>& JsHeapEdges::FromNodeIds() const
94 {
95 return fromNodeIds_;
96 }
ToNodeIds() const97 const std::deque<uint32_t>& JsHeapEdges::ToNodeIds() const
98 {
99 return toNodeIds_;
100 }
101
102 size_t
AppendNewData(uint32_t fileId,std::string key,uint32_t type,int32_t intValue,std::string strValue)103 JsHeapInfo::AppendNewData(uint32_t fileId, std::string key, uint32_t type, int32_t intValue, std::string strValue)
104 {
105 fileIds_.emplace_back(fileId);
106 keys_.emplace_back(key);
107 types_.emplace_back(type);
108 intValues_.emplace_back(intValue);
109 strValues_.emplace_back(strValue);
110 ids_.emplace_back(Size());
111 return Size() - 1;
112 }
FileIds() const113 const std::deque<uint32_t>& JsHeapInfo::FileIds() const
114 {
115 return fileIds_;
116 }
Keys() const117 const std::deque<std::string>& JsHeapInfo::Keys() const
118 {
119 return keys_;
120 }
Types() const121 const std::deque<uint32_t>& JsHeapInfo::Types() const
122 {
123 return types_;
124 }
IntValues() const125 const std::deque<int32_t>& JsHeapInfo::IntValues() const
126 {
127 return intValues_;
128 }
StrValues() const129 const std::deque<std::string>& JsHeapInfo::StrValues() const
130 {
131 return strValues_;
132 }
133
AppendNewData(uint32_t fileId,uint32_t objectIndex,uint32_t scriptId,uint32_t line,uint32_t column)134 size_t JsHeapLocation::AppendNewData(uint32_t fileId,
135 uint32_t objectIndex,
136 uint32_t scriptId,
137 uint32_t line,
138 uint32_t column)
139 {
140 fileIds_.emplace_back(fileId);
141 objectIndexs_.emplace_back(objectIndex);
142 scriptIds_.emplace_back(scriptId);
143 lines_.emplace_back(line);
144 columns_.emplace_back(column);
145 ids_.emplace_back(Size());
146 return Size() - 1;
147 }
FileIds() const148 const std::deque<uint32_t>& JsHeapLocation::FileIds() const
149 {
150 return fileIds_;
151 }
ObjectIndexs() const152 const std::deque<uint32_t>& JsHeapLocation::ObjectIndexs() const
153 {
154 return objectIndexs_;
155 }
ScriptIds() const156 const std::deque<uint32_t>& JsHeapLocation::ScriptIds() const
157 {
158 return scriptIds_;
159 }
Lines() const160 const std::deque<uint32_t>& JsHeapLocation::Lines() const
161 {
162 return lines_;
163 }
Columns() const164 const std::deque<uint32_t>& JsHeapLocation::Columns() const
165 {
166 return columns_;
167 }
168
AppendNewData(uint32_t fileId,uint32_t nodeIndex,uint32_t type,uint32_t name,uint32_t id,uint32_t selfSize,uint32_t edgeCount,uint32_t traceNodeId,uint32_t detachedNess)169 size_t JsHeapNodes::AppendNewData(uint32_t fileId,
170 uint32_t nodeIndex,
171 uint32_t type,
172 uint32_t name,
173 uint32_t id,
174 uint32_t selfSize,
175 uint32_t edgeCount,
176 uint32_t traceNodeId,
177 uint32_t detachedNess)
178 {
179 fileIds_.emplace_back(fileId);
180 nodeIndexs_.emplace_back(nodeIndex);
181 types_.emplace_back(type);
182 names_.emplace_back(name);
183 nodeIds_.emplace_back(id);
184 selfSizes_.emplace_back(selfSize);
185 edgeCounts_.emplace_back(edgeCount);
186 traceNodeIds_.emplace_back(traceNodeId);
187 detachedNess_.emplace_back(detachedNess);
188 ids_.emplace_back(Size());
189 return Size() - 1;
190 }
FileIds() const191 const std::deque<uint32_t>& JsHeapNodes::FileIds() const
192 {
193 return fileIds_;
194 }
NodeIndexs() const195 const std::deque<uint32_t>& JsHeapNodes::NodeIndexs() const
196 {
197 return nodeIndexs_;
198 }
Types() const199 const std::deque<uint32_t>& JsHeapNodes::Types() const
200 {
201 return types_;
202 }
Names() const203 const std::deque<uint32_t>& JsHeapNodes::Names() const
204 {
205 return names_;
206 }
NodeIds() const207 const std::deque<uint32_t>& JsHeapNodes::NodeIds() const
208 {
209 return nodeIds_;
210 }
SelfSizes() const211 const std::deque<uint32_t>& JsHeapNodes::SelfSizes() const
212 {
213 return selfSizes_;
214 }
EdgeCounts() const215 const std::deque<uint32_t>& JsHeapNodes::EdgeCounts() const
216 {
217 return edgeCounts_;
218 }
TraceNodeIds() const219 const std::deque<uint32_t>& JsHeapNodes::TraceNodeIds() const
220 {
221 return traceNodeIds_;
222 }
DetachedNess() const223 const std::deque<uint32_t>& JsHeapNodes::DetachedNess() const
224 {
225 return detachedNess_;
226 }
227
AppendNewData(uint32_t fileId,uint64_t timeStampUs,uint32_t lastAssignedId)228 size_t JsHeapSample::AppendNewData(uint32_t fileId, uint64_t timeStampUs, uint32_t lastAssignedId)
229 {
230 fileIds_.emplace_back(fileId);
231 timeStampUs_.emplace_back(timeStampUs);
232 lastAssignedIds_.emplace_back(lastAssignedId);
233 ids_.emplace_back(Size());
234 return Size() - 1;
235 }
FileIds() const236 const std::deque<uint32_t>& JsHeapSample::FileIds() const
237 {
238 return fileIds_;
239 }
TimeStampUs() const240 const std::deque<uint64_t>& JsHeapSample::TimeStampUs() const
241 {
242 return timeStampUs_;
243 }
LastAssignedIds() const244 const std::deque<uint32_t>& JsHeapSample::LastAssignedIds() const
245 {
246 return lastAssignedIds_;
247 }
248
AppendNewData(uint32_t fileId,uint32_t fileIndex,std::string string)249 size_t JsHeapString::AppendNewData(uint32_t fileId, uint32_t fileIndex, std::string string)
250 {
251 fileIds_.emplace_back(fileId);
252 fileIndexs_.emplace_back(fileIndex);
253 strings_.emplace_back(string);
254 ids_.emplace_back(Size());
255 return Size() - 1;
256 }
FileIds() const257 const std::deque<uint32_t>& JsHeapString::FileIds() const
258 {
259 return fileIds_;
260 }
FileIndexs() const261 const std::deque<uint64_t>& JsHeapString::FileIndexs() const
262 {
263 return fileIndexs_;
264 }
Strings() const265 const std::deque<std::string>& JsHeapString::Strings() const
266 {
267 return strings_;
268 }
269
AppendNewData(uint32_t fileId,uint32_t functionIndex,uint32_t functionId,uint32_t name,uint32_t scriptName,uint32_t scriptId,uint32_t line,uint32_t column)270 size_t JsHeapTraceFuncInfo::AppendNewData(uint32_t fileId,
271 uint32_t functionIndex,
272 uint32_t functionId,
273 uint32_t name,
274 uint32_t scriptName,
275 uint32_t scriptId,
276 uint32_t line,
277 uint32_t column)
278 {
279 fileIds_.emplace_back(fileId);
280 functionIndexs_.emplace_back(functionIndex);
281 functionIds_.emplace_back(functionId);
282 names_.emplace_back(name);
283 scriptNames_.emplace_back(scriptName);
284 scriptIds_.emplace_back(scriptId);
285 lines_.emplace_back(line);
286 columns_.emplace_back(column);
287 ids_.emplace_back(Size());
288 return Size() - 1;
289 }
FileIds() const290 const std::deque<uint32_t>& JsHeapTraceFuncInfo::FileIds() const
291 {
292 return fileIds_;
293 }
FunctionIndexs() const294 const std::deque<uint32_t>& JsHeapTraceFuncInfo::FunctionIndexs() const
295 {
296 return functionIndexs_;
297 }
FunctionIds() const298 const std::deque<uint32_t>& JsHeapTraceFuncInfo::FunctionIds() const
299 {
300 return functionIds_;
301 }
Names() const302 const std::deque<uint32_t>& JsHeapTraceFuncInfo::Names() const
303 {
304 return names_;
305 }
ScriptNames() const306 const std::deque<uint32_t>& JsHeapTraceFuncInfo::ScriptNames() const
307 {
308 return scriptNames_;
309 }
ScriptIds() const310 const std::deque<uint32_t>& JsHeapTraceFuncInfo::ScriptIds() const
311 {
312 return scriptIds_;
313 }
Lines() const314 const std::deque<uint32_t>& JsHeapTraceFuncInfo::Lines() const
315 {
316 return lines_;
317 }
Columns() const318 const std::deque<uint32_t>& JsHeapTraceFuncInfo::Columns() const
319 {
320 return columns_;
321 }
322
AppendNewData(uint32_t fileId,uint32_t traceNodeId,uint32_t functionInfoIndex,uint32_t count,uint32_t size,int32_t parentId)323 size_t JsHeapTraceNode::AppendNewData(uint32_t fileId,
324 uint32_t traceNodeId,
325 uint32_t functionInfoIndex,
326 uint32_t count,
327 uint32_t size,
328 int32_t parentId)
329 {
330 fileIds_.emplace_back(fileId);
331 traceNodeIds_.emplace_back(traceNodeId);
332 functionInfoIndexs_.emplace_back(functionInfoIndex);
333 counts_.emplace_back(count);
334 sizes_.emplace_back(size);
335 parentIds_.emplace_back(parentId);
336 ids_.emplace_back(Size());
337 return Size() - 1;
338 }
FileIds() const339 const std::deque<uint32_t>& JsHeapTraceNode::FileIds() const
340 {
341 return fileIds_;
342 }
TraceNodeIDs() const343 const std::deque<uint32_t>& JsHeapTraceNode::TraceNodeIDs() const
344 {
345 return traceNodeIds_;
346 }
FunctionInfoIndexs() const347 const std::deque<uint32_t>& JsHeapTraceNode::FunctionInfoIndexs() const
348 {
349 return functionInfoIndexs_;
350 }
Counts() const351 const std::deque<uint32_t>& JsHeapTraceNode::Counts() const
352 {
353 return counts_;
354 }
NodeSizes() const355 const std::deque<uint32_t>& JsHeapTraceNode::NodeSizes() const
356 {
357 return sizes_;
358 }
ParentIds() const359 const std::deque<int32_t>& JsHeapTraceNode::ParentIds() const
360 {
361 return parentIds_;
362 }
363
AppendNewData(uint32_t functionId,uint32_t functionName,std::string scriptId,uint32_t url,uint32_t lineNumber,uint32_t columnNumber,uint32_t hitCount,std::string children,uint32_t parent)364 size_t JsCpuProfilerNode::AppendNewData(uint32_t functionId,
365 uint32_t functionName,
366 std::string scriptId,
367 uint32_t url,
368 uint32_t lineNumber,
369 uint32_t columnNumber,
370 uint32_t hitCount,
371 std::string children,
372 uint32_t parent)
373 {
374 functionIds_.emplace_back(functionId);
375 functionNames_.emplace_back(functionName);
376 scriptIds_.emplace_back(scriptId);
377 urls_.emplace_back(url);
378 lineNumbers_.emplace_back(lineNumber);
379 columnNumbers_.emplace_back(columnNumber);
380 hitCounts_.emplace_back(hitCount);
381 children_.emplace_back(children);
382 parents_.emplace_back(parent);
383 ids_.emplace_back(Size());
384 return Size() - 1;
385 }
386
FunctionIds() const387 const std::deque<uint32_t>& JsCpuProfilerNode::FunctionIds() const
388 {
389 return functionIds_;
390 }
FunctionNames() const391 const std::deque<uint32_t>& JsCpuProfilerNode::FunctionNames() const
392 {
393 return functionNames_;
394 }
ScriptIds() const395 const std::deque<std::string>& JsCpuProfilerNode::ScriptIds() const
396 {
397 return scriptIds_;
398 }
Urls() const399 const std::deque<uint32_t>& JsCpuProfilerNode::Urls() const
400 {
401 return urls_;
402 }
LineNumbers() const403 const std::deque<uint32_t>& JsCpuProfilerNode::LineNumbers() const
404 {
405 return lineNumbers_;
406 }
ColumnNumbers() const407 const std::deque<int32_t>& JsCpuProfilerNode::ColumnNumbers() const
408 {
409 return columnNumbers_;
410 }
HitCounts() const411 const std::deque<int32_t>& JsCpuProfilerNode::HitCounts() const
412 {
413 return hitCounts_;
414 }
Children() const415 const std::deque<std::string>& JsCpuProfilerNode::Children() const
416 {
417 return children_;
418 }
Parents() const419 const std::deque<uint32_t>& JsCpuProfilerNode::Parents() const
420 {
421 return parents_;
422 }
423
AppendNewData(uint32_t functionId,uint64_t startTime,uint64_t endTime,uint64_t dur)424 size_t JsCpuProfilerSample::AppendNewData(uint32_t functionId, uint64_t startTime, uint64_t endTime, uint64_t dur)
425 {
426 functionIds_.emplace_back(functionId);
427 startTimes_.emplace_back(startTime);
428 endTimes_.emplace_back(endTime);
429 durs_.emplace_back(dur);
430 ids_.emplace_back(Size());
431 return Size() - 1;
432 }
FunctionIds() const433 const std::deque<uint32_t>& JsCpuProfilerSample::FunctionIds() const
434 {
435 return functionIds_;
436 }
StartTimes() const437 const std::deque<uint64_t>& JsCpuProfilerSample::StartTimes() const
438 {
439 return startTimes_;
440 }
EndTimes() const441 const std::deque<uint64_t>& JsCpuProfilerSample::EndTimes() const
442 {
443 return endTimes_;
444 }
Durs() const445 const std::deque<uint64_t>& JsCpuProfilerSample::Durs() const
446 {
447 return durs_;
448 }
449
AppendNewData(uint32_t pid,uint64_t type,uint32_t interval,uint32_t captureNumericValue,uint32_t trackAllocation,uint32_t cpuProfiler,uint32_t cpuProfilerInterval)450 size_t JsConfig::AppendNewData(uint32_t pid,
451 uint64_t type,
452 uint32_t interval,
453 uint32_t captureNumericValue,
454 uint32_t trackAllocation,
455 uint32_t cpuProfiler,
456 uint32_t cpuProfilerInterval)
457 {
458 pids_.emplace_back(pid);
459 types_.emplace_back(type);
460 intervals_.emplace_back(interval);
461 captureNumericValues_.emplace_back(captureNumericValue);
462 trackAllocations_.emplace_back(trackAllocation);
463 cpuProfilers_.emplace_back(cpuProfiler);
464 cpuProfilerIntervals_.emplace_back(cpuProfilerInterval);
465 ids_.emplace_back(Size());
466 return Size() - 1;
467 }
Pids() const468 const std::deque<uint32_t>& JsConfig::Pids() const
469 {
470 return pids_;
471 }
Types() const472 const std::deque<uint64_t>& JsConfig::Types() const
473 {
474 return types_;
475 }
Intervals() const476 const std::deque<uint32_t>& JsConfig::Intervals() const
477 {
478 return intervals_;
479 }
CaptureNumericValue() const480 const std::deque<uint32_t>& JsConfig::CaptureNumericValue() const
481 {
482 return captureNumericValues_;
483 }
TrackAllocations() const484 const std::deque<uint32_t>& JsConfig::TrackAllocations() const
485 {
486 return trackAllocations_;
487 }
CpuProfiler() const488 const std::deque<uint32_t>& JsConfig::CpuProfiler() const
489 {
490 return cpuProfilers_;
491 }
CpuProfilerInterval() const492 const std::deque<uint32_t>& JsConfig::CpuProfilerInterval() const
493 {
494 return cpuProfilerIntervals_;
495 }
496 } // namespace TraceStdtype
497 } // namespace SysTuning
498