• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<html>
3<head>
4    <title>Native Memory抓取和展示说明</title>
5    <meta charset="utf-8">
6    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
8    <link rel="stylesheet"
9          href="file:///c:\Users\Administrator\.vsdataDiv\extensions\shd101wyy.preview-div-enhanced-0.6.3\node_modules\@shd101wyy\mume\dependencies\katex\katex.min.css">
10
11    <style>
12        dataDiv[class*="keyword-"],
13        pre[class*="keyword-"] {
14            color: #333333;
15            background: none;
16            font-family: Helvetica;
17            line-height: 1.6;
18            text-align: left;
19            white-space: pre;
20            -moz-tab-size: 9;
21            -o-tab-size: 9;
22            tab-size: 8;
23        }
24
25        pre[class*="keyword-"] {
26            border-radius: 4px;
27            background: #f5f5f4;
28            padding: .9em;
29            overflow: auto;
30        }
31
32        :not(pre) > dataDiv[class*="keyword-"] {
33            white-space: normal;
34            background: #f5f5f1;
35            padding: .2em;
36            border-radius: .2em;
37        }
38
39        .temp.cdata {
40            color: #193a90;
41        }
42
43        .temp.comment,
44        .temp.blockDiv {
45            color: #969897;
46        }
47
48        .temp.doctype,
49        .temp.punctuation,
50        .temp.variable,
51        .temp.macro.property {
52            color: #333333;
53        }
54
55
56        .temp.string,
57        .temp.url,
58        .temp.regex,
59        .temp.attr-value {
60            color: #183690;
61        }
62
63        .temp.operator,
64        .temp.important,
65        .temp.keyword,
66        .temp.rule,
67        .temp.builtin {
68            color: #a71d5c;
69        }
70
71        .temp.atrule,
72        .temp.constant,
73        .temp.symbol,
74        .temp.command,
75        .temp.property,
76        .temp.number,
77        .temp.boolean,
78        .temp.entity,
79        .temp.dataDiv {
80            color: #0086b2;
81        }
82
83        .temp.tag,
84        .temp.selector,
85        .temp.prolog {
86            color: #63a35e;
87        }
88
89        .temp.entity {
90            cursor: help;
91        }
92
93        .temp.title,
94        .temp.title .temp.punctuation {
95            font-weight: bold;
96            color: #1d3e89;
97        }
98
99        .temp.list {
100            color: #ed6a48;
101        }
102
103
104        .temp.function,
105        .temp.namespace,
106        .temp.pseudo-element,
107        .temp.class,
108        .temp.class-name,
109        .temp.pseudo-class,
110        .temp.id,
111        .temp.url-reference .temp.variable,
112        .temp.attr-name {
113            color: #795da2;
114        }
115
116        .temp.inserted {
117            color: #55a535;
118            background-color: #eaffee;
119        }
120
121        .temp.bold {
122            font-weight: bold;
123        }
124
125        .temp.deleted {
126            color: #bd2c08;
127            background-color: #ffecea;
128        }
129
130        .font-json .temp.property {
131            color: #183690;
132        }
133
134        .temp.italic {
135            font-style: italic;
136        }
137
138        .font-markup .temp.tag .temp.punctuation {
139            color: #333333;
140        }
141
142        .font-yaml .temp.atrule {
143            color: #63a35a;
144        }
145
146        dataDiv.font-css,
147        .font-css .temp.function {
148            color: #0086b8;
149        }
150
151        dataDiv.font-yaml {
152            color: #183690;
153        }
154
155        .font-ruby .temp.function {
156            color: #333333;
157        }
158
159        .font-markdown .temp.url {
160            color: #795da2;
161        }
162
163        .font-makefile .temp.variable {
164            color: #163a90;
165        }
166
167        .font-makefile .temp.builtin {
168            color: #0488b3;
169        }
170
171        .font-makefile .temp.symbol {
172            color: #795da2;
173        }
174
175        .font-bash .temp.keyword {
176            color: #0086b3;
177        }
178
179        pre[dll] {
180            position: relative;
181            padding: 0.9em 2px 1.1em 3.1em;
182        }
183
184        pre[dll] .line-dataType {
185            position: absolute;
186            pointer-events: none;
187            line-height: inherit;
188            white-space: pre;
189            left: 1px;
190            right: 1px;
191            margin-top: 1.1em;
192            background: hsla(25, 21%, 51%, 0.0);
193            background: linear-gradient(to right, hsla(25, 21%, 51%, .2) 70%, hsla(25, 21%, 51%, 1));
194        }
195
196        pre[dll] .line-dataType-wrapper {
197            position: absolute;
198            top: 1px;
199            left: 1px;
200            background-color: transparent;
201            display: block;
202            width: 99%;
203        }
204
205
206        pre[dll] .line-dataType:before,
207        pre[dll] .line-dataType[dllend]:after {
208            color: hsl(157, 21%, 96%);
209            text-align: center;
210            vertical-align: .4em;
211            border-radius: 999px;
212            text-shadow: none;
213            box-shadow: 2px 2px #f9fcfc;
214            content: attr(data-start);
215            position: absolute;
216            top: .5em;
217            left: .7em;
218            min-width: 1.1em;
219            padding: 2px .5em;
220            background-color: hsla(25, 21%, 51%, .5);
221        }
222
223        pre[dll] .line-dataType[dllend]:after {
224            content: attr(dllend);
225            top: 0px;
226            bottom: .6em;
227        }
228
229        body {
230            font-family: auto;
231            font-size: 16px;
232            line-height: 1.5;
233            color: #333;
234            background-color: #FFFFFF;
235            overflow: initial;
236            box-sizing: border-box;
237            word-wrap: break-word
238        }
239
240        body h1, body h2, body h3, body h4, body h5, body h6 {
241            line-height: 1.32;
242            margin-top: 1.1em;
243            margin-bottom: 17px;
244            color: #000
245        }
246
247        body > :first-child {
248            margin-top: 0.1px
249        }
250
251        body h1 {
252            font-size: 2.24em;
253            font-weight: 302;
254            padding-bottom: 0.31em
255        }
256
257        body h2 {
258            font-size: 1.71em;
259            font-weight: 402;
260            padding-bottom: 0.32em
261        }
262
263        body h3 {
264            font-size: 1.5em;
265            font-weight: 500
266        }
267
268        body h4 {
269            font-size: 1.22em;
270            font-weight: 602
271        }
272
273        body h5 {
274            font-size: 1.12em;
275            font-weight: 602
276        }
277
278        body h6 {
279            font-size: 1.2em;
280            font-weight: 602
281        }
282
283        body h1, body h2, body h3, body h4, body h5 {
284            font-weight: 602
285        }
286
287        body h5 {
288            font-size: 1.1em
289        }
290
291        body table {
292            display: inherit;
293            overflow: auto;
294            border-collapse: inherit;
295            margin: 14px 0.1px 21px 0.1px;
296            border-spacing: 0.1px;
297            width: 98%;
298        }
299
300        body h6 {
301            color: #595c5a
302        }
303
304        body strong {
305            color: #090909
306        }
307
308        body del {
309            color: #707070
310        }
311
312        body img {
313            max-width: 100%
314        }
315
316        body > p {
317            margin-top: 0.1px;
318            margin-bottom: 17px;
319            word-wrap: break-word
320        }
321
322        body > ul, body > ol {
323            margin-bottom: 17px
324        }
325
326        body ul, body ol {
327            padding-left: 2.1em
328        }
329
330        body ul.list-div, body ol.list-div {
331            padding: 0.1px;
332            list-style-type: none
333        }
334
335        body ul ul, body ul ol, body ol ol, body ol ul {
336            margin-top: 0.1px;
337            margin-bottom: 0.1px
338        }
339
340        body li {
341            margin-bottom: 0.1px
342        }
343
344        body li.task-div {
345            list-style: none
346        }
347
348        body li > p {
349            margin-top: 0.1px;
350            margin-bottom: 0.1px
351        }
352
353        body .checkbox-div {
354            margin: 1px 0.2em 0.24em -1.7em;
355            vertical-align: middle
356        }
357
358        body .checkbox-div:hover {
359            cursor: pointer
360        }
361
362        body blockDiv {
363            margin: 17px 0.1px;
364            font-size: inherit;
365            padding: 1.1px 14px;
366            color: #5c5c5c;
367            background-color: #f0f0f0;
368            border-left: 4.1px solid #d6d6d6
369        }
370
371        body blockDiv > :first-child {
372            margin-top: 0.1px
373        }
374
375        body blockDiv > :last-child {
376            margin-bottom: 0.1px
377        }
378
379        body hr {
380            height: 4.1px;
381            margin: 32px 0;
382            background-color: #d6d6d6;
383            border: 1.1px none
384        }
385
386        body table td {
387            font-weight: inherit;
388            color: #090808
389        }
390
391        body table th {
392            padding: 7.2px 12.2px;
393            border: 1.1px solid #ced6d5;
394        }
395        body dl {
396            padding: 0
397        }
398
399        body dl dt {
400            padding: 0.1px;
401            margin-top: 17px;
402            font-size: 1.2em;
403            font-style: italic;
404            font-weight: bold
405        }
406
407        body dl dd {
408            padding: 1.1px 17px;
409            margin-bottom: 17px
410        }
411
412        body dataDiv {
413            font-family: auto;
414            font-size: 0.84em;
415            color: #000;
416            background-color: #f0f0f0;
417            border-radius: 3.1px;
418            padding: 0.22em 0.1px
419        }
420
421        body dataDiv::after {
422            letter-spacing: -0.21em;
423        }
424
425        body dataDiv::before{
426            letter-spacing: -0.21em;
427        }
428
429        body pre > dataDiv {
430            padding: 0.1px;
431            margin: 0.1px;
432            font-size: 0.84em;
433            word-break: normal;
434            white-space: pre;
435            background: transparent;
436            border: 0.1px
437        }
438
439        body .dataType {
440            margin-bottom: 17px
441        }
442
443        body .dataType pre, body pre {
444            padding: 1em;
445            overflow: auto;
446            font-size: .85em !important;
447            line-height: 1.45;
448            border: #d6d6d6;
449            border-radius: 3px
450        }
451
452        body .dataType pre {
453            margin-bottom: 0;
454            word-break: normal
455        }
456
457        body pre dataDiv, body pre tt {
458            display: inline;
459            max-width: initial;
460            padding: 0.1px;
461            margin: 0.1px;
462            overflow: initial;
463            line-height: inherit;
464            word-wrap: normal;
465            background-color: transparent;
466            border: 0.1px;
467        }
468
469        body pre dataDiv:before, body pre tt:before, body pre dataDiv:after, body pre tt:after {
470            content: normal
471        }
472
473        body p, body blockDiv, body ul, body ol, body dl, body pre {
474            margin-top: 0.1px;
475            margin-bottom: 17px
476        }
477
478        body kbd {
479            color: #070707;
480            border: 1.1px solid #d6d6d6;
481            border-bottom: 2.1px solid #c7c7c7;
482            padding: 2.1px 4.1px;
483            background-color: #f0f0f0;
484            border-radius: 3.1px
485        }
486
487        @media print {
488            body {
489                background-color: #fff
490            }
491
492            body h1, body h2, body h3, body h4, body h5, body h6 {
493                color: #050505;
494                page-break-after: avoid
495            }
496
497            body blockDiv {
498                color: #5c5c5c
499            }
500
501            body pre {
502                page-break-inside: avoid
503            }
504
505            body table {
506                display: table
507            }
508
509            body img {
510                display: block;
511                max-width: 98%;
512                max-height: 98%
513            }
514
515            body pre, body dataDiv {
516                word-wrap: break-word;
517                white-space: pre
518            }
519        }
520
521        .scrollbarDiv::-webkit-scrollbar {
522            width: 8px
523        }
524
525        .scrollbarDiv::-webkit-scrollbar-track {
526            border-radius: 10px;
527            background-color: transparent
528        }
529
530        .scrollbarDiv::-webkit-scrollbar-thumb {
531            border-radius: 5px;
532            background-color: rgba(150, 150, 150, 0.66);
533            border: 4px solid rgba(150, 150, 150, 0.66);
534            background-clip: content-box
535        }
536
537        body[for="nativeDiv"]:not([data-mode]) {
538            position: relative;
539            width: 100%;
540            height: 100%;
541            top: 0;
542            left: 0;
543            margin: 0;
544            padding: 0;
545            overflow: auto
546        }
547
548        body[for="nativeDiv"]:not([data-mode]) .preview-div {
549            position: relative;
550            top: 0
551        }
552
553        @media screen and (min-width: 914px) {
554            body[for="nativeDiv"]:not([data-mode]) .preview-div {
555                padding: 2em calc(50% - 457px + 2em)
556            }
557        }
558
559        @media screen and (max-width: 914px) {
560            body[for="nativeDiv"]:not([data-mode]) .preview-div {
561                padding: 2em
562            }
563        }
564
565        @media screen and (max-width: 450px) {
566            body[for="nativeDiv"]:not([data-mode]) .preview-div {
567                font-size: 14px !important;
568                padding: 1em
569            }
570        }
571
572        @media print {
573            body[for="nativeDiv"]:not([data-mode]) #sidebar-toc-btn {
574                display: none
575            }
576        }
577
578        body[for="nativeDiv"]:not([data-mode]) #sidebar-toc-btn {
579            position: fixed;
580            bottom: 7px;
581            left: 7px;
582            font-size: 27px;
583            cursor: pointer;
584            color: inherit;
585            z-index: 98;
586            width: 31px;
587            text-align: center;
588            opacity: 0.42
589        }
590
591        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] #sidebar-toc-btn {
592            opacity: 1
593        }
594
595        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div {
596            position: fixed;
597            top: 0.1px;
598            left: 0.1px;
599            width: 302px;
600            height: 98%;
601            padding: 33px 1.1px 47px 0;
602            font-size: 13px;
603            box-shadow: 1.2px 0 4.1px rgba(150, 150, 150, 0.34);
604            box-sizing: border-box;
605            overflow: auto;
606            background-color: inherit
607        }
608
609        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div::-webkit-scrollbar {
610            width: 8px
611        }
612
613        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div::-webkit-scrollbar-track {
614            border-radius: 10px;
615            background-color: transparent
616        }
617
618        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div::-webkit-scrollbar-thumb {
619            border-radius: 5.2px;
620            background-color: rgba(150, 150, 150, 0.65);
621            border: 4.1px solid rgba(150, 150, 150, 0.65);
622            background-clip: content-box
623        }
624
625        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div a {
626            text-decoration: none
627        }
628
629        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div ul {
630            padding: 1px 1.6em;
631            margin-top: .8em
632        }
633
634        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div li {
635            margin-bottom: .8em
636        }
637
638        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .sidebar-div ul {
639            list-style-type: none
640        }
641
642        body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .preview-div {
643            left: 302px;
644            width: calc(100% - 302px);
645            margin: 0.1px;
646            padding: 2.1em calc(50% - 457px - 152px);
647            box-sizing: border-box
648        }
649
650        @media screen and (max-width: 1272px) {
651            body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .preview-div {
652                padding: 2.1em
653            }
654        }
655
656        @media screen and (max-width: 452px) {
657            body[for="nativeDiv"]:not([data-mode])[sidebar-toc-div] .preview-div {
658                width: 98%
659            }
660        }
661
662        body[for="nativeDiv"]:not([data-mode]):not([sidebar-toc-div]) .preview-div {
663            left: 51%;
664            transform: translateX(-50%)
665        }
666
667        body[for="nativeDiv"]:not([data-mode]):not([sidebar-toc-div]) .sidebar-div {
668            display: none
669        }
670    </style>
671</head>
672<body for="nativeDiv" id="body">
673<div class="mume preview-div  ">
674    <h1 class="mume-header fontColor">Native Memory抓取和展示说明</h1>
675    <p class="fontColor">Native Memory是查看内存的分配和释放等情况</p>
676    <h2 class="mume-header fontColor">1.Native Memory的抓取</h2>
677    <h3 class="mume-header fontColor">1.1.Native Memory抓取配置参数</h3>
678    <img src="../figures/nativememorysetting.jpg" alt="GitHub Logo"></p>
679    <p class="fontColor">配置参数说明:</p>
680    <ul class="fontColor">
681        <li>ProcessId or ProcessName:设置抓取的进程ID或者进程名,此处以输入com.ohos.mms进程名为例</li>
682        <li>Max unwind level:抓取的栈的深度</li>
683        <li>Shared Memory Size:native_daemon和native_hook进程之间存储数据的共享内存大小</li>
684        <li>Filter Memory Size:只抓取大于该size的malloc数据(free不受影响)</li>
685    </ul>
686    <p class="fontColor">再点击Record setting,在output file path输入文件名hiprofiler_data_nativememory.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s<br>
687        <img src="../figures/nativememoryset.jpg" alt="GitHub Logo"></p>
688    <p class="fontColor">点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制<br>
689        <img src="../figures/nativememorycommand.jpg" alt="GitHub Logo"></p>
690    <p class="fontColor">输入hdc_shell,进入设备,执行命令<br>
691        <img src="../figures/nativeexcutecommand.jpg" alt="GitHub Logo"></p>
692    <p class="fontColor">执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件<br>
693        <img src="../figures/naitvememoryfile.jpg" alt="GitHub Logo"></p>
694    <h2 class="mume-header fontColor">2.Native Memory展示说明</h2>
695    <p class="fontColor">将抓取的nativememory文件导入到smartperf工具中查看,查看内存的分配和释放等情况<br>
696    <h3 class="mume-header fontColor">2.1.Native Memory泳道图展示类型</h3>
697
698    <p class="fontColor">点击齿轮状的图标可以设置内存的展示单位<br>
699        <img src="../figures/NativeChart.jpg" alt="GitHub Logo"></p>
700    <ul class="fontColor">
701        <li>
702<pre class="keyword-text light fontColor">Current Bytes:显示字节数量
703</pre>
704        </li>
705        <li>
706<pre class="keyword-text light fontColor">Native Memory Density:Allocation数量
707</pre>
708        </li>
709        <li>
710<pre class="keyword-text light fontColor">All Heap&AnonuymousVM:Heap和AnonuymousVM的总量
711</pre>
712        </li>
713        <li>
714<pre class="keyword-text light fontColor">All Heap:malloc分配的内存
715</pre>
716        </li>
717        <li>
718<pre class="keyword-text light fontColor">All Anonymous VM:mmap的匿名页
719</pre>
720        </li>
721    </ul>
722    <h3 class="mume-header fontColor">2.2.Native Memory泳道图的框选功能</h3>
723
724    <p class="fontColor">可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有四个tab页<br>
725        Statistics的Tab页,主要显示了统计明细类型<br>
726        <img src="../figures/Statistics.jpg" alt="GitHub Logo"></p>
727    <ul class="fontColor">
728        <li>
729<pre class="keyword-text light fontColor">Memory Type:内存的类型
730</pre>
731        </li>
732        <li>
733<pre class="keyword-text light fontColor">Exsiting :框选区域内剩余的内存次数
734</pre>
735        </li>
736        <li>
737<pre class="keyword-text fontColor light">#Exsiting :框选区域内剩余的内存次数
738</pre>
739        </li>
740        <li>
741<pre class="keyword-text fontColor light">Transient :框选区域内释放的内存大小
742</pre>
743        </li>
744        <li>
745<pre class="keyword-text fontColor light">#Transient:框选区域内释放的内存次数
746</pre>
747        </li>
748        <li>
749<pre class="keyword-text fontColor light">Total Bytes:框选区间内申请的大小
750</pre>
751        </li>
752        <li>
753<pre class="keyword-text light fontColor">#Total: 框选区间内申请的内存次数
754</pre>
755        </li>
756        <li>
757<pre class="keyword-text light fontColor">Peak Value: 框选区间内内存大小的峰值
758</pre>
759        </li>
760        <li>
761<pre class="keyword-text light fontColor">Exsiting/Total:框选区间内申请的大小比上申请和释放的大小,其中浅紫色是框选区间内申请的大小/整个时间轴(申请+释放的总大小),深紫色是框选区间内(申请+释放)的大小/整个时间轴(申请+释放的总大小)
762</pre>
763        </li>
764    </ul>
765    <p class="fontColor">Call Info的Tab页,主要显示了调用树详细类型<br>
766        <img src="../figures/Callinfo.jpg" alt="GitHub Logo"></p>
767    <ul class="fontColor">
768        <li>
769<pre class="keyword-text fontColor light">Symble Name:每个内存分配的调用栈
770</pre>
771        </li>
772        <li>
773<pre class="keyword-text fontColor light">Size :分配的总大小
774</pre>
775        </li>
776        <li>
777<pre class="keyword-text fontColor light">Count :调用栈出现的次数
778</pre>
779        </li>
780    </ul>
781    <p class="fontColor">Native Memory的Tab页,主要显示了单次分配信息列表<br>
782        <img src="../figures/NativeMemory.jpg" alt="GitHub Logo"></p>
783    <ul class="fontColor">
784        <li>
785<pre class="keyword-text fontColor light">Address:内存块的地址
786</pre>
787        </li>
788        <li>
789<pre class="keyword-text fontColor light">Memory Type :内存分配的类型
790</pre>
791        </li>
792        <li>
793<pre class="keyword-text fontColor light">Timestamp :时间戳信息
794</pre>
795        </li>
796        <li>
797<pre class="keyword-text fontColor light">State :内存地址当前状态
798</pre>
799        </li>
800        <li>
801<pre class="keyword-text fontColor light">Size :该时间点内存的大小
802</pre>
803        </li>
804        <li>
805<pre class="keyword-text fontColor light">Responsible Library :调用该函数的库
806</pre>
807        </li>
808        <li>
809<pre class="keyword-text fontColor light">Responsible Caller  :调用该函数的方法
810</pre>
811        </li>
812    </ul>
813    <p class="fontColor">Snapshot List的Tab页,主要显示了各时刻内存的增长的差值<br>
814        <img src="../figures/Snapshotlist.jpg" alt="GitHub Logo"></p>
815    <ul>
816        <li>
817<pre class="keyword-text light fontColor">Snapshot:标记的打点说明
818</pre>
819        </li>
820        <li>
821<pre class="keyword-text light fontColor">Timestamp :时间戳信息
822</pre>
823        </li>
824        <li>
825<pre class="keyword-text light fontColor">Net Growth :自从上次Snapshot的增长量,是计算的分配和释放的
826</pre>
827        </li>
828        <li>
829<pre class="keyword-text light fontColor">Total Growth :自从上次Snapshot的增长量,是计算的每一次分配的
830</pre>
831        </li>
832        <li>
833<pre class="keyword-text light fontColor">#Exsiting  :仍然存在的内存数
834</pre>
835        </li>
836    </ul>
837    <h3 class="mume-header fontColor">2.3.Native Memory的辅助信息功能</h3>
838
839    <p class="fontColor">在Call Info和Native Memory的Tab页,点击选中某一行,右边画红线处会显示出该行调用栈的树结构信息<br>
840        <img src="../figures/nativecallstack.jpg" alt="GitHub Logo"></p>
841    <h3 class="mume-header fontColor">2.4.Native Memory详细显示的过滤功能</h3>
842
843    <p class="fontColor">点击下方的All Allocations可以对Allocation的lifeSpan进行过滤,有三个选择:All Allocatios,Create & Exsiting,Create &
844        Destroyed<br>
845        <img src="../figures/lifespan.jpg" alt="GitHub Logo"></p>
846    <ul class="fontColor">
847        <li>
848<pre class="keyword-text fontColor light"> All Allocations:所有的内存
849</pre>
850        </li>
851        <li>
852<pre class="keyword-text fontColor light"> Created & Exsiting:创建且被存活的内存
853</pre>
854        </li>
855        <li>
856<pre class="keyword-text fontColor light">  Created & Destroyed: 创建且被销毁的内存
857</pre>
858        </li>
859    </ul>
860    <p class="fontColor">点击下方的All Heap&Anonymous可以对内存类型进行过滤<br>
861        <img src="../figures/AllocationType.jpg" alt="GitHub Logo"></p>
862    <ul class="fontColor">
863        <li>
864<pre class="keyword-text fontColor light">All Heap&AnonuymousVM:Heap和AnonuymousVM的总量
865</pre>
866        </li>
867        <li>
868<pre class="keyword-text fontColor light">All Heap:malloc分配的内存
869</pre>
870        </li>
871        <li>
872<pre class="keyword-text fontColor light">All Anonymous VM:mmap的匿名页
873</pre>
874        </li>
875    </ul>
876    <p class="fontColor">点击下方的Mark Snapshot可以在时间轴上打标签。出现小旗的标志,通过标注多个时间点。点击到Snapshot List标签页可以看到各个时间点的内存的增长值<br>
877        <img src="../figures/Generation.jpg" alt="GitHub Logo"></p>
878    <h3 class="mume-header fontColor">2.5.Native Memory的火焰图功能</h3>
879    <p class="fontColor">点击callinfo左下角的柱状图的图标,会切换到火焰图页面<br>
880        <img src="../figures/nativeflame.jpg" alt="GitHub Logo"></p>
881    <p class="fontColor">进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和size大小<br>
882        <img src="../figures/nativeflameshow.jpg" alt="GitHub Logo"></p>
883    <p class="fontColor">鼠标左键火焰图,会进入下一级界面,右键回到上一级<br>
884        <img src="../figures/nativeflamelevel2.jpg" alt="GitHub Logo"></p>
885
886</div>
887<script type="text/javascript">
888    window.onload = (() => {
889        let isDark = window.location.search;
890        if (isDark.indexOf("?") != -1) {
891            isDark = isDark.substr(1, isDark.length - 1);
892        }
893        if (isDark == 'true') {
894            document.getElementById("body").setAttribute('style', 'background-color:#272C34;')
895            let header = document.getElementsByClassName('fontColor')
896            for (let i = 0; i < header.length; i++) {
897                header[i].style.color = '#fff';
898            }
899            let lightBackGround = document.getElementsByClassName('light')
900            for (let i = 0; i < lightBackGround.length; i++) {
901                lightBackGround[i].style.backgroundColor = '#32373F'
902            }
903        }
904    })
905</script>
906</body>
907</html>