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>