1fb726d48Sopenharmony_ci<!DOCTYPE html>
2fb726d48Sopenharmony_ci<html>
3fb726d48Sopenharmony_ci  <head>
4fb726d48Sopenharmony_ci    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5fb726d48Sopenharmony_ci    <title>quickstart_native_memory</title>
6fb726d48Sopenharmony_ci
7fb726d48Sopenharmony_ci    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8fb726d48Sopenharmony_ci
9fb726d48Sopenharmony_ci    <style>
10fb726d48Sopenharmony_ci      code[class*='smartperf-'],
11fb726d48Sopenharmony_ci      pre[class*='smartperf-'] {
12fb726d48Sopenharmony_ci        color: #333333;
13fb726d48Sopenharmony_ci        background: none;
14fb726d48Sopenharmony_ci        font-family: Helvetica;
15fb726d48Sopenharmony_ci        line-height: 1.6;
16fb726d48Sopenharmony_ci        text-align: left;
17fb726d48Sopenharmony_ci        white-space: pre;
18fb726d48Sopenharmony_ci        -moz-tab-size: 9;
19fb726d48Sopenharmony_ci        -o-tab-size: 9;
20fb726d48Sopenharmony_ci        tab-size: 8;
21fb726d48Sopenharmony_ci        -webkit-hyphens: none;
22fb726d48Sopenharmony_ci        -moz-hyphens: none;
23fb726d48Sopenharmony_ci        -ms-hyphens: none;
24fb726d48Sopenharmony_ci        hyphens: none;
25fb726d48Sopenharmony_ci      }
26fb726d48Sopenharmony_ci
27fb726d48Sopenharmony_ci      /* Code blocks */
28fb726d48Sopenharmony_ci      pre[class*='smartperf-'] {
29fb726d48Sopenharmony_ci        padding: 0.9em;
30fb726d48Sopenharmony_ci        overflow: auto;
31fb726d48Sopenharmony_ci        border-radius: 2px;
32fb726d48Sopenharmony_ci        background: #f5f5f4;
33fb726d48Sopenharmony_ci      }
34fb726d48Sopenharmony_ci
35fb726d48Sopenharmony_ci      /* Inline code */
36fb726d48Sopenharmony_ci      :not(pre) > code[class*='smartperf-'] {
37fb726d48Sopenharmony_ci        white-space: normal;
38fb726d48Sopenharmony_ci        background: #fcf8f8;
39fb726d48Sopenharmony_ci        padding: 1px 0.2em;
40fb726d48Sopenharmony_ci        border-radius: 1px 0.3em;
41fb726d48Sopenharmony_ci      }
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_ci      .tk.comment,
44fb726d48Sopenharmony_ci      .tk.blockquote {
45fb726d48Sopenharmony_ci        color: #8c918c;
46fb726d48Sopenharmony_ci      }
47fb726d48Sopenharmony_ci
48fb726d48Sopenharmony_ci      .tk.cdata {
49fb726d48Sopenharmony_ci        color: #183898;
50fb726d48Sopenharmony_ci      }
51fb726d48Sopenharmony_ci
52fb726d48Sopenharmony_ci      .tk.doctype,
53fb726d48Sopenharmony_ci      .tk.punctuation,
54fb726d48Sopenharmony_ci      .tk.variable,
55fb726d48Sopenharmony_ci      .tk.macro.property {
56fb726d48Sopenharmony_ci        color: #424242;
57fb726d48Sopenharmony_ci      }
58fb726d48Sopenharmony_ci
59fb726d48Sopenharmony_ci      .tk.operator,
60fb726d48Sopenharmony_ci      .tk.important,
61fb726d48Sopenharmony_ci      .tk.keyword,
62fb726d48Sopenharmony_ci      .tk.rule,
63fb726d48Sopenharmony_ci      .tk.builtin {
64fb726d48Sopenharmony_ci        color: #b71d65;
65fb726d48Sopenharmony_ci      }
66fb726d48Sopenharmony_ci
67fb726d48Sopenharmony_ci      .tk.string,
68fb726d48Sopenharmony_ci      .tk.url,
69fb726d48Sopenharmony_ci      .tk.regex,
70fb726d48Sopenharmony_ci      .tk.attr-value {
71fb726d48Sopenharmony_ci        color: #16338d;
72fb726d48Sopenharmony_ci      }
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci      .tk.property,
75fb726d48Sopenharmony_ci      .tk.number,
76fb726d48Sopenharmony_ci      .tk.boolean,
77fb726d48Sopenharmony_ci      .tk.entity,
78fb726d48Sopenharmony_ci      .tk.atrule,
79fb726d48Sopenharmony_ci      .tk.constant,
80fb726d48Sopenharmony_ci      .tk.symbol,
81fb726d48Sopenharmony_ci      .tk.command,
82fb726d48Sopenharmony_ci      .tk.code {
83fb726d48Sopenharmony_ci        color: #037aa2;
84fb726d48Sopenharmony_ci      }
85fb726d48Sopenharmony_ci
86fb726d48Sopenharmony_ci      .tk.tag,
87fb726d48Sopenharmony_ci      .tk.selector,
88fb726d48Sopenharmony_ci      .tk.prolog {
89fb726d48Sopenharmony_ci        color: #69ad62;
90fb726d48Sopenharmony_ci      }
91fb726d48Sopenharmony_ci
92fb726d48Sopenharmony_ci      .tk.function,
93fb726d48Sopenharmony_ci      .tk.namespace,
94fb726d48Sopenharmony_ci      .tk.pseudo-element,
95fb726d48Sopenharmony_ci      .tk.class,
96fb726d48Sopenharmony_ci      .tk.class-name,
97fb726d48Sopenharmony_ci      .tk.pseudo-class,
98fb726d48Sopenharmony_ci      .tk.id,
99fb726d48Sopenharmony_ci      .tk.url-reference .tk.variable,
100fb726d48Sopenharmony_ci      .tk.attr-name {
101fb726d48Sopenharmony_ci        color: #775d9d;
102fb726d48Sopenharmony_ci      }
103fb726d48Sopenharmony_ci
104fb726d48Sopenharmony_ci      .tk.entity {
105fb726d48Sopenharmony_ci        cursor: help;
106fb726d48Sopenharmony_ci      }
107fb726d48Sopenharmony_ci
108fb726d48Sopenharmony_ci      .tk.title,
109fb726d48Sopenharmony_ci      .tk.title .tk.punctuation {
110fb726d48Sopenharmony_ci        font-weight: bold;
111fb726d48Sopenharmony_ci        color: #1a3773;
112fb726d48Sopenharmony_ci      }
113fb726d48Sopenharmony_ci
114fb726d48Sopenharmony_ci      .tk.list {
115fb726d48Sopenharmony_ci        color: #f56940;
116fb726d48Sopenharmony_ci      }
117fb726d48Sopenharmony_ci
118fb726d48Sopenharmony_ci      .tk.inserted {
119fb726d48Sopenharmony_ci        background-color: #eaffea;
120fb726d48Sopenharmony_ci        color: #509b2f;
121fb726d48Sopenharmony_ci      }
122fb726d48Sopenharmony_ci
123fb726d48Sopenharmony_ci      .tk.deleted {
124fb726d48Sopenharmony_ci        background-color: #fae1e1;
125fb726d48Sopenharmony_ci        color: #ad2d06;
126fb726d48Sopenharmony_ci      }
127fb726d48Sopenharmony_ci
128fb726d48Sopenharmony_ci      .tk.bold {
129fb726d48Sopenharmony_ci        font-weight: bolder;
130fb726d48Sopenharmony_ci      }
131fb726d48Sopenharmony_ci
132fb726d48Sopenharmony_ci      .tk.italic {
133fb726d48Sopenharmony_ci        font-style: normal;
134fb726d48Sopenharmony_ci      }
135fb726d48Sopenharmony_ci
136fb726d48Sopenharmony_ci      /* JSON */
137fb726d48Sopenharmony_ci      .smartperf-json .tk.property {
138fb726d48Sopenharmony_ci        color: #19358c;
139fb726d48Sopenharmony_ci      }
140fb726d48Sopenharmony_ci
141fb726d48Sopenharmony_ci      .smartperf-markup .tk.tag .tk.punctuation {
142fb726d48Sopenharmony_ci        color: #2c2b2b;
143fb726d48Sopenharmony_ci      }
144fb726d48Sopenharmony_ci
145fb726d48Sopenharmony_ci      /* CSS */
146fb726d48Sopenharmony_ci      code.smartperf-css,
147fb726d48Sopenharmony_ci      .smartperf-css .tk.function {
148fb726d48Sopenharmony_ci        color: #047ca4;
149fb726d48Sopenharmony_ci      }
150fb726d48Sopenharmony_ci
151fb726d48Sopenharmony_ci      /* YAML */
152fb726d48Sopenharmony_ci      .smartperf-yaml .tk.atrule {
153fb726d48Sopenharmony_ci        color: #609b5a;
154fb726d48Sopenharmony_ci      }
155fb726d48Sopenharmony_ci
156fb726d48Sopenharmony_ci      code.smartperf-yaml {
157fb726d48Sopenharmony_ci        color: #153491;
158fb726d48Sopenharmony_ci      }
159fb726d48Sopenharmony_ci
160fb726d48Sopenharmony_ci      /* Ruby */
161fb726d48Sopenharmony_ci      .smartperf-ruby .tk.function {
162fb726d48Sopenharmony_ci        color: #3f3e3e;
163fb726d48Sopenharmony_ci      }
164fb726d48Sopenharmony_ci
165fb726d48Sopenharmony_ci      /* Markdown */
166fb726d48Sopenharmony_ci      .smartperf-markdown .tk.url {
167fb726d48Sopenharmony_ci        color: #6e5298;
168fb726d48Sopenharmony_ci      }
169fb726d48Sopenharmony_ci
170fb726d48Sopenharmony_ci      /* Makefile */
171fb726d48Sopenharmony_ci      .smartperf-makefile .tk.symbol {
172fb726d48Sopenharmony_ci        color: #6c5393;
173fb726d48Sopenharmony_ci      }
174fb726d48Sopenharmony_ci
175fb726d48Sopenharmony_ci      .smartperf-makefile .tk.variable {
176fb726d48Sopenharmony_ci        color: #183488;
177fb726d48Sopenharmony_ci      }
178fb726d48Sopenharmony_ci
179fb726d48Sopenharmony_ci      .smartperf-makefile .tk.builtin {
180fb726d48Sopenharmony_ci        color: #027ba4;
181fb726d48Sopenharmony_ci      }
182fb726d48Sopenharmony_ci
183fb726d48Sopenharmony_ci      /* Bash */
184fb726d48Sopenharmony_ci      .smartperf-bash .tk.keyword {
185fb726d48Sopenharmony_ci        color: #027fa9;
186fb726d48Sopenharmony_ci      }
187fb726d48Sopenharmony_ci
188fb726d48Sopenharmony_ci      /* highlight */
189fb726d48Sopenharmony_ci      pre[dl] {
190fb726d48Sopenharmony_ci        position: relative;
191fb726d48Sopenharmony_ci        padding: 1em 1px 1px 0.9em;
192fb726d48Sopenharmony_ci      }
193fb726d48Sopenharmony_ci
194fb726d48Sopenharmony_ci      pre[dl] .line-highlight-wrapper {
195fb726d48Sopenharmony_ci        position: absolute;
196fb726d48Sopenharmony_ci        top: 1px;
197fb726d48Sopenharmony_ci        left: 1px;
198fb726d48Sopenharmony_ci        background-color: transparent;
199fb726d48Sopenharmony_ci        display: block;
200fb726d48Sopenharmony_ci        width: 99%;
201fb726d48Sopenharmony_ci      }
202fb726d48Sopenharmony_ci
203fb726d48Sopenharmony_ci      pre[dl] .line-highlight {
204fb726d48Sopenharmony_ci        position: absolute;
205fb726d48Sopenharmony_ci        left: 1px;
206fb726d48Sopenharmony_ci        right: 1px;
207fb726d48Sopenharmony_ci        padding: inherit;
208fb726d48Sopenharmony_ci        margin-top: 0.9em;
209fb726d48Sopenharmony_ci        background: hsla(25, 21%, 50%, 0.08);
210fb726d48Sopenharmony_ci        background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));
211fb726d48Sopenharmony_ci        pointer-events: none;
212fb726d48Sopenharmony_ci        line-height: inherit;
213fb726d48Sopenharmony_ci        white-space: pre;
214fb726d48Sopenharmony_ci      }
215fb726d48Sopenharmony_ci
216fb726d48Sopenharmony_ci      pre[dl] .line-highlight:before,
217fb726d48Sopenharmony_ci      pre[dl] .line-highlight[data-end]:after {
218fb726d48Sopenharmony_ci        content: attr(data-start);
219fb726d48Sopenharmony_ci        position: absolute;
220fb726d48Sopenharmony_ci        text-shadow: none;
221fb726d48Sopenharmony_ci        top: 0.3em;
222fb726d48Sopenharmony_ci        left: 0.7em;
223fb726d48Sopenharmony_ci        min-width: 0.9em;
224fb726d48Sopenharmony_ci        padding: 1px 0.6em;
225fb726d48Sopenharmony_ci        background-color: hsla(24, 20%, 47%, 0.4);
226fb726d48Sopenharmony_ci        color: hsl(20, 11%, 95%);
227fb726d48Sopenharmony_ci        text-align: center;
228fb726d48Sopenharmony_ci        vertical-align: 0.2em;
229fb726d48Sopenharmony_ci        border-radius: 10000px;
230fb726d48Sopenharmony_ci        box-shadow: 1px 2px #fdf6f6;
231fb726d48Sopenharmony_ci      }
232fb726d48Sopenharmony_ci
233fb726d48Sopenharmony_ci      pre[dl] .line-highlight[data-end]:after {
234fb726d48Sopenharmony_ci        content: attr(data-end);
235fb726d48Sopenharmony_ci        top: auto;
236fb726d48Sopenharmony_ci        bottom: 0.5em;
237fb726d48Sopenharmony_ci      }
238fb726d48Sopenharmony_ci
239fb726d48Sopenharmony_ci      html body {
240fb726d48Sopenharmony_ci        line-height: 1.6;
241fb726d48Sopenharmony_ci        font-size: 16px;
242fb726d48Sopenharmony_ci        color: #333333;
243fb726d48Sopenharmony_ci        overflow: initial;
244fb726d48Sopenharmony_ci        word-wrap: break-word;
245fb726d48Sopenharmony_ci        font-family: Helvetica;
246fb726d48Sopenharmony_ci        box-sizing: border-box;
247fb726d48Sopenharmony_ci      }
248fb726d48Sopenharmony_ci
249fb726d48Sopenharmony_ci      html body > :first-child {
250fb726d48Sopenharmony_ci        margin-top: 0px;
251fb726d48Sopenharmony_ci      }
252fb726d48Sopenharmony_ci
253fb726d48Sopenharmony_ci      html body h1,
254fb726d48Sopenharmony_ci      html body h2,
255fb726d48Sopenharmony_ci      html body h3,
256fb726d48Sopenharmony_ci      html body h4,
257fb726d48Sopenharmony_ci      html body h5,
258fb726d48Sopenharmony_ci      html body h6 {
259fb726d48Sopenharmony_ci        margin-top: 1em;
260fb726d48Sopenharmony_ci        margin-bottom: 16px;
261fb726d48Sopenharmony_ci        color: #000000;
262fb726d48Sopenharmony_ci        line-height: 1.2;
263fb726d48Sopenharmony_ci      }
264fb726d48Sopenharmony_ci
265fb726d48Sopenharmony_ci      html body h1 {
266fb726d48Sopenharmony_ci        font-weight: 300;
267fb726d48Sopenharmony_ci        font-size: 2.25em;
268fb726d48Sopenharmony_ci        padding-bottom: 0.3em;
269fb726d48Sopenharmony_ci      }
270fb726d48Sopenharmony_ci
271fb726d48Sopenharmony_ci      html body h2 {
272fb726d48Sopenharmony_ci        font-weight: 410;
273fb726d48Sopenharmony_ci        font-size: 1.74em;
274fb726d48Sopenharmony_ci        padding-bottom: 0.2em;
275fb726d48Sopenharmony_ci      }
276fb726d48Sopenharmony_ci
277fb726d48Sopenharmony_ci      html body h3 {
278fb726d48Sopenharmony_ci        font-size: 1.6em;
279fb726d48Sopenharmony_ci        font-weight: 501;
280fb726d48Sopenharmony_ci      }
281fb726d48Sopenharmony_ci
282fb726d48Sopenharmony_ci      html body h4 {
283fb726d48Sopenharmony_ci        font-size: 1.26em;
284fb726d48Sopenharmony_ci        font-weight: 601;
285fb726d48Sopenharmony_ci      }
286fb726d48Sopenharmony_ci
287fb726d48Sopenharmony_ci      html body h5 {
288fb726d48Sopenharmony_ci        font-size: 1.2em;
289fb726d48Sopenharmony_ci        font-weight: 601;
290fb726d48Sopenharmony_ci      }
291fb726d48Sopenharmony_ci
292fb726d48Sopenharmony_ci      html body h6 {
293fb726d48Sopenharmony_ci        font-size: 0.9em;
294fb726d48Sopenharmony_ci        font-weight: 601;
295fb726d48Sopenharmony_ci      }
296fb726d48Sopenharmony_ci
297fb726d48Sopenharmony_ci      html body h1,
298fb726d48Sopenharmony_ci      html body h2,
299fb726d48Sopenharmony_ci      html body h3,
300fb726d48Sopenharmony_ci      html body h4,
301fb726d48Sopenharmony_ci      html body h5 {
302fb726d48Sopenharmony_ci        font-weight: 601;
303fb726d48Sopenharmony_ci      }
304fb726d48Sopenharmony_ci
305fb726d48Sopenharmony_ci      html body h5 {
306fb726d48Sopenharmony_ci        font-size: 0.9em;
307fb726d48Sopenharmony_ci      }
308fb726d48Sopenharmony_ci
309fb726d48Sopenharmony_ci      html body h6 {
310fb726d48Sopenharmony_ci        color: #5c5c5c;
311fb726d48Sopenharmony_ci      }
312fb726d48Sopenharmony_ci
313fb726d48Sopenharmony_ci      html body strong {
314fb726d48Sopenharmony_ci        color: #090909;
315fb726d48Sopenharmony_ci      }
316fb726d48Sopenharmony_ci
317fb726d48Sopenharmony_ci      html body del {
318fb726d48Sopenharmony_ci        color: #525252;
319fb726d48Sopenharmony_ci      }
320fb726d48Sopenharmony_ci
321fb726d48Sopenharmony_ci      html body a:not([href]) {
322fb726d48Sopenharmony_ci        color: inherit;
323fb726d48Sopenharmony_ci        text-decoration: none;
324fb726d48Sopenharmony_ci      }
325fb726d48Sopenharmony_ci
326fb726d48Sopenharmony_ci      html body a {
327fb726d48Sopenharmony_ci        color: #0192da;
328fb726d48Sopenharmony_ci        text-decoration: none;
329fb726d48Sopenharmony_ci      }
330fb726d48Sopenharmony_ci
331fb726d48Sopenharmony_ci      html body a:hover {
332fb726d48Sopenharmony_ci        color: #029dea;
333fb726d48Sopenharmony_ci        text-decoration: none;
334fb726d48Sopenharmony_ci      }
335fb726d48Sopenharmony_ci
336fb726d48Sopenharmony_ci      html body img {
337fb726d48Sopenharmony_ci        max-width: 99%;
338fb726d48Sopenharmony_ci      }
339fb726d48Sopenharmony_ci
340fb726d48Sopenharmony_ci      html body > p {
341fb726d48Sopenharmony_ci        margin-top: 1px;
342fb726d48Sopenharmony_ci        margin-bottom: 15px;
343fb726d48Sopenharmony_ci        word-wrap: break-word;
344fb726d48Sopenharmony_ci      }
345fb726d48Sopenharmony_ci
346fb726d48Sopenharmony_ci      html body > ul,
347fb726d48Sopenharmony_ci      html body > ol {
348fb726d48Sopenharmony_ci        margin-bottom: 15px;
349fb726d48Sopenharmony_ci      }
350fb726d48Sopenharmony_ci
351fb726d48Sopenharmony_ci      html body ul,
352fb726d48Sopenharmony_ci      html body ol {
353fb726d48Sopenharmony_ci        padding-left: 1.9em;
354fb726d48Sopenharmony_ci      }
355fb726d48Sopenharmony_ci
356fb726d48Sopenharmony_ci      html body ul.no-list,
357fb726d48Sopenharmony_ci      html body ol.no-list {
358fb726d48Sopenharmony_ci        padding: 0px;
359fb726d48Sopenharmony_ci        list-style-type: none;
360fb726d48Sopenharmony_ci      }
361fb726d48Sopenharmony_ci
362fb726d48Sopenharmony_ci      html body ul ul,
363fb726d48Sopenharmony_ci      html body ul ol,
364fb726d48Sopenharmony_ci      html body ol ol,
365fb726d48Sopenharmony_ci      html body ol ul {
366fb726d48Sopenharmony_ci        margin-top: 1px;
367fb726d48Sopenharmony_ci        margin-bottom: 1px;
368fb726d48Sopenharmony_ci      }
369fb726d48Sopenharmony_ci
370fb726d48Sopenharmony_ci      html body li {
371fb726d48Sopenharmony_ci        margin-bottom: 1px;
372fb726d48Sopenharmony_ci      }
373fb726d48Sopenharmony_ci
374fb726d48Sopenharmony_ci      html body li.task-list-item {
375fb726d48Sopenharmony_ci        list-style: none;
376fb726d48Sopenharmony_ci      }
377fb726d48Sopenharmony_ci
378fb726d48Sopenharmony_ci      html body li > p {
379fb726d48Sopenharmony_ci        margin-top: 1px;
380fb726d48Sopenharmony_ci        margin-bottom: 1px;
381fb726d48Sopenharmony_ci      }
382fb726d48Sopenharmony_ci
383fb726d48Sopenharmony_ci      html body .task-list-item-checkbox {
384fb726d48Sopenharmony_ci        margin: 0 0.3em 0.24em -1.7em;
385fb726d48Sopenharmony_ci        vertical-align: middle;
386fb726d48Sopenharmony_ci      }
387fb726d48Sopenharmony_ci
388fb726d48Sopenharmony_ci      html body .task-list-item-checkbox:hover {
389fb726d48Sopenharmony_ci        cursor: pointer;
390fb726d48Sopenharmony_ci      }
391fb726d48Sopenharmony_ci
392fb726d48Sopenharmony_ci      html body blockquote {
393fb726d48Sopenharmony_ci        padding: 0.1px 15px 0 0.1px;
394fb726d48Sopenharmony_ci        font-size: inherit;
395fb726d48Sopenharmony_ci        color: #5c5c5c;
396fb726d48Sopenharmony_ci        margin: 16px 0.1px 0 0.1px;
397fb726d48Sopenharmony_ci        border-left: 3px solid #cbc9c9;
398fb726d48Sopenharmony_ci        background-color: #e8e6e6;
399fb726d48Sopenharmony_ci      }
400fb726d48Sopenharmony_ci
401fb726d48Sopenharmony_ci      html body blockquote > :first-child {
402fb726d48Sopenharmony_ci        margin-top: 0.2px;
403fb726d48Sopenharmony_ci      }
404fb726d48Sopenharmony_ci
405fb726d48Sopenharmony_ci      html body blockquote > :last-child {
406fb726d48Sopenharmony_ci        margin-bottom: 0.1px;
407fb726d48Sopenharmony_ci      }
408fb726d48Sopenharmony_ci
409fb726d48Sopenharmony_ci      html body hr {
410fb726d48Sopenharmony_ci        height: 5px;
411fb726d48Sopenharmony_ci        background-color: #cbcaca;
412fb726d48Sopenharmony_ci        margin: 32px 0 0.1px 0;
413fb726d48Sopenharmony_ci        border: 0 none;
414fb726d48Sopenharmony_ci      }
415fb726d48Sopenharmony_ci
416fb726d48Sopenharmony_ci      html body table {
417fb726d48Sopenharmony_ci        overflow: auto;
418fb726d48Sopenharmony_ci        border-collapse: collapse;
419fb726d48Sopenharmony_ci        margin: 15px 0.1px 20px 0.1px;
420fb726d48Sopenharmony_ci        border-spacing: 0;
421fb726d48Sopenharmony_ci      }
422fb726d48Sopenharmony_ci
423fb726d48Sopenharmony_ci      html body table th {
424fb726d48Sopenharmony_ci        font-weight: bold;
425fb726d48Sopenharmony_ci        color: #000000;
426fb726d48Sopenharmony_ci      }
427fb726d48Sopenharmony_ci
428fb726d48Sopenharmony_ci      html body table td,
429fb726d48Sopenharmony_ci      html body table th {
430fb726d48Sopenharmony_ci        border: 1px solid #d6d6d6;
431fb726d48Sopenharmony_ci        padding: 2px 14px;
432fb726d48Sopenharmony_ci      }
433fb726d48Sopenharmony_ci
434fb726d48Sopenharmony_ci      html body dl {
435fb726d48Sopenharmony_ci        padding: 0px;
436fb726d48Sopenharmony_ci      }
437fb726d48Sopenharmony_ci
438fb726d48Sopenharmony_ci      html body dl dt {
439fb726d48Sopenharmony_ci        padding: 0px;
440fb726d48Sopenharmony_ci        margin-top: 15px;
441fb726d48Sopenharmony_ci        font-size: 0.9em;
442fb726d48Sopenharmony_ci        font-style: italic;
443fb726d48Sopenharmony_ci        font-weight: bold;
444fb726d48Sopenharmony_ci      }
445fb726d48Sopenharmony_ci
446fb726d48Sopenharmony_ci      html body dl dd {
447fb726d48Sopenharmony_ci        padding: 0px 17px;
448fb726d48Sopenharmony_ci        margin-bottom: 17px;
449fb726d48Sopenharmony_ci      }
450fb726d48Sopenharmony_ci
451fb726d48Sopenharmony_ci      html body code {
452fb726d48Sopenharmony_ci        font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
453fb726d48Sopenharmony_ci        font-size: 0.86em !important;
454fb726d48Sopenharmony_ci        color: #000000;
455fb726d48Sopenharmony_ci        background-color: #f0f0f0;
456fb726d48Sopenharmony_ci        border-radius: 4px;
457fb726d48Sopenharmony_ci        padding: 0.3em 0px;
458fb726d48Sopenharmony_ci      }
459fb726d48Sopenharmony_ci
460fb726d48Sopenharmony_ci      html body code::before,
461fb726d48Sopenharmony_ci      html body code::after {
462fb726d48Sopenharmony_ci        letter-spacing: -0.1em;
463fb726d48Sopenharmony_ci        content: '\00a0';
464fb726d48Sopenharmony_ci      }
465fb726d48Sopenharmony_ci
466fb726d48Sopenharmony_ci      html body pre > code {
467fb726d48Sopenharmony_ci        padding: 1px;
468fb726d48Sopenharmony_ci        margin: 0px;
469fb726d48Sopenharmony_ci        font-size: 0.86em !important;
470fb726d48Sopenharmony_ci        word-break: normal;
471fb726d48Sopenharmony_ci        white-space: pre;
472fb726d48Sopenharmony_ci        background: transparent;
473fb726d48Sopenharmony_ci        border: 0px;
474fb726d48Sopenharmony_ci      }
475fb726d48Sopenharmony_ci
476fb726d48Sopenharmony_ci      html body .highlight {
477fb726d48Sopenharmony_ci        margin-bottom: 17px;
478fb726d48Sopenharmony_ci      }
479fb726d48Sopenharmony_ci
480fb726d48Sopenharmony_ci      html body .highlight pre,
481fb726d48Sopenharmony_ci      html body pre {
482fb726d48Sopenharmony_ci        padding: 0.9em;
483fb726d48Sopenharmony_ci        overflow: auto;
484fb726d48Sopenharmony_ci        font-size: 0.86em !important;
485fb726d48Sopenharmony_ci        line-height: 1.46;
486fb726d48Sopenharmony_ci        border: #d6d6d6;
487fb726d48Sopenharmony_ci        border-radius: 4px;
488fb726d48Sopenharmony_ci      }
489fb726d48Sopenharmony_ci
490fb726d48Sopenharmony_ci      html body .highlight pre {
491fb726d48Sopenharmony_ci        margin-bottom: 0px;
492fb726d48Sopenharmony_ci        word-break: normal;
493fb726d48Sopenharmony_ci      }
494fb726d48Sopenharmony_ci
495fb726d48Sopenharmony_ci      html body pre code,
496fb726d48Sopenharmony_ci      html body pre tt {
497fb726d48Sopenharmony_ci        display: inline;
498fb726d48Sopenharmony_ci        max-width: initial;
499fb726d48Sopenharmony_ci        padding: 1px;
500fb726d48Sopenharmony_ci        margin: 1px;
501fb726d48Sopenharmony_ci        overflow: initial;
502fb726d48Sopenharmony_ci        line-height: inherit;
503fb726d48Sopenharmony_ci        word-wrap: normal;
504fb726d48Sopenharmony_ci        background-color: transparent;
505fb726d48Sopenharmony_ci        border: 1px;
506fb726d48Sopenharmony_ci      }
507fb726d48Sopenharmony_ci
508fb726d48Sopenharmony_ci      html body pre code:before,
509fb726d48Sopenharmony_ci      html body pre tt:before,
510fb726d48Sopenharmony_ci      html body pre code:after,
511fb726d48Sopenharmony_ci      html body pre tt:after {
512fb726d48Sopenharmony_ci        content: normal;
513fb726d48Sopenharmony_ci      }
514fb726d48Sopenharmony_ci
515fb726d48Sopenharmony_ci      html body p,
516fb726d48Sopenharmony_ci      html body blockquote,
517fb726d48Sopenharmony_ci      html body ul,
518fb726d48Sopenharmony_ci      html body ol,
519fb726d48Sopenharmony_ci      html body dl,
520fb726d48Sopenharmony_ci      html body pre {
521fb726d48Sopenharmony_ci        margin-top: 1px;
522fb726d48Sopenharmony_ci        margin-bottom: 17px;
523fb726d48Sopenharmony_ci      }
524fb726d48Sopenharmony_ci
525fb726d48Sopenharmony_ci      html body kbd {
526fb726d48Sopenharmony_ci        color: #000000;
527fb726d48Sopenharmony_ci        border: 3px solid #d6d6d6;
528fb726d48Sopenharmony_ci        border-bottom: 3px solid #c7c7c7;
529fb726d48Sopenharmony_ci        padding: 3px 5px;
530fb726d48Sopenharmony_ci        background-color: #f0f0f0;
531fb726d48Sopenharmony_ci        border-radius: 2px;
532fb726d48Sopenharmony_ci      }
533fb726d48Sopenharmony_ci
534fb726d48Sopenharmony_ci      @media print {
535fb726d48Sopenharmony_ci        html body {
536fb726d48Sopenharmony_ci          background-color: #ffffff;
537fb726d48Sopenharmony_ci        }
538fb726d48Sopenharmony_ci
539fb726d48Sopenharmony_ci        html body h1,
540fb726d48Sopenharmony_ci        html body h2,
541fb726d48Sopenharmony_ci        html body h3,
542fb726d48Sopenharmony_ci        html body h4,
543fb726d48Sopenharmony_ci        html body h5,
544fb726d48Sopenharmony_ci        html body h6 {
545fb726d48Sopenharmony_ci          color: #000000;
546fb726d48Sopenharmony_ci          page-break-after: avoid;
547fb726d48Sopenharmony_ci        }
548fb726d48Sopenharmony_ci
549fb726d48Sopenharmony_ci        html body blockquote {
550fb726d48Sopenharmony_ci          color: #5c5c53;
551fb726d48Sopenharmony_ci        }
552fb726d48Sopenharmony_ci
553fb726d48Sopenharmony_ci        html body pre {
554fb726d48Sopenharmony_ci          page-break-inside: avoid;
555fb726d48Sopenharmony_ci        }
556fb726d48Sopenharmony_ci
557fb726d48Sopenharmony_ci        html body table {
558fb726d48Sopenharmony_ci          display: table;
559fb726d48Sopenharmony_ci        }
560fb726d48Sopenharmony_ci
561fb726d48Sopenharmony_ci        html body img {
562fb726d48Sopenharmony_ci          display: block;
563fb726d48Sopenharmony_ci          max-width: 99%;
564fb726d48Sopenharmony_ci          max-height: 99%;
565fb726d48Sopenharmony_ci        }
566fb726d48Sopenharmony_ci
567fb726d48Sopenharmony_ci        html body pre,
568fb726d48Sopenharmony_ci        html body code {
569fb726d48Sopenharmony_ci          word-wrap: break-word;
570fb726d48Sopenharmony_ci          white-space: pre;
571fb726d48Sopenharmony_ci        }
572fb726d48Sopenharmony_ci      }
573fb726d48Sopenharmony_ci
574fb726d48Sopenharmony_ci      .smartperf-preview {
575fb726d48Sopenharmony_ci        width: 68vw;
576fb726d48Sopenharmony_ci        height: 99%;
577fb726d48Sopenharmony_ci        box-sizing: border-box;
578fb726d48Sopenharmony_ci        overflow: hidden;
579fb726d48Sopenharmony_ci        background-color: #fff;
580fb726d48Sopenharmony_ci      }
581fb726d48Sopenharmony_ci
582fb726d48Sopenharmony_ci      .smartperf-preview .pagebreak,
583fb726d48Sopenharmony_ci      .smartperf-preview .newpage {
584fb726d48Sopenharmony_ci        page-break-before: always;
585fb726d48Sopenharmony_ci      }
586fb726d48Sopenharmony_ci
587fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers {
588fb726d48Sopenharmony_ci        position: relative;
589fb726d48Sopenharmony_ci        padding-left: 3.7em;
590fb726d48Sopenharmony_ci        counter-reset: linenumber;
591fb726d48Sopenharmony_ci      }
592fb726d48Sopenharmony_ci
593fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers > code {
594fb726d48Sopenharmony_ci        position: relative;
595fb726d48Sopenharmony_ci      }
596fb726d48Sopenharmony_ci
597fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows {
598fb726d48Sopenharmony_ci        position: absolute;
599fb726d48Sopenharmony_ci        pointer-events: none;
600fb726d48Sopenharmony_ci        top: 0.9em;
601fb726d48Sopenharmony_ci        font-size: 99%;
602fb726d48Sopenharmony_ci        left: 1px;
603fb726d48Sopenharmony_ci        width: 3em;
604fb726d48Sopenharmony_ci        letter-spacing: -1px;
605fb726d48Sopenharmony_ci        border-right: 1px solid #999;
606fb726d48Sopenharmony_ci        -webkit-user-select: none;
607fb726d48Sopenharmony_ci        -moz-user-select: none;
608fb726d48Sopenharmony_ci        -ms-user-select: none;
609fb726d48Sopenharmony_ci        user-select: none;
610fb726d48Sopenharmony_ci      }
611fb726d48Sopenharmony_ci
612fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows > span {
613fb726d48Sopenharmony_ci        pointer-events: none;
614fb726d48Sopenharmony_ci        display: block;
615fb726d48Sopenharmony_ci        counter-increment: linenumber;
616fb726d48Sopenharmony_ci      }
617fb726d48Sopenharmony_ci
618fb726d48Sopenharmony_ci      .smartperf-preview pre.line-numbers .line-numbers-rows > span:before {
619fb726d48Sopenharmony_ci        content: counter(linenumber);
620fb726d48Sopenharmony_ci        color: #999;
621fb726d48Sopenharmony_ci        display: block;
622fb726d48Sopenharmony_ci        padding-right: 0.79em;
623fb726d48Sopenharmony_ci        text-align: right;
624fb726d48Sopenharmony_ci      }
625fb726d48Sopenharmony_ci
626fb726d48Sopenharmony_ci      .smartperf-preview .mathjax-exps .MathJax_Display {
627fb726d48Sopenharmony_ci        text-align: center !important;
628fb726d48Sopenharmony_ci      }
629fb726d48Sopenharmony_ci
630fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .btn-group {
631fb726d48Sopenharmony_ci        display: none;
632fb726d48Sopenharmony_ci      }
633fb726d48Sopenharmony_ci
634fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .status {
635fb726d48Sopenharmony_ci        display: none;
636fb726d48Sopenharmony_ci      }
637fb726d48Sopenharmony_ci
638fb726d48Sopenharmony_ci      .smartperf-preview:not([for='preview']) .code-chunk .output-div {
639fb726d48Sopenharmony_ci        margin-bottom: 16px;
640fb726d48Sopenharmony_ci      }
641fb726d48Sopenharmony_ci
642fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar {
643fb726d48Sopenharmony_ci        width: 8px;
644fb726d48Sopenharmony_ci      }
645fb726d48Sopenharmony_ci
646fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar-track {
647fb726d48Sopenharmony_ci        border-radius: 9px;
648fb726d48Sopenharmony_ci        background-color: transparent;
649fb726d48Sopenharmony_ci      }
650fb726d48Sopenharmony_ci
651fb726d48Sopenharmony_ci      .scrollbar-style::-webkit-scrollbar-thumb {
652fb726d48Sopenharmony_ci        border-radius: 6px;
653fb726d48Sopenharmony_ci        background-color: rgba(150, 150, 150, 1);
654fb726d48Sopenharmony_ci        border: 4px solid rgba(150, 150, 150, 1);
655fb726d48Sopenharmony_ci        background-clip: content-box;
656fb726d48Sopenharmony_ci      }
657fb726d48Sopenharmony_ci
658fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) {
659fb726d48Sopenharmony_ci        position: relative;
660fb726d48Sopenharmony_ci        width: 99%;
661fb726d48Sopenharmony_ci        height: 99%;;
662fb726d48Sopenharmony_ci        overflow: auto;
663fb726d48Sopenharmony_ci      }
664fb726d48Sopenharmony_ci
665fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) .smartperf-preview {
666fb726d48Sopenharmony_ci        position: relative;
667fb726d48Sopenharmony_ci        top: 1px;
668fb726d48Sopenharmony_ci      }
669fb726d48Sopenharmony_ci
670fb726d48Sopenharmony_ci      @media screen and (min-width: 914px) {
671fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
672fb726d48Sopenharmony_ci          padding: 2em;
673fb726d48Sopenharmony_ci        }
674fb726d48Sopenharmony_ci      }
675fb726d48Sopenharmony_ci
676fb726d48Sopenharmony_ci      @media screen and (max-width: 914px) {
677fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
678fb726d48Sopenharmony_ci          padding: 1.9em;
679fb726d48Sopenharmony_ci        }
680fb726d48Sopenharmony_ci      }
681fb726d48Sopenharmony_ci
682fb726d48Sopenharmony_ci      @media screen and (max-width: 450px) {
683fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) .smartperf-preview {
684fb726d48Sopenharmony_ci          font-size: 15px !important;
685fb726d48Sopenharmony_ci          padding: 1.1em;
686fb726d48Sopenharmony_ci        }
687fb726d48Sopenharmony_ci      }
688fb726d48Sopenharmony_ci
689fb726d48Sopenharmony_ci      @media print {
690fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
691fb726d48Sopenharmony_ci          display: none;
692fb726d48Sopenharmony_ci        }
693fb726d48Sopenharmony_ci      }
694fb726d48Sopenharmony_ci
695fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
696fb726d48Sopenharmony_ci        position: fixed;
697fb726d48Sopenharmony_ci        bottom: 9px;
698fb726d48Sopenharmony_ci        left: 9px;
699fb726d48Sopenharmony_ci        font-size: 28px;
700fb726d48Sopenharmony_ci        cursor: pointer;
701fb726d48Sopenharmony_ci        color: inherit;
702fb726d48Sopenharmony_ci        z-index: 99;
703fb726d48Sopenharmony_ci        width: 31px;
704fb726d48Sopenharmony_ci        text-align: center;
705fb726d48Sopenharmony_ci        opacity: 0.5;
706fb726d48Sopenharmony_ci      }
707fb726d48Sopenharmony_ci
708fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn {
709fb726d48Sopenharmony_ci        opacity: 1;
710fb726d48Sopenharmony_ci      }
711fb726d48Sopenharmony_ci
712fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc {
713fb726d48Sopenharmony_ci        position: fixed;
714fb726d48Sopenharmony_ci        top: 1px;
715fb726d48Sopenharmony_ci        left: 1px;
716fb726d48Sopenharmony_ci        width: 300px;
717fb726d48Sopenharmony_ci        height: 99%;
718fb726d48Sopenharmony_ci        padding: 32px 0 48px 0;
719fb726d48Sopenharmony_ci        font-size: 14px;
720fb726d48Sopenharmony_ci        box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33);
721fb726d48Sopenharmony_ci        box-sizing: border-box;
722fb726d48Sopenharmony_ci        overflow: auto;
723fb726d48Sopenharmony_ci        background-color: inherit;
724fb726d48Sopenharmony_ci      }
725fb726d48Sopenharmony_ci
726fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar {
727fb726d48Sopenharmony_ci        width: 9px;
728fb726d48Sopenharmony_ci      }
729fb726d48Sopenharmony_ci
730fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track {
731fb726d48Sopenharmony_ci        border-radius: 11px;
732fb726d48Sopenharmony_ci        background-color: transparent;
733fb726d48Sopenharmony_ci      }
734fb726d48Sopenharmony_ci
735fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb {
736fb726d48Sopenharmony_ci        border-radius: 6px;
737fb726d48Sopenharmony_ci        background-color: rgba(150, 150, 150, 0.66);
738fb726d48Sopenharmony_ci        border: 3px solid rgba(150, 150, 150, 0.66);
739fb726d48Sopenharmony_ci        background-clip: content-box;
740fb726d48Sopenharmony_ci      }
741fb726d48Sopenharmony_ci
742fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a {
743fb726d48Sopenharmony_ci        text-decoration: none;
744fb726d48Sopenharmony_ci      }
745fb726d48Sopenharmony_ci
746fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
747fb726d48Sopenharmony_ci        padding: 1px 1.7em;
748fb726d48Sopenharmony_ci        margin-top: 0.9em;
749fb726d48Sopenharmony_ci      }
750fb726d48Sopenharmony_ci
751fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li {
752fb726d48Sopenharmony_ci        margin-bottom: 0.8em;
753fb726d48Sopenharmony_ci      }
754fb726d48Sopenharmony_ci
755fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
756fb726d48Sopenharmony_ci        list-style-type: none;
757fb726d48Sopenharmony_ci      }
758fb726d48Sopenharmony_ci
759fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
760fb726d48Sopenharmony_ci        left: 301px;
761fb726d48Sopenharmony_ci        width: calc(100% - 300px);
762fb726d48Sopenharmony_ci        padding: 2em calc(50% - 457px - 150px);
763fb726d48Sopenharmony_ci        margin: 1px;
764fb726d48Sopenharmony_ci        box-sizing: border-box;
765fb726d48Sopenharmony_ci      }
766fb726d48Sopenharmony_ci
767fb726d48Sopenharmony_ci      @media screen and (max-width: 1274px) {
768fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
769fb726d48Sopenharmony_ci          padding: 1.9em;
770fb726d48Sopenharmony_ci        }
771fb726d48Sopenharmony_ci      }
772fb726d48Sopenharmony_ci
773fb726d48Sopenharmony_ci      @media screen and (max-width: 450px) {
774fb726d48Sopenharmony_ci        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
775fb726d48Sopenharmony_ci          width: 99%;
776fb726d48Sopenharmony_ci        }
777fb726d48Sopenharmony_ci      }
778fb726d48Sopenharmony_ci
779fb726d48Sopenharmony_ci      html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc {
780fb726d48Sopenharmony_ci        display: none;
781fb726d48Sopenharmony_ci      }
782fb726d48Sopenharmony_ci    </style>
783fb726d48Sopenharmony_ci  </head>
784fb726d48Sopenharmony_ci  <body for="html-export" id="body" style="margin:0">
785fb726d48Sopenharmony_ci    <div class="smartperf smartperf-preview" style="min-height: 99vh;">
786fb726d48Sopenharmony_ci      <h1 class="mume-header fontColor">Native Memory 抓取和展示说明</h1>
787fb726d48Sopenharmony_ci
788fb726d48Sopenharmony_ci      <p class="fontColor">Native Memory 是查看内存的分配和释放等情况。</p>
789fb726d48Sopenharmony_ci      <h2 class="mume-header fontColor">Native Memory 的抓取</h2>
790fb726d48Sopenharmony_ci
791fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-1">Native Memory 抓取配置参数</h3>
792fb726d48Sopenharmony_ci
793fb726d48Sopenharmony_ci      <p class="fontColor"><img
794fb726d48Sopenharmony_ci        src="../figures/NativeMemory/nativememorysetting.png"
795fb726d48Sopenharmony_ci        alt="GitHub Logo"><br>
796fb726d48Sopenharmony_ci        配置参数说明:
797fb726d48Sopenharmony_ci      </p>
798fb726d48Sopenharmony_ci      <ul class="fontColor">
799fb726d48Sopenharmony_ci        <li>Process:设置抓取的进程 ID 或者进程名,此处以输入 com.ohos.mms 进程名为例。</li>
800fb726d48Sopenharmony_ci        <li>Use Fp Unwind:是否Fp 回栈。</li>
801fb726d48Sopenharmony_ci        <li>Use Record Statistics:统计数据上报时间间隔设置。</li>
802fb726d48Sopenharmony_ci        <li>Use Record Js Stack:是否抓js栈。</li>
803fb726d48Sopenharmony_ci      </ul>
804fb726d48Sopenharmony_ci      <p class="fontColor">点击Advance Options进入高级配置界面<br>
805fb726d48Sopenharmony_ci        <img
806fb726d48Sopenharmony_ci          src="../figures/NativeMemory/nativememoryAdvoption.png"
807fb726d48Sopenharmony_ci          alt="GitHub Logo">
808fb726d48Sopenharmony_ci      </p>
809fb726d48Sopenharmony_ci      <ul class="fontColor">
810fb726d48Sopenharmony_ci        <li>Use Startup Mode: 抓取应用启动阶段的内存(默认是关闭,需要抓取应用启阶段内存可开启)。</li>
811fb726d48Sopenharmony_ci        <li>Use Response Lib Mode:nativememory抓取支持So能力。</li>
812fb726d48Sopenharmony_ci        <li>Use Record Accurately:不过滤数据,上报全量的。</li>
813fb726d48Sopenharmony_ci        <li>Use Offline Symbolization:离线符号化。</li>
814fb726d48Sopenharmony_ci        <li>Sample Interval:采样间隔。</li>
815fb726d48Sopenharmony_ci        <li>Shared Memory Size:native_daemon 和 native_hook 进程之间存储数据的共享内存大小。</li>
816fb726d48Sopenharmony_ci        <li>Max unwind level:抓取的栈的最大深度。</li>
817fb726d48Sopenharmony_ci        <li>Max Js Stack Depth:抓取的Js栈的最大深度。</li>
818fb726d48Sopenharmony_ci        <li>Filter Memory Size:只抓取大于该 size 的 malloc 数据(free 不受影响)。</li>
819fb726d48Sopenharmony_ci        <li>Filter Napi Name:fp模式过滤某个napi调用。</li>
820fb726d48Sopenharmony_ci      </ul>
821fb726d48Sopenharmony_ci      <p class="fontColor">再点击 Record setting,在 output file path 输入文件名
822fb726d48Sopenharmony_ci        hiprofiler_data_nativememory.htrace,拖动滚动条设置 buffer size 大小是 64MB,抓取时长是 50s。<br>
823fb726d48Sopenharmony_ci        <img
824fb726d48Sopenharmony_ci          src="../figures/NativeMemory/nativememoryset.png"
825fb726d48Sopenharmony_ci          alt="GitHub Logo">
826fb726d48Sopenharmony_ci      </p>
827fb726d48Sopenharmony_ci      <p class="fontColor">点击 Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。<br>
828fb726d48Sopenharmony_ci        <img
829fb726d48Sopenharmony_ci          src="../figures/NativeMemory/nativememorycommand.jpg"
830fb726d48Sopenharmony_ci          alt="GitHub Logo"></p>
831fb726d48Sopenharmony_ci      <p class="fontColor">命令行参数说明:
832fb726d48Sopenharmony_ci      </p>
833fb726d48Sopenharmony_ci      <ul class="fontColor">
834fb726d48Sopenharmony_ci        <li>save_file:是否将 hook 数据保存成文件,不上报 protobuf 形式数据给 hiprofilerd。</li>
835fb726d48Sopenharmony_ci        <li>filter_size:过滤 malloc 的大小,最小值是 0,默认值是 4096byte。</li>
836fb726d48Sopenharmony_ci        <li>smb_pages:nativedeamon 与 libnativehook 间的共享内存大小。</li>
837fb726d48Sopenharmony_ci        <li>max_stack_depth:最多回栈的层数,也就是抓取的栈的最大深度。</li>
838fb726d48Sopenharmony_ci        <li>process_name:抓取的应用进程名。</li>
839fb726d48Sopenharmony_ci        <li>string_compressed:是否进行字符串压缩。</li>
840fb726d48Sopenharmony_ci        <li>fp_unwind:是否进行 fp 回栈。</li>
841fb726d48Sopenharmony_ci        <li>callframe_compress: 是否进行栈帧压缩。</li>
842fb726d48Sopenharmony_ci        <li>record_accurately: 是否不过滤数据,上报全量的。</li>
843fb726d48Sopenharmony_ci        <li>offline_symbolization: 是否离线符号化。</li>
844fb726d48Sopenharmony_ci        <li>statistics_interval: 统计模式下上报数据的时间间隔。</li>
845fb726d48Sopenharmony_ci        <li>startup_mode: 是否需要抓取应用启动阶段内存。</li>
846fb726d48Sopenharmony_ci      </ul>
847fb726d48Sopenharmony_ci      <p class="fontColor">输入 hdc shell,进入设备,执行命令。<br>
848fb726d48Sopenharmony_ci        <img
849fb726d48Sopenharmony_ci          src="../figures/NativeMemory/nativeexcutecommand.jpg"
850fb726d48Sopenharmony_ci          alt="GitHub Logo"><br>
851fb726d48Sopenharmony_ci        执行完成后,进入指定目录查看,在/data/local/tmp 下就会生成 trace 文件。<br>
852fb726d48Sopenharmony_ci        <img
853fb726d48Sopenharmony_ci          src="../figures/NativeMemory/naitvememoryfile.jpg"
854fb726d48Sopenharmony_ci          alt="GitHub Logo">
855fb726d48Sopenharmony_ci      </p>
856fb726d48Sopenharmony_ci      <h2 class="mume-header fontColor">Native Memory 展示说明</h2>
857fb726d48Sopenharmony_ci
858fb726d48Sopenharmony_ci      <p class="fontColor">将抓取的 Native Memory 文件导入到 smartperf
859fb726d48Sopenharmony_ci        工具中查看,查看内存的分配和释放等情况。</p>
860fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-2">Native Memory 泳道图展示类型</h3>
861fb726d48Sopenharmony_ci
862fb726d48Sopenharmony_ci      <p class="fontColor">点击齿轮状的图标可以设置内存的展示单位。<br>
863fb726d48Sopenharmony_ci        <img
864fb726d48Sopenharmony_ci          src="../figures/NativeMemory/NativeChart.png"
865fb726d48Sopenharmony_ci          alt="GitHub Logo">
866fb726d48Sopenharmony_ci      </p>
867fb726d48Sopenharmony_ci      <ul class="fontColor">
868fb726d48Sopenharmony_ci        <li>
869fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Current Bytes:以申请内存的size绘制泳道图。
870fb726d48Sopenharmony_ci          </pre>
871fb726d48Sopenharmony_ci        </li>
872fb726d48Sopenharmony_ci        <li>
873fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Native Memory Density:以申请内存的数量绘制泳道图。
874fb726d48Sopenharmony_ci          </pre>
875fb726d48Sopenharmony_ci        </li>
876fb726d48Sopenharmony_ci        <li>
877fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">All Heap&amp;Anonymous VM:malloc分配和mmap分配的总量。
878fb726d48Sopenharmony_ci          </pre>
879fb726d48Sopenharmony_ci        </li>
880fb726d48Sopenharmony_ci        <li>
881fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">All Heap:malloc分配的内存。
882fb726d48Sopenharmony_ci          </pre>
883fb726d48Sopenharmony_ci        </li>
884fb726d48Sopenharmony_ci        <li>
885fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">All Anonymous VM:mmap分配的内存。
886fb726d48Sopenharmony_ci          </pre>
887fb726d48Sopenharmony_ci        </li>
888fb726d48Sopenharmony_ci      </ul>
889fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-3">Native Memory 泳道图的框选功能</h3>
890fb726d48Sopenharmony_ci
891fb726d48Sopenharmony_ci      <p class="fontColor">可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有五个
892fb726d48Sopenharmony_ci        tab 页。<br>
893fb726d48Sopenharmony_ci        Statistics 的 Tab 页,主要显示了统计明细类型。<br>
894fb726d48Sopenharmony_ci        <img
895fb726d48Sopenharmony_ci          src="../figures/NativeMemory/Statistics.png"
896fb726d48Sopenharmony_ci          alt="GitHub Logo">
897fb726d48Sopenharmony_ci      </p>
898fb726d48Sopenharmony_ci      <ul class="fontColor">
899fb726d48Sopenharmony_ci        <li>
900fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Memory Type:内存的类型。
901fb726d48Sopenharmony_ci          </pre>
902fb726d48Sopenharmony_ci        </li>
903fb726d48Sopenharmony_ci        <li>
904fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Existing:框选区间内申请没有释放的大小。
905fb726d48Sopenharmony_ci          </pre>
906fb726d48Sopenharmony_ci        </li>
907fb726d48Sopenharmony_ci        <li>
908fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">#Existing:框选区间内申请没有释放的次数。
909fb726d48Sopenharmony_ci          </pre>
910fb726d48Sopenharmony_ci        </li>
911fb726d48Sopenharmony_ci        <li>
912fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Transient:框选区间内释放的大小。
913fb726d48Sopenharmony_ci          </pre>
914fb726d48Sopenharmony_ci        </li>
915fb726d48Sopenharmony_ci        <li>
916fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">#Transient:框选区间内释放的次数。
917fb726d48Sopenharmony_ci          </pre>
918fb726d48Sopenharmony_ci        </li>
919fb726d48Sopenharmony_ci        <li>
920fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Total Bytes:框选区间内申请的大小。
921fb726d48Sopenharmony_ci          </pre>
922fb726d48Sopenharmony_ci        </li>
923fb726d48Sopenharmony_ci        <li>
924fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">#Total: 框选区间内申请的次数。
925fb726d48Sopenharmony_ci          </pre>
926fb726d48Sopenharmony_ci        </li>
927fb726d48Sopenharmony_ci        <li>
928fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Peak Value: 框选区间内内存申请的峰值。
929fb726d48Sopenharmony_ci          </pre>
930fb726d48Sopenharmony_ci        </li>
931fb726d48Sopenharmony_ci        <li>
932fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Existing/Total:框选区间内剩余的内存比上申请的内存,其中浅紫色是框选区间内申请的大小/整个时间轴(申请+释放的总大小),深紫色是框选区间内(申请+释放)的大小/整个时间轴(申请+释放的总大小)。
933fb726d48Sopenharmony_ci          </pre>
934fb726d48Sopenharmony_ci        </li>
935fb726d48Sopenharmony_ci      </ul>
936fb726d48Sopenharmony_ci      <p class="fontColor">Analysis 的 Tab 页,主要从Memory Type、Thread、Library、Function等维度展示内存统计信息。<br>
937fb726d48Sopenharmony_ci        <img src="../figures/NativeMemory/Analysis.png" alt="GitHub Logo">
938fb726d48Sopenharmony_ci      </p>
939fb726d48Sopenharmony_ci      <p class="fontColor">Call Info 的 Tab 页,主要显示了调用树详细类型。<br>
940fb726d48Sopenharmony_ci        <img
941fb726d48Sopenharmony_ci          src="../figures/NativeMemory/CallInfo.png"
942fb726d48Sopenharmony_ci          alt="GitHub Logo">
943fb726d48Sopenharmony_ci      </p>
944fb726d48Sopenharmony_ci      <ul class="fontColor">
945fb726d48Sopenharmony_ci        <li>
946fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Symble Name:每个内存分配的调用栈。
947fb726d48Sopenharmony_ci          </pre>
948fb726d48Sopenharmony_ci        </li>
949fb726d48Sopenharmony_ci        <li>
950fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Size:分配的总大小。
951fb726d48Sopenharmony_ci          </pre>
952fb726d48Sopenharmony_ci        </li>
953fb726d48Sopenharmony_ci        <li>
954fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Count:相同调用栈出现的次数。
955fb726d48Sopenharmony_ci          </pre>
956fb726d48Sopenharmony_ci          Native Memory 的 Tab 页,主要显示了单次分配信息列表。<br>
957fb726d48Sopenharmony_ci          <img
958fb726d48Sopenharmony_ci            src="../figures/NativeMemory/NativeMemory.png"
959fb726d48Sopenharmony_ci            alt="GitHub Logo"></li>
960fb726d48Sopenharmony_ci        <li>
961fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Address:内存块的地址。
962fb726d48Sopenharmony_ci          </pre>
963fb726d48Sopenharmony_ci        </li>
964fb726d48Sopenharmony_ci        <li>
965fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Memory Type:内存分配的类型。
966fb726d48Sopenharmony_ci          </pre>
967fb726d48Sopenharmony_ci        </li>
968fb726d48Sopenharmony_ci        <li>
969fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Timestamp:时间戳信息。
970fb726d48Sopenharmony_ci          </pre>
971fb726d48Sopenharmony_ci        </li>
972fb726d48Sopenharmony_ci        <li>
973fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">State:内存地址当前状态Existed 表示框选区间内未释放,Freed表示已释放。
974fb726d48Sopenharmony_ci          </pre>
975fb726d48Sopenharmony_ci        </li>
976fb726d48Sopenharmony_ci        <li>
977fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Size:该次申请分配内存的大小。
978fb726d48Sopenharmony_ci          </pre>
979fb726d48Sopenharmony_ci        </li>
980fb726d48Sopenharmony_ci        <li>
981fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Responsible Library :调用该函数的库。
982fb726d48Sopenharmony_ci          </pre>
983fb726d48Sopenharmony_ci        </li>
984fb726d48Sopenharmony_ci        <li>
985fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Responsible Caller  :调用该函数的方法。
986fb726d48Sopenharmony_ci          </pre>
987fb726d48Sopenharmony_ci          Snapshot List 的 Tab 页,主要显示了各时刻内存的增长的差值。<br>
988fb726d48Sopenharmony_ci          <img
989fb726d48Sopenharmony_ci            src="../figures/NativeMemory/Snapshotlist.png"
990fb726d48Sopenharmony_ci            alt="GitHub Logo"></li>
991fb726d48Sopenharmony_ci        <li>
992fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Snapshot:标记的打点说明。
993fb726d48Sopenharmony_ci          </pre>
994fb726d48Sopenharmony_ci        </li>
995fb726d48Sopenharmony_ci        <li>
996fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Timestamp :时间戳信息。
997fb726d48Sopenharmony_ci          </pre>
998fb726d48Sopenharmony_ci        </li>
999fb726d48Sopenharmony_ci        <li>
1000fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Net Growth :自从上次Snapshot的增长量,是计算分配和释放的。
1001fb726d48Sopenharmony_ci          </pre>
1002fb726d48Sopenharmony_ci        </li>
1003fb726d48Sopenharmony_ci        <li>
1004fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">Total Growth :自从上次Snapshot的增长量,是计算每一次分配的。
1005fb726d48Sopenharmony_ci          </pre>
1006fb726d48Sopenharmony_ci        </li>
1007fb726d48Sopenharmony_ci        <li>
1008fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">#Existing  :仍然存在的内存数。
1009fb726d48Sopenharmony_ci          </pre>
1010fb726d48Sopenharmony_ci        </li>
1011fb726d48Sopenharmony_ci      </ul>
1012fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-4">Native Memory 的辅助信息功能</h3>
1013fb726d48Sopenharmony_ci
1014fb726d48Sopenharmony_ci      <p class="fontColor">在 Call Info 和 Native Memory 的 Tab 页,点击选中某一行,右边画红线处会显示出该行调用栈的树结构信息。<br>
1015fb726d48Sopenharmony_ci        <img
1016fb726d48Sopenharmony_ci          src="../figures/NativeMemory/nativecallstack.png"
1017fb726d48Sopenharmony_ci          alt="GitHub Logo">
1018fb726d48Sopenharmony_ci      </p>
1019fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-5">Native Memory 详细显示的过滤功能</h3>
1020fb726d48Sopenharmony_ci
1021fb726d48Sopenharmony_ci      <p class="fontColor">点击下方的 All Allocations 可以对 Allocation Lifespan 进行过滤,有三个选择:All
1022fb726d48Sopenharmony_ci        Allocations,Created &amp; Existing,Created &amp; Destroyed。<br>
1023fb726d48Sopenharmony_ci        <img
1024fb726d48Sopenharmony_ci          src="../figures/NativeMemory/lifespan.jpg"
1025fb726d48Sopenharmony_ci          alt="GitHub Logo">
1026fb726d48Sopenharmony_ci      </p>
1027fb726d48Sopenharmony_ci      <ul class="fontColor">
1028fb726d48Sopenharmony_ci        <li>
1029fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light"> All Allocations:所有的内存。
1030fb726d48Sopenharmony_ci          </pre>
1031fb726d48Sopenharmony_ci        </li>
1032fb726d48Sopenharmony_ci        <li>
1033fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light"> Created &amp; Existing:创建且被存活的内存。
1034fb726d48Sopenharmony_ci          </pre>
1035fb726d48Sopenharmony_ci        </li>
1036fb726d48Sopenharmony_ci        <li>
1037fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light"> Created &amp; Destroyed: 创建且被销毁的内存。
1038fb726d48Sopenharmony_ci          </pre>
1039fb726d48Sopenharmony_ci          点击下方的 All Heap&amp;Anonymous 可以对内存类型进行过滤。<br>
1040fb726d48Sopenharmony_ci          <img
1041fb726d48Sopenharmony_ci            src="../figures/NativeMemory/AllocationType.jpg"
1042fb726d48Sopenharmony_ci            alt="GitHub Logo"></li>
1043fb726d48Sopenharmony_ci        <li>
1044fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">All Heap&amp;Anonymous VM:Heap和Anonymous VM的总量。
1045fb726d48Sopenharmony_ci          </pre>
1046fb726d48Sopenharmony_ci        </li>
1047fb726d48Sopenharmony_ci        <li>
1048fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">All Heap:malloc分配的内存。
1049fb726d48Sopenharmony_ci          </pre>
1050fb726d48Sopenharmony_ci        </li>
1051fb726d48Sopenharmony_ci        <li>
1052fb726d48Sopenharmony_ci          <pre class="smartperf-text fontColor light">All Anonymous VM:mmap的匿名页。
1053fb726d48Sopenharmony_ci          </pre>
1054fb726d48Sopenharmony_ci          点击下方的 Mark Snapshot 可以在时间轴上打标签。出现小旗的标志,通过标注多个时间点。点击到
1055fb726d48Sopenharmony_ci          Snapshot List 标签页可以看到各个时间点的内存的增长值。<br>
1056fb726d48Sopenharmony_ci          <img
1057fb726d48Sopenharmony_ci            src="../figures/NativeMemory/Generation.jpg"
1058fb726d48Sopenharmony_ci            alt="GitHub Logo"></li>
1059fb726d48Sopenharmony_ci      </ul>
1060fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-6">Native Memory 的火焰图功能</h3>
1061fb726d48Sopenharmony_ci
1062fb726d48Sopenharmony_ci      <p class="fontColor">火焰图的展示跟 Call Info 的 tab 页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称,栈的所在库名,地址,
1063fb726d48Sopenharmony_ci        大小,采集次数。<br>
1064fb726d48Sopenharmony_ci        <img
1065fb726d48Sopenharmony_ci          src="../figures/NativeMemory/nativeflameshow.jpg"
1066fb726d48Sopenharmony_ci          alt="GitHub Logo"></p>
1067fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-7">
1068fb726d48Sopenharmony_ci        基于函数进行调用栈(单个或多个)选择后可以在时间轴上显示内存操作点</h3>
1069fb726d48Sopenharmony_ci
1070fb726d48Sopenharmony_ci      <p class="fontColor">点击火焰图函数时,触发火焰图点击,显示调用栈中该函数出现在时间轴范围的分布情况。<br>
1071fb726d48Sopenharmony_ci        <img
1072fb726d48Sopenharmony_ci          src="../figures/NativeMemory/memoryframe.jpg"
1073fb726d48Sopenharmony_ci          alt="GitHub Logo"></p>
1074fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-8">
1075fb726d48Sopenharmony_ci        内存搜索大小写不敏感,上层火焰图的大小和总内存需要根据搜索内容动态调整</h3>
1076fb726d48Sopenharmony_ci
1077fb726d48Sopenharmony_ci      <p class="fontColor">执行搜索的关键字大小写不区分,搜索的函数的 parent 只显示搜索的 children
1078fb726d48Sopenharmony_ci        的大小之和,且可以与点选联动。</p>
1079fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-9">焦点函数火焰图详细展开:选中函数的全部调用栈展示</h3>
1080fb726d48Sopenharmony_ci
1081fb726d48Sopenharmony_ci      <p class="fontColor">点击调用栈某个函数,点击函数调用的函数对应铺满画布,点击函数的
1082fb726d48Sopenharmony_ci        parent,显示以及绘制的大小变化为点击函数的大小,如下图点击 OHOS::EglCoreInit()函数,会显示该函数的全部调用栈。<br>
1083fb726d48Sopenharmony_ci        <img
1084fb726d48Sopenharmony_ci          src="../figures/NativeMemory/eg_callstack.jpg"
1085fb726d48Sopenharmony_ci          alt="GitHub Logo"></p>
1086fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-10">搜索框支持表达式输入</h3>
1087fb726d48Sopenharmony_ci
1088fb726d48Sopenharmony_ci      <p class="fontColor">调用栈默认会显示火焰图,新增搜索框表达式输入。表达式作用范围为 nativehook
1089fb726d48Sopenharmony_ci        的统计与非统计模式。其中处理的为 Responsible Library 与 Responsible Caller,其中 Responsible
1090fb726d48Sopenharmony_ci        Library 和Responsible Caller 表示从下往上非 libc++ musl 的第一条调用栈的 lib 跟
1091fb726d48Sopenharmony_ci        symbol,如下图所示,由于最后一条 [ operator new(unsigned long) ] <a href="http://libc++.so/">libc++.so</a>
1092fb726d48Sopenharmony_ci        为 <a href="http://libc++.so/">libc++.so</a> 的函数,故跳过,所以该条调用栈的 Responsible Library
1093fb726d48Sopenharmony_ci        为 <a href="http://libhilog.so/">libhilog.so</a>,Responsible Caller 为
1094fb726d48Sopenharmony_ci        OHOS::HiviewDFX::GetDomainLevel(unsigned int) 。<br>
1095fb726d48Sopenharmony_ci        <img
1096fb726d48Sopenharmony_ci          src="../figures/NativeMemory/framecaller.jpg"
1097fb726d48Sopenharmony_ci          alt="GitHub Logo"></p>
1098fb726d48Sopenharmony_ci      <p class="fontColor">表达式说明: 在 InputFilter
1099fb726d48Sopenharmony_ci        输入框可以进行搜索过滤和表达式过滤,其中表达式必须以@开头,英文括号包起所需要过滤的内容,每个括号必须包括
1100fb726d48Sopenharmony_ci        (Responsible Library,Responsible Caller)匹配全量以*表示,否则认为该输入为搜索过滤。</p>
1101fb726d48Sopenharmony_ci      <table class="fontColor">
1102fb726d48Sopenharmony_ci        <thead>
1103fb726d48Sopenharmony_ci        <tr>
1104fb726d48Sopenharmony_ci          <th class="fontColor">表达式</th>
1105fb726d48Sopenharmony_ci          <th class="fontColor">含义</th>
1106fb726d48Sopenharmony_ci        </tr>
1107fb726d48Sopenharmony_ci        </thead>
1108fb726d48Sopenharmony_ci        <tbody>
1109fb726d48Sopenharmony_ci        <tr>
1110fb726d48Sopenharmony_ci          <td>@(libquickjs tryalloc)</td>
1111fb726d48Sopenharmony_ci          <td>只显示 Responsible Library 为 libquickjs 且 Responsible Caller 包含 tryalloc 的数据</td>
1112fb726d48Sopenharmony_ci        </tr>
1113fb726d48Sopenharmony_ci        <tr>
1114fb726d48Sopenharmony_ci          <td>@(libquickjs *)</td>
1115fb726d48Sopenharmony_ci          <td>只显示 Responsible Library 包含 libquickjs 的数据</td>
1116fb726d48Sopenharmony_ci        </tr>
1117fb726d48Sopenharmony_ci        <tr>
1118fb726d48Sopenharmony_ci          <td>@(* tryalloc codec bitmapcache skYUV)</td>
1119fb726d48Sopenharmony_ci          <td>只显示 Responsible Library 为任意值 且 Responsible Caller 包含 tryalloc 或 codec 或
1120fb726d48Sopenharmony_ci            bitmapcache 或 skYUV 的数据
1121fb726d48Sopenharmony_ci          </td>
1122fb726d48Sopenharmony_ci        </tr>
1123fb726d48Sopenharmony_ci        <tr>
1124fb726d48Sopenharmony_ci          <td>@(libglobal *,*resourceManager)</td>
1125fb726d48Sopenharmony_ci          <td>只显示 Responsible Library 包含 libglobal 且 Responsible Caller 为任意值的数据 或
1126fb726d48Sopenharmony_ci            Responsible Library 为任意值,Responsible Caller 包含 resourceManager 的数据
1127fb726d48Sopenharmony_ci          </td>
1128fb726d48Sopenharmony_ci        </tr>
1129fb726d48Sopenharmony_ci        <tr>
1130fb726d48Sopenharmony_ci          <td>@(/data/user *)</td>
1131fb726d48Sopenharmony_ci          <td>只显示 Responsible Library 路径/data/user 且 symbol 为任意值的数据</td>
1132fb726d48Sopenharmony_ci        </tr>
1133fb726d48Sopenharmony_ci        <tr>
1134fb726d48Sopenharmony_ci          <td>@(<a href="http://mali.so/">mali.so</a> *,libGLES_mali.so *)</td>
1135fb726d48Sopenharmony_ci          <td>只显示 Responsible Library 包含 <a href="http://mali.so/">mali.so</a> 或者 libGLES_mali.so
1136fb726d48Sopenharmony_ci            的数据
1137fb726d48Sopenharmony_ci          </td>
1138fb726d48Sopenharmony_ci        </tr>
1139fb726d48Sopenharmony_ci        <tr>
1140fb726d48Sopenharmony_ci          <td>@(* PixelMap:ReadImageData)</td>
1141fb726d48Sopenharmony_ci          <td>只显示 Responsible Caller 包含 PixelMap:ReadImageData 的数据</td>
1142fb726d48Sopenharmony_ci        </tr>
1143fb726d48Sopenharmony_ci        <tr>
1144fb726d48Sopenharmony_ci          <td></td>
1145fb726d48Sopenharmony_ci          <td></td>
1146fb726d48Sopenharmony_ci        </tr>
1147fb726d48Sopenharmony_ci        <tr>
1148fb726d48Sopenharmony_ci          <td>@-(libark jsvm table)</td>
1149fb726d48Sopenharmony_ci          <td>不显示 Responsible Library 包含 libark 且 Responsible Caller 包含 jsvm 或者 table 的数据
1150fb726d48Sopenharmony_ci          </td>
1151fb726d48Sopenharmony_ci        </tr>
1152fb726d48Sopenharmony_ci        <tr>
1153fb726d48Sopenharmony_ci          <td>@-(librender picture, libskia picture) <br></td>
1154fb726d48Sopenharmony_ci          <td>不显示 Responsible Library 包含 librender 或者 libskia 且 Responsible Caller 中包含
1155fb726d48Sopenharmony_ci            picture 的数据
1156fb726d48Sopenharmony_ci          </td>
1157fb726d48Sopenharmony_ci        </tr>
1158fb726d48Sopenharmony_ci        <tr>
1159fb726d48Sopenharmony_ci          <td>@-(libark *)</td>
1160fb726d48Sopenharmony_ci          <td>不显示 Responsible Library 包含 libark 的数据</td>
1161fb726d48Sopenharmony_ci        </tr>
1162fb726d48Sopenharmony_ci        <tr>
1163fb726d48Sopenharmony_ci          <td>@-(* table)</td>
1164fb726d48Sopenharmony_ci          <td>不显示 Responsible Caller 中 table 的数据</td>
1165fb726d48Sopenharmony_ci        </tr>
1166fb726d48Sopenharmony_ci        <tr>
1167fb726d48Sopenharmony_ci          <td></td>
1168fb726d48Sopenharmony_ci          <td></td>
1169fb726d48Sopenharmony_ci        </tr>
1170fb726d48Sopenharmony_ci        <tr>
1171fb726d48Sopenharmony_ci          <td>@(_ table) - (libark _)</td>
1172fb726d48Sopenharmony_ci          <td>只显示 Responsible Caller 包含 table 且 Responsible Library 不为 libark 的数据</td>
1173fb726d48Sopenharmony_ci        </tr>
1174fb726d48Sopenharmony_ci        </tbody>
1175fb726d48Sopenharmony_ci      </table>
1176fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-11">Native Memory 数据统计功能</h3>
1177fb726d48Sopenharmony_ci
1178fb726d48Sopenharmony_ci      <p class="fontColor">选择 Use Record Statistics 和 statistics interval 配置项抓取的数据,只会显示
1179fb726d48Sopenharmony_ci        Call Info 的 Tab 页,Call Info 相关功能同上。<br>
1180fb726d48Sopenharmony_ci        <img
1181fb726d48Sopenharmony_ci          src="../figures/NativeMemory/statiscsCallInfo.jpg"
1182fb726d48Sopenharmony_ci          alt="GitHub Logo">
1183fb726d48Sopenharmony_ci      </p>
1184fb726d48Sopenharmony_ci      <h3 class="mume-header fontColor" id="header-index-12">Native Memory 多进程数据显示</h3>
1185fb726d48Sopenharmony_ci
1186fb726d48Sopenharmony_ci      <p class="fontColor">前端可以支持多进程数据的展示,通过在 tab 页切换不同进程,可以显示不同进程的
1187fb726d48Sopenharmony_ci        hook 数据。<br>
1188fb726d48Sopenharmony_ci        <img
1189fb726d48Sopenharmony_ci          src="../figures/NativeMemory/hook_moreprocess.jpg"
1190fb726d48Sopenharmony_ci          alt="GitHub Logo">
1191fb726d48Sopenharmony_ci      </p>
1192fb726d48Sopenharmony_ci    </div>
1193fb726d48Sopenharmony_ci
1194fb726d48Sopenharmony_ci    <script>
1195fb726d48Sopenharmony_ci      window.onload = () => {
1196fb726d48Sopenharmony_ci        let isDark = getURLParameter('dark'); 
1197fb726d48Sopenharmony_ci        let targetId = getURLParameter('targetId'); 
1198fb726d48Sopenharmony_ci        let isBack = getURLParameter('isBack'); 
1199fb726d48Sopenharmony_ci        if (isDark === 'true') {
1200fb726d48Sopenharmony_ci          document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
1201fb726d48Sopenharmony_ci          let header = document.getElementsByClassName('fontColor');
1202fb726d48Sopenharmony_ci          for (let i = 0; i < header.length; i++) {
1203fb726d48Sopenharmony_ci            header[i].style.color = '#fff';
1204fb726d48Sopenharmony_ci          }
1205fb726d48Sopenharmony_ci          let lightBackGround = document.getElementsByClassName('light');
1206fb726d48Sopenharmony_ci          for (let i = 0; i < lightBackGround.length; i++) {
1207fb726d48Sopenharmony_ci            lightBackGround[i].style.backgroundColor = '#32373F';
1208fb726d48Sopenharmony_ci          }
1209fb726d48Sopenharmony_ci        }
1210fb726d48Sopenharmony_ci        function getURLParameter(name) {  
1211fb726d48Sopenharmony_ci          return (new URL(document.location)).searchParams.get(name);  
1212fb726d48Sopenharmony_ci        }  
1213fb726d48Sopenharmony_ci  
1214fb726d48Sopenharmony_ci        if ( targetId !== null ) {
1215fb726d48Sopenharmony_ci          let targetElement = document.getElementById(targetId);
1216fb726d48Sopenharmony_ci          targetElement.scrollIntoView({ behavior: 'smooth' });
1217fb726d48Sopenharmony_ci        }
1218fb726d48Sopenharmony_ci      };
1219fb726d48Sopenharmony_ci    </script>
1220fb726d48Sopenharmony_ci  </body>
1221fb726d48Sopenharmony_ci</html>
1222