• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<html>
3<head>
4    <title>网页加载trace说明</title>
5    <meta charset="utf-8">
6    <meta content="width=device-width, initial-scale=1.0" name="viewport">
7
8    <style>
9        code[class*="font-"],
10        pre[class*="font-"] {
11            text-align: left;
12            color: #333333;
13            background: none;
14            word-spacing: normal;
15            white-space: pre;
16            word-break: normal;
17            word-wrap: normal;
18            line-height: 1.5;
19            -moz-hyphens: none;
20            -ms-hyphens: none;
21            -o-tab-size: 8;
22            tab-size: 8;
23            -moz-tab-size: 8;
24            -webkit-hyphens: none;
25            hyphens: none;
26            font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
27        }
28
29        pre[class*="font-"] {
30            border-radius: 3px;
31            background: #F5F5F5;
32            padding: 0.8em;
33            overflow: auto;
34        }
35
36        :not(pre) > code[class*="font-"] {
37            white-space: normal;
38            background: #F5F5F5;
39            padding: 0.2em;
40            border-radius: 0.3em;
41        }
42
43        .temporary.cdata {
44            color: #183690;
45        }
46
47        .temporary.comment,
48        .temporary.blockquote {
49            color: #969897;
50        }
51
52        .temporary.doctype,
53        .temporary.punctuation,
54        .temporary.variable,
55        .temporary.macro.property {
56            color: #333333;
57        }
58
59        .temporary.string,
60        .temporary.url,
61        .temporary.regex,
62        .temporary.attr-value {
63            color: #183690;
64        }
65
66        .temporary.operator,
67        .temporary.important,
68        .temporary.keyword,
69        .temporary.rule,
70        .temporary.builtin {
71            color: #a71d5c;
72        }
73
74        .temporary.atrule,
75        .temporary.constant,
76        .temporary.symbol,
77        .temporary.command,
78        .temporary.property,
79        .temporary.number,
80        .temporary.boolean,
81        .temporary.entity,
82        .temporary.code {
83            color: #0086b2;
84        }
85
86        .temporary.tag,
87        .temporary.selector,
88        .temporary.prolog {
89            color: #63a35e;
90        }
91
92        .temporary.entity {
93            cursor: help;
94        }
95
96        .temporary.title,
97        .temporary.title .temporary.punctuation {
98            font-weight: bold;
99            color: #1d3e89;
100        }
101
102        .temporary.list {
103            color: #ed6a48;
104        }
105
106        .temporary.function,
107        .temporary.namespace,
108        .temporary.pseudo-element,
109        .temporary.class,
110        .temporary.class-name,
111        .temporary.pseudo-class,
112        .temporary.id,
113        .temporary.url-reference .temporary.variable,
114        .temporary.attr-name {
115            color: #795da2;
116        }
117
118        .temporary.inserted {
119            color: #55a535;
120            background-color: #eaffee;
121        }
122
123        .temporary.bold {
124            font-weight: bold;
125        }
126
127        .temporary.deleted {
128            color: #bd2c08;
129            background-color: #ffecea;
130        }
131
132        .font-json .temporary.property {
133            color: #183690;
134        }
135
136        .temporary.italic {
137            font-style: italic;
138        }
139
140        .font-markup .temporary.tag .temporary.punctuation {
141            color: #333333;
142        }
143
144        .font-yaml .temporary.atrule {
145            color: #63a35a;
146        }
147
148        code.font-css,
149        .font-css .temporary.function {
150            color: #0086b8;
151        }
152
153        code.font-yaml {
154            color: #183690;
155        }
156
157        .font-ruby .temporary.function {
158            color: #333333;
159        }
160
161        .font-markdown .temporary.url {
162            color: #795da2;
163        }
164
165        .font-makefile .temporary.variable {
166            color: #183690;
167        }
168
169        .font-makefile .temporary.builtin {
170            color: #0086b3;
171        }
172
173        .font-makefile .temporary.symbol {
174            color: #795da2;
175        }
176
177        .font-bash .temporary.keyword {
178            color: #0086b3;
179        }
180
181        pre[data-wire] {
182            padding: 1em 0 1em 2em;
183            position: relative;
184        }
185
186        pre[data-wire] .line-highlight-wrapper {
187            background-color: transparent;
188            top: 2px;
189            left: 2px;
190            display: block;
191            width: 100%;
192            position: absolute;
193        }
194
195        pre[data-wire] .line-highlight {
196            position: absolute;
197            left: 2px;
198            right: 2px;
199            pointer-events: none;
200            margin-top: 3em;
201            background: hsla(25, 10%, 55%, .06);
202            background: linear-gradient(to right, hsla(25, 10%, 40%, .2) 80%, hsla(23, 24%, 52%, 0));
203            line-height: inherit;
204            white-space: pre;
205        }
206
207        pre[data-wire] .line-highlight:before,
208        pre[data-wire] .line-highlight[data-end]:after {
209            content: attr(data-start);
210            position: absolute;
211            background-color: hsla(22, 25%, 54%, .5);
212            min-width: 2em;
213            padding: 0 .6em 0 0;
214            top: 0.5em;
215            left: 0.4em;
216            color: hsl(22, 23%, 90%);
217            vertical-align: 0.3em;
218            border-radius: 10px;
219            text-shadow: none;
220            box-shadow: 0 2px white;
221            font: bold 60%/1.6 sans-serif;
222            text-align: center;
223        }
224
225        pre[data-wire] .line-highlight[data-end]:after {
226            bottom: 0.6em;
227            content: attr(data-end);
228            top: auto;
229        }
230
231        body > :first-child {
232            margin-top: 0px;
233        }
234
235        body {
236            font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
237            line-height: 1.6;
238            color: #333333;
239            background-color: #FFFFFF;
240            font-size: 16px;
241            overflow: initial;
242            word-wrap: break-word;
243            box-sizing: border-box;
244        }
245
246        body h1, body h2, body h3, body h4, body h5 {
247            line-height: 1.2;
248            margin-bottom: 16px;
249            margin-top: 1em;
250            color: #000000;
251        }
252
253        body h1 {
254            font-weight: 300;
255            font-size: 2.25em;
256            padding-bottom: 0.3em
257        }
258
259        body h2 {
260            font-weight: 400;
261            padding-bottom: 0.3em;
262            font-size: 1.75em;
263        }
264
265        body h3 {
266            font-weight: 500;
267            font-size: 1.5em;
268        }
269
270        body h4 {
271            font-weight: 600;
272            font-size: 1.25em;
273        }
274
275        body h5 {
276            font-weight: 600;
277            font-size: 1.1em;
278        }
279
280
281        body strong {
282            color: #000000;
283        }
284
285        body h1, body h2, body h3, body h4, body h5 {
286            font-weight: 600;
287        }
288
289        body a:not([href]) {
290            text-decoration: none;
291            color: inherit;
292        }
293
294        body a {
295            text-decoration: none;
296            color: #08c;
297        }
298
299        body a:hover {
300            color: #00a3f5;
301            text-decoration: none;
302        }
303
304        body > p {
305            margin-bottom: 16px;
306            margin-top: 0;
307            word-wrap: break-word;
308        }
309
310        body img {
311            max-width: 100%;
312        }
313
314        body > ul, body > ol {
315            margin-bottom: 16px;
316        }
317
318        body ul, body ol {
319            padding-left: 2em;
320        }
321
322        body ul ul, body ul ol, body ol ol, body ol ul {
323            margin-top: 0;
324            margin-bottom: 0;
325        }
326
327        body ul.no-list, body ol.no-list {
328            padding: 0;
329            list-style-type: none;
330        }
331
332        body li.task-list-item {
333            list-style: none;
334        }
335
336        body li {
337            margin-bottom: 0;
338        }
339
340        body .task-list-item-checkbox {
341            vertical-align: middle;
342            margin: 0 .2em .25em -1.8em;
343        }
344
345        body li > p {
346            margin-bottom: 0;
347            margin-top: 0;
348        }
349
350        body .task-list-item-checkbox:hover {
351            cursor: pointer;
352        }
353
354        body blockquote {
355            color: #5c5c5c;
356            margin: 16px 0 0 0;
357            font-size: inherit;
358            padding: 0 15px;
359            background-color: #f0f0f0;
360            border-left: 4px solid #d6d6d6;
361        }
362
363        body blockquote > :first-child {
364            margin-top: 0;
365        }
366
367        body blockquote > :last-child {
368            margin-bottom: 0;
369        }
370
371        body hr {
372            margin: 32px 0 0 0;
373            height: 4px;
374            border: 0 none;
375            background-color: #d6d6d6;
376        }
377
378        body table {
379            display: block;
380            width: 100%;
381            margin: 10px 0 15px 0;
382            border-collapse: collapse;
383            border-spacing: 0;
384            word-break: normal;
385            overflow: auto;
386            word-break: keep-all;
387        }
388
389        body table th {
390            font-weight: bold;
391            color: #000000;
392        }
393
394        body table td, body table th {
395            padding: 6px 13px 0 0;
396            border: 1px solid #d6d6d6;
397        }
398
399        body dl {
400            padding: 0;
401        }
402
403        body dl dd {
404            padding: 0 16px 0 0;
405            margin-bottom: 16px;
406        }
407
408        body dl dt {
409            margin-top: 16px;
410            font-size: 1em;
411            padding: 0;
412            font-style: italic;
413            font-weight: bold;
414        }
415
416        body code {
417            color: #000000;
418            font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
419            font-size: .85em !important;
420            background-color: #f0f0f0;
421            padding: 0.2em 0 0 0;
422            border-radius: 3px;
423        }
424
425        body code::before, body code::after {
426            content: "\00a0";
427            letter-spacing: -0.2em;
428        }
429
430        body pre > code {
431            font-size: 0.85em !important;
432            padding: 0;
433            margin: 0;
434            background: transparent;
435            word-break: normal;
436            white-space: pre;
437            border: 0;
438        }
439
440        body .highlight {
441            margin-bottom: 16px;
442        }
443
444        body .highlight pre, body pre {
445            border: #d6d6d6;
446            font-size: 0.85em !important;
447            line-height: 1.45;
448            border-radius: 3px;
449            padding: 1em;
450            overflow: auto;
451        }
452
453        body .highlight pre {
454            word-break: normal;
455            margin-bottom: 0;
456        }
457
458        body pre code, body pre tt {
459            background-color: transparent;
460            padding: 0;
461            margin: 0;
462            display: inline;
463            max-width: initial;
464            overflow: initial;
465            line-height: inherit;
466            word-wrap: normal;
467            border: 0;
468        }
469
470        body pre code:before, body pre tt:before, body pre code:after, body pre tt:after {
471            content: normal;
472        }
473
474        body p, body blockquote, body ul, body ol, body dl, body pre {
475            margin-top: 0;
476            margin-bottom: 16px;
477        }
478
479        body kbd {
480            border: 1px solid #d6d6d6;
481            border-bottom: 2px solid #c7c7c7;
482            padding: 2px 4px;
483            background-color: #f0f0f0;
484            border-radius: 3px;
485            color: #000000;
486        }
487
488        @media print {
489            body {
490                background-color: #FFFFFF;
491            }
492
493            body h1, body h2, body h3, body h4, body h5 {
494                page-break-after: avoid;
495                color: #000000;
496            }
497
498            body blockquote {
499                color: #5c5c5c;
500            }
501
502            body pre {
503                page-break-inside: avoid;
504            }
505
506            body table {
507                display: table;
508            }
509
510            body img {
511                display: block;
512                max-width: 100%;
513                max-height: 100%;
514            }
515
516            body pre, body code {
517                white-space: pre;
518                word-wrap: break-word;
519            }
520        }
521
522        .md-preview {
523            width: 100%;
524            height: 100%;
525            box-sizing: border-box;
526        }
527
528        .md-preview, .md-preview {
529            page-break-before: always;
530        }
531
532        .md-preview pre.figure-numbers {
533            position: relative;
534            counter-reset: linenumber;
535            padding-left: 3.6em;
536        }
537
538        .md-preview pre.figure-numbers .figure-numbers-rows {
539            top: 1em;
540            font-size: 100%;
541            left: 0;
542            width: 3em;
543            position: absolute;
544            pointer-events: none;
545            letter-spacing: -1px;
546            border-right: 1px solid #999999;
547            -webkit-user-select: none;
548            user-select: none;
549            -moz-user-select: none;
550            -ms-user-select: none;
551        }
552
553        .md-preview pre.figure-numbers > code {
554            position: relative;
555        }
556
557        .md-preview pre.figure-numbers .figure-numbers-rows > span:before {
558            content: counter(linenumber);
559            color: #999999;
560            display: block;
561            text-align: right;
562            padding-right: 0.8em;
563        }
564
565        .md-preview pre.figure-numbers .figure-numbers-rows > span {
566            display: block;
567            pointer-events: none;
568            counter-increment: linenumber;
569        }
570
571        .md-preview:not([for="preview"]) .code-block .btn-group {
572            display: none;
573        }
574
575        .md-preview:not([for="preview"]) .code-block .status {
576            display: none;
577        }
578
579        .md-preview:not([for="preview"]) .code-block .output-div {
580            margin-bottom: 16px;
581        }
582
583        .scrollbar-type::-webkit-scrollbar {
584            width: 8px;
585        }
586
587        .scrollbar-type::-webkit-scrollbar-track {
588            background-color: transparent;
589            border-radius: 10px;
590        }
591
592        .scrollbar-type::-webkit-scrollbar-thumb {
593            border-radius: 5px;
594            border: 4px solid rgba(150, 150, 150, 0.65);
595            background-clip: content-box;
596            background-color: rgba(150, 150, 150, 0.65);
597        }
598
599        body[for="native-export"]:not([data-display-mode]) {
600            position: relative;
601            top: 0;
602            left: 0;
603            margin: 0;
604            padding: 0;
605            overflow: auto;
606            width: 100%;
607            height: 100%;
608        }
609
610        body[for="native-export"]:not([data-presentation-mode]) .md-preview {
611            position: relative;
612            top: 0;
613        }
614
615        @media screen and (min-width: 914px) {
616            body[for="native-export"]:not([data-presentation-mode]) .md-preview {
617                padding: 2em calc(50% - 457px + 2em);
618            }
619        }
620
621        @media screen and (max-width: 914px) {
622            body[for="native-export"]:not([data-presentation-mode]) .md-preview {
623                padding: 2em;
624            }
625        }
626
627        @media screen and (max-width: 450px) {
628            body[for="native-export"]:not([data-display-mode]) .md-preview {
629                font-size: 14px !important;
630                padding: 1em;
631            }
632        }
633
634        @media print {
635            body[for="native-export"]:not([data-presentation-mode]) #sidebarButton {
636                display: none;
637            }
638        }
639
640        body[for="native-export"]:not([data-presentation-mode]) #sidebarButton {
641            opacity: 0.5;
642            position: fixed;
643            bottom: 8px;
644            left: 8px;
645            z-index: 99;
646            width: 32px;
647            text-align: center;
648            font-size: 28px;
649            cursor: pointer;
650            color: inherit;
651        }
652
653        body[for="native-export"]:not([data-display-mode])[sidebarToc] #sidebarButton {
654            opacity: 1;
655        }
656
657        body[for="native-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc {
658            position: fixed;
659            top: 0;
660            left: 0;
661            padding: 32px 0 48px 0;
662            width: 300px;
663            height: 100%;
664            font-size: 14px;
665            box-shadow: 0 0 4px rgba(150, 150, 150, 0.33);
666            box-sizing: border-box;
667            overflow: auto;
668            background-color: inherit;
669        }
670
671        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc::-webkit-scrollbar {
672            width: 8px;
673        }
674
675        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc::-webkit-scrollbar-track {
676            background-color: transparent;
677            border-radius: 10px;
678        }
679
680        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc::-webkit-scrollbar-thumb {
681            background-color: rgba(150, 150, 150, 0.65);
682            border-radius: 5px;
683            border: 4px solid rgba(150, 150, 150, 0.65);
684            background-clip: content-box;
685        }
686
687        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc li {
688            margin-bottom: 0.8em;
689        }
690
691        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc ul {
692            list-style-type: none;
693        }
694
695        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc ul {
696            margin-top: 0.8em;
697            padding: 0 1.4em 0 0;
698        }
699
700        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-sidebar-toc a {
701            text-decoration: none;
702        }
703
704        body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-preview {
705            padding: 2em calc(50% - 457px - 150px);
706            margin: 0;
707            box-sizing: border-box;
708            left: 300px;
709            width: calc(100% - 300px);
710        }
711
712        @media screen and (max-width: 450px) {
713            body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-preview {
714                width: 100%;
715            }
716        }
717
718        @media screen and (max-width: 1274px) {
719            body[for="native-export"]:not([data-display-mode])[sidebarToc] .md-preview {
720                padding: 2em;
721            }
722        }
723
724        body[for="native-export"]:not([data-display-mode]):not([sidebarToc]) .md-preview {
725            transform: translateX(-50%);
726            left: 50%;
727        }
728
729        body[for="native-export"]:not([data-display-mode]):not([sidebarToc]) .md-sidebar-toc {
730            display: none;
731        }
732
733    </style>
734</head>
735<body for="native-export" id="body">
736<div class="mume md-preview  ">
737    <h1 class="mume-header fontColor">网页加载trace说明</h1>
738
739    <h2 class="mume-header fontColor">1.Web页面加载文件入口</h2>
740    <p class="fontColor">将抓取的trace导入查看</p>
741    <p><img alt="GitHub Logo" src="../figures/opentrace.jpg"></p>
742    <p class="fontColor">说明:</p>
743    <ul class="fontColor">
744        <li>Open trace file:导入离线trace文件入口</li>
745        <li>Record new trace:抓取新的trace文件入口</li>
746    </ul>
747    <h2 class="mume-header fontColor">2.导入文件后显示页面</h2>
748
749    <p class="fontColor"><img alt="GitHub Logo" src="../figures/trace.jpg"><br>
750        说明:</p>
751    <ul class="fontColor">
752        <li>操作说明:在当前页面可以通过键盘上的wasd四个键位操纵当前的时间轴进行缩放,w放大,s为缩小,a为左移,d为右移。</li>
753    </ul>
754    <h2 class="mume-header fontColor">trace功能介绍</h2>
755
756    <p class="fontColor">trace 模块从上往下主要展示时间轴和cpu使用率、cpu使用情况、进程间通讯数据的方法调用情况、进程、线程和方法调用情况</p>
757    <h3 class="mume-header fontColor">1. 时间轴和cpu使用率</h3>
758
759    <p class="fontColor"><img alt="GitHub Logo" src="../figures/time.jpg"><br>
760        最上方带刻度的为时间轴,主要展示当前抓取数据的总时长和时间刻度的分布情况,如上图所示,左下角展示总时长,<br>
761        中间区域展示的是抓取数据时间段内的cpu使用率,颜色越深代表cpu使用率越高,颜色越浅代表cpu使用率越低。<br>
762        <img alt="GitHub Logo" src="../figures/highlit.jpg"><br>
763        在白色背景时间轴区域内可以点击后拖拽鼠标,可以对从鼠标按下到拖拽完成鼠标松开的区域内的数据进行筛选,高亮显示的部分为当前所选区域,如上图所示
764    </p>
765    <h3 class="mume-header fontColor">2.cpu使用情况</h3>
766
767    <p><img alt="GitHub Logo" src="../figures/cpu.jpg"></p>
768    <p class="fontColor">如上图所示,当前抓取数据有4个cpu工作,前四组数据对应的是当前调用cpu的线程和对应的进程情况,以颜色作为区分。后四组数据则为cpu的使用频率信息。鼠标移动到相应的线程上还会将当前选中的进程信息全部置为高亮,其他的进程会置灰,如下图所示<br>
769        <img alt="GitHub Logo" src="../figures/gray.jpg"></p>
770    <h4 class="mume-header fontColor">2.1.cpu使用情况的框选功能</h4>
771
772    <p class="fontColor">可以对cpu的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有七个tab页<br>
773        CPU by thread的Tab页,主要显示了在框选时间区间内的进程名,进程号,线程名,线程号,总运行时长,平均运行时长和调度次数信息<br>
774        <img alt="GitHub Logo" src="../figures/cpubythread.jpg"><br>
775        CPU by process的Tab页,主要显示了在框选时间区间内的进程名,进程号,总运行时长,平均运行时长和调度次数信息<br>
776        <img alt="GitHub Logo" src="../figures/cpubyprocess.jpg"><br>
777        CPUUsage的Tab页,主要显示了在框选时间区间内,该频率时间占比前三的信息<br>
778        <img alt="GitHub Logo" src="../figures/cpusage.jpg"></p>
779        States List的Tab页,按状态>进程>线程的维度去统计,需要呈现该状态的下线程名,进入该状态次数、该状态下时长、最大最小时长,平均时长、最大时长<br>
780        <img alt="GitHub Logo" src="../figures/StatesList.jpg"></p>
781        Switches List的Tab页,按照进程>线程>状态、统计对应状态下的次数<br>
782        <img alt="GitHub Logo" src="../figures/Switchlist.jpg"></p>
783        Thread States的Tab页,按进程>线程>状态的维度去统计,需要呈现该状态的下线程名,进入该状态次数、该状态下时长、最小时长,平均时长、最大时长<br>
784        <img alt="GitHub Logo" src="../figures/threadstates.jpg"></p>
785        Thread Switches的Tab页,按照状态>进程>线程、统计对应状态下的次数<br>
786        <img alt="GitHub Logo" src="../figures/threadswitches.jpg"></p>
787        States List,Switches List,Thread States,Thread Switches的4个Tab页,点击移动到某一行,鼠标会变成一个小手的标志,点击一下,就会进入辅助信息界面,会将选中行的辅助信息展示出来,包括开始时间,进程,线程,线程状态,对应的CPU,优先级等信息如下图<br>
788        <img alt="GitHub Logo" src="../figures/details.jpg"></p>
789
790    <h4 class="mume-header fontColor">2.2.cpu使用情况的单选功能</h4>
791
792    <p class="fontColor">单选CPU使用情况数据,单击方法会在选中的方法外层加上深色边框,能够突出当前选中色块,弹出层中会展示当前CPU上的进程名,线程名,开始时间和运行时长,线程运行状态等信息<br>
793        <img alt="GitHub Logo" src="../figures/cpuclick.jpg"></p>
794    <h3 class="mume-header fontColor">3.FPS数据</h3>
795
796    <p class="fontColor">FPS是帧率的显示,每秒产生画面的个数<br>
797        <img alt="GitHub Logo" src="../figures/fps.jpg"></p>
798    <h4 class="mume-header fontColor">3.1FPS的框选功能</h4>
799
800    <p class="fontColor">可以对fps的数据进行框选,框选后在最下方的弹出层中会展示框选时间区间内的统计表格,主要显示了time(时间),FPS(帧率)<br>
801        <img alt="GitHub Logo" src="../figures/fpsselect.jpg"></p>
802    <h4 class="mume-header fontColor">3.2.FPS的鼠标悬浮功能</h4>
803    <p class="fontColor">鼠标移动到帧率的柱状图上,悬浮框会显示当前时间的FPS的值<br>
804        <img alt="GitHub Logo" src="../figures/fpstip.jpg"></p>
805    <h3 class="mume-header fontColor">4.进程,线程和方法数据</h3>
806
807    <p class="fontColor">下图是进程数据,左边部分展示进程名称和id<br>
808        <img alt="GitHub Logo" src="../figures/process.jpg"><br>
809        点击进程名前面向下箭头可以展开对应的线程进行查看,展开后的线程如下图,如果存在堆内存占用情况,就会显示在第一行,如果出现两个名字和id一样的线程,则第一个为线程的使用情况,第二为线程内的方法栈调用情况<br>
810        <img alt="GitHub Logo" src="../figures/threadinfo.jpg"></p>
811    <h4 class="mume-heade fontColor">
812        4.1进程,线程和方法数据的框选功能</h4>
813
814    <p class="fontColor">可以对线程的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,包含线程运行状态,线程调用栈的统计情况。当框选的数据中同时存在线程运行状态和线程调用栈数据,下方的弹出层中就会出现多个tab选项,可以进行切换</p>
815    <p class="fontColor">下图是线程运行状态框选统计信息,包括进程名,进程号,线程名,线程号,线程状态,状态持续时间,平均持续时间,该线程状态发生的次数<br>
816        <img alt="GitHub Logo" src="../figures/threadselect.jpg"></p>
817    <p class="fontColor">下图是线程调用栈框选统计信息,包括方法名,持续时间,平均持续时间,调用的次数<br>
818        <img alt="GitHub Logo" src="../figures/callstackselect.jpg"></p>
819    <h4 class="mume-header fontColor">
820        4.2进程,线程和方法数据的单选功能</h4>
821
822    <p class="fontColor">单选线程的state数据时,会展示当前选中线程的状态数据,开始时间和持续时长,线程状态,所在进程名称、<br>
823        <img alt="GitHub Logo" src="../figures/threadclick.jpg"><br>
824        单选调用栈数据,单击方法会在选中的方法外层加上黑色边框,能够突出当前选中的方法,弹出层中会展示当前方法的名称、开始时间和运行时长信息。<br>
825        <img alt="GitHub Logo" src="../figures/callstackclick.jpg"></p>
826
827    <h4 class="mume-header fontColor">
828        4.3.线程的跳转功能</h4>
829    <p class="fontColor">点击画红框处的带箭头的标志,会从CPU的线程概览视图跳转到线程的详情视图,同时从线程的详情视图也能跳转到CPU的线程概览视图<br>
830        <img alt="GitHub Logo" src="../figures/jumpthread.jpg"><br>
831    <h3 class="mume-header fontColor">5.trace的其他功能</h3>
832    <h4 class="mume-header fontColor">
833        5.1.小旗标志的功能</h4>
834    <p class="fontColor">将选中数据的时间点通过小旗的方式在时间轴上展示,直观的展示选中数据的时间<br>
835        <img alt="GitHub Logo" src="../figures/flag.jpg"><br>
836        在下方输入空输入文字:我是trace,可以给小旗打备注<br>
837        <img alt="GitHub Logo" src="../figures/flaginput.jpg"><br>
838    <h4 class="mume-header fontColor">
839        5.2.收藏置顶功能</h4>
840    <p class="fontColor">鼠标移动到某个页签,会出现星形的标志,点击该星形,可以将该行收藏置顶<br>
841        <img alt="GitHub Logo" src="../figures/stars.jpg"><br>
842    <h4 class="mume-header fontColor">
843        5.3.勾选功能</h4>
844    <p class="fontColor">框选某一区域,该区域左边会出现CheckBox的复选框。选中的区域的复选框会出现打勾的状态。可以取消勾选,也可以重新勾选<br>
845        <img alt="GitHub Logo" src="../figures/checkbox.jpg"><br>
846    <h4 class="mume-header fontColor">
847        5.4.搜索功能</h4>
848    <p class="fontColor">在搜索框中,可以输入线程,线程号等搜索自己想要的信息,搜索完成会高亮显示<br>
849        <img alt="GitHub Logo" src="../figures/search.jpg"><br>
850    <p class="fontColor">在搜索框中输入调用栈的方法名,会跳转到对应的调用栈<br>
851        <img alt="GitHub Logo" src="../figures/searchcallstack.jpg"><br>
852    <h4 class="mume-header fontColor">
853        5.5.M键测量功能</h4>
854    <p class="fontColor">放大trace中的色块,选中色块,键盘按下M,会出现像尺子一样的形状<br>
855        <img alt="GitHub Logo" src="../figures/M.jpg"><br>
856</div>
857
858<script type="text/javascript">
859    window.onload = (() => {
860        let isDark = window.location.search;
861        if (isDark.indexOf("?") != -1) {
862            isDark = isDark.substr(1, isDark.length - 1);
863        }
864        if (isDark == 'true') {
865            document.getElementById("body").setAttribute('style', 'background-color:#272C34;')
866            let header = document.getElementsByClassName('fontColor')
867            for (let i = 0; i < header.length; i++) {
868                header[i].style.color = '#fff';
869            }
870        }
871    })
872</script>
873</body>
874</html>