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