1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <title>quickstart_Import_so</title> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 <style> 8 code[class*='smartperf-'], 9 pre[class*='smartperf-'] { 10 color: #333333; 11 background: none; 12 font-family: Helvetica; 13 line-height: 1.6; 14 text-align: left; 15 white-space: pre; 16 -moz-tab-size: 9; 17 -o-tab-size: 9; 18 tab-size: 8; 19 -webkit-hyphens: none; 20 -moz-hyphens: none; 21 -ms-hyphens: none; 22 hyphens: none; 23 } 24 25 /* Code blocks */ 26 pre[class*='smartperf-'] { 27 padding: 0.9em; 28 overflow: auto; 29 border-radius: 2px; 30 background: #f5f5f4; 31 } 32 33 /* Inline code */ 34 :not(pre) > code[class*='smartperf-'] { 35 white-space: normal; 36 background: #fcf8f8; 37 padding: 1px 0.2em; 38 border-radius: 1px 0.3em; 39 } 40 41 .tk.comment, 42 .tk.blockquote { 43 color: #8c918c; 44 } 45 46 .tk.cdata { 47 color: #183898; 48 } 49 50 .tk.doctype, 51 .tk.punctuation, 52 .tk.variable, 53 .tk.macro.property { 54 color: #424242; 55 } 56 57 .tk.operator, 58 .tk.important, 59 .tk.keyword, 60 .tk.rule, 61 .tk.builtin { 62 color: #b71d65; 63 } 64 65 .tk.string, 66 .tk.url, 67 .tk.regex, 68 .tk.attr-value { 69 color: #16338d; 70 } 71 72 .tk.property, 73 .tk.number, 74 .tk.boolean, 75 .tk.entity, 76 .tk.atrule, 77 .tk.constant, 78 .tk.symbol, 79 .tk.command, 80 .tk.code { 81 color: #037aa2; 82 } 83 84 .tk.tag, 85 .tk.selector, 86 .tk.prolog { 87 color: #69ad62; 88 } 89 90 .tk.function, 91 .tk.namespace, 92 .tk.pseudo-element, 93 .tk.class, 94 .tk.class-name, 95 .tk.pseudo-class, 96 .tk.id, 97 .tk.url-reference .tk.variable, 98 .tk.attr-name { 99 color: #775d9d; 100 } 101 102 .tk.entity { 103 cursor: help; 104 } 105 106 .tk.title, 107 .tk.title .tk.punctuation { 108 font-weight: bold; 109 color: #1a3773; 110 } 111 112 .tk.list { 113 color: #f56940; 114 } 115 116 .tk.inserted { 117 background-color: #eaffea; 118 color: #509b2f; 119 } 120 121 .tk.deleted { 122 background-color: #fae1e1; 123 color: #ad2d06; 124 } 125 126 .tk.bold { 127 font-weight: bolder; 128 } 129 130 .tk.italic { 131 font-style: normal; 132 } 133 134 /* JSON */ 135 .smartperf-json .tk.property { 136 color: #19358c; 137 } 138 139 .smartperf-markup .tk.tag .tk.punctuation { 140 color: #2c2b2b; 141 } 142 143 /* CSS */ 144 code.smartperf-css, 145 .smartperf-css .tk.function { 146 color: #047ca4; 147 } 148 149 /* YAML */ 150 .smartperf-yaml .tk.atrule { 151 color: #609b5a; 152 } 153 154 code.smartperf-yaml { 155 color: #153491; 156 } 157 158 /* Ruby */ 159 .smartperf-ruby .tk.function { 160 color: #3f3e3e; 161 } 162 163 /* Markdown */ 164 .smartperf-markdown .tk.url { 165 color: #6e5298; 166 } 167 168 /* Makefile */ 169 .smartperf-makefile .tk.symbol { 170 color: #6c5393; 171 } 172 173 .smartperf-makefile .tk.variable { 174 color: #183488; 175 } 176 177 .smartperf-makefile .tk.builtin { 178 color: #027ba4; 179 } 180 181 /* Bash */ 182 .smartperf-bash .tk.keyword { 183 color: #027fa9; 184 } 185 186 /* highlight */ 187 pre[dl] { 188 position: relative; 189 padding: 1em 1px 1px 0.9em; 190 } 191 192 pre[dl] .line-highlight-wrapper { 193 position: absolute; 194 top: 1px; 195 left: 1px; 196 background-color: transparent; 197 display: block; 198 width: 99%; 199 } 200 201 pre[dl] .line-highlight { 202 position: absolute; 203 left: 1px; 204 right: 1px; 205 padding: inherit; 206 margin-top: 0.9em; 207 background: hsla(25, 21%, 50%, 0.08); 208 background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); 209 pointer-events: none; 210 line-height: inherit; 211 white-space: pre; 212 } 213 214 pre[dl] .line-highlight:before, 215 pre[dl] .line-highlight[data-end]:after { 216 content: attr(data-start); 217 position: absolute; 218 text-shadow: none; 219 top: 0.3em; 220 left: 0.7em; 221 min-width: 0.9em; 222 padding: 1px 0.6em; 223 background-color: hsla(24, 20%, 47%, 0.4); 224 color: hsl(20, 11%, 95%); 225 text-align: center; 226 vertical-align: 0.2em; 227 border-radius: 10000px; 228 box-shadow: 1px 2px #fdf6f6; 229 } 230 231 pre[dl] .line-highlight[data-end]:after { 232 content: attr(data-end); 233 top: auto; 234 bottom: 0.5em; 235 } 236 237 html body { 238 line-height: 1.6; 239 font-size: 16px; 240 color: #333333; 241 overflow: initial; 242 word-wrap: break-word; 243 font-family: Helvetica; 244 box-sizing: border-box; 245 } 246 247 html body > :first-child { 248 margin-top: 0px; 249 } 250 251 html body h1, 252 html body h2, 253 html body h3, 254 html body h4, 255 html body h5, 256 html body h6 { 257 margin-top: 1em; 258 margin-bottom: 16px; 259 color: #000000; 260 line-height: 1.2; 261 } 262 263 html body h1 { 264 font-weight: 300; 265 font-size: 2.25em; 266 padding-bottom: 0.3em; 267 } 268 269 html body h2 { 270 font-weight: 410; 271 font-size: 1.74em; 272 padding-bottom: 0.2em; 273 } 274 275 html body h3 { 276 font-size: 1.6em; 277 font-weight: 501; 278 } 279 280 html body h4 { 281 font-size: 1.26em; 282 font-weight: 601; 283 } 284 285 html body h5 { 286 font-size: 1.2em; 287 font-weight: 601; 288 } 289 290 html body h6 { 291 font-size: 0.9em; 292 font-weight: 601; 293 } 294 295 html body h1, 296 html body h2, 297 html body h3, 298 html body h4, 299 html body h5 { 300 font-weight: 601; 301 } 302 303 html body h5 { 304 font-size: 0.9em; 305 } 306 307 html body h6 { 308 color: #5c5c5c; 309 } 310 311 html body strong { 312 color: #090909; 313 } 314 315 html body del { 316 color: #525252; 317 } 318 319 html body a:not([href]) { 320 color: inherit; 321 text-decoration: none; 322 } 323 324 html body a { 325 color: #0192da; 326 text-decoration: none; 327 } 328 329 html body a:hover { 330 color: #029dea; 331 text-decoration: none; 332 } 333 334 html body img { 335 max-width: 99%; 336 } 337 338 html body > p { 339 margin-top: 1px; 340 margin-bottom: 15px; 341 word-wrap: break-word; 342 } 343 344 html body > ul, 345 html body > ol { 346 margin-bottom: 15px; 347 } 348 349 html body ul, 350 html body ol { 351 padding-left: 1.9em; 352 } 353 354 html body ul.no-list, 355 html body ol.no-list { 356 padding: 0px; 357 list-style-type: none; 358 } 359 360 html body ul ul, 361 html body ul ol, 362 html body ol ol, 363 html body ol ul { 364 margin-top: 1px; 365 margin-bottom: 1px; 366 } 367 368 html body li { 369 margin-bottom: 1px; 370 } 371 372 html body li.task-list-item { 373 list-style: none; 374 } 375 376 html body li > p { 377 margin-top: 1px; 378 margin-bottom: 1px; 379 } 380 381 html body .task-list-item-checkbox { 382 margin: 0 0.3em 0.24em -1.7em; 383 vertical-align: middle; 384 } 385 386 html body .task-list-item-checkbox:hover { 387 cursor: pointer; 388 } 389 390 html body blockquote { 391 padding: 0.1px 15px 0 0.1px; 392 font-size: inherit; 393 color: #5c5c5c; 394 margin: 16px 0.1px 0 0.1px; 395 border-left: 3px solid #cbc9c9; 396 background-color: #e8e6e6; 397 } 398 399 html body blockquote > :first-child { 400 margin-top: 0.2px; 401 } 402 403 html body blockquote > :last-child { 404 margin-bottom: 0.1px; 405 } 406 407 html body hr { 408 height: 5px; 409 background-color: #cbcaca; 410 margin: 32px 0 0.1px 0; 411 border: 0 none; 412 } 413 414 html body table { 415 overflow: auto; 416 border-collapse: collapse; 417 margin: 15px 0.1px 20px 0.1px; 418 border-spacing: 0; 419 } 420 421 html body table th { 422 font-weight: bold; 423 color: #000000; 424 } 425 426 html body table td, 427 html body table th { 428 border: 1px solid #d6d6d6; 429 padding: 2px 14px; 430 } 431 432 html body dl { 433 padding: 0px; 434 } 435 436 html body dl dt { 437 padding: 0px; 438 margin-top: 15px; 439 font-size: 0.9em; 440 font-style: italic; 441 font-weight: bold; 442 } 443 444 html body dl dd { 445 padding: 0px 17px; 446 margin-bottom: 17px; 447 } 448 449 html body code { 450 font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; 451 font-size: 0.86em !important; 452 color: #000000; 453 background-color: #f0f0f0; 454 border-radius: 4px; 455 padding: 0.3em 0px; 456 } 457 458 html body code::before, 459 html body code::after { 460 letter-spacing: -0.1em; 461 content: '\00a0'; 462 } 463 464 html body pre > code { 465 padding: 1px; 466 margin: 0px; 467 font-size: 0.86em !important; 468 word-break: normal; 469 white-space: pre; 470 background: transparent; 471 border: 0px; 472 } 473 474 html body .highlight { 475 margin-bottom: 17px; 476 } 477 478 html body .highlight pre, 479 html body pre { 480 padding: 0.9em; 481 overflow: auto; 482 font-size: 0.86em !important; 483 line-height: 1.46; 484 border: #d6d6d6; 485 border-radius: 4px; 486 } 487 488 html body .highlight pre { 489 margin-bottom: 0px; 490 word-break: normal; 491 } 492 493 html body pre code, 494 html body pre tt { 495 display: inline; 496 max-width: initial; 497 padding: 1px; 498 margin: 1px; 499 overflow: initial; 500 line-height: inherit; 501 word-wrap: normal; 502 background-color: transparent; 503 border: 1px; 504 } 505 506 html body pre code:before, 507 html body pre tt:before, 508 html body pre code:after, 509 html body pre tt:after { 510 content: normal; 511 } 512 513 html body p, 514 html body blockquote, 515 html body ul, 516 html body ol, 517 html body dl, 518 html body pre { 519 margin-top: 1px; 520 margin-bottom: 17px; 521 } 522 523 html body kbd { 524 color: #000000; 525 border: 3px solid #d6d6d6; 526 border-bottom: 3px solid #c7c7c7; 527 padding: 3px 5px; 528 background-color: #f0f0f0; 529 border-radius: 2px; 530 } 531 532 @media print { 533 html body { 534 background-color: #ffffff; 535 } 536 537 html body h1, 538 html body h2, 539 html body h3, 540 html body h4, 541 html body h5, 542 html body h6 { 543 color: #000000; 544 page-break-after: avoid; 545 } 546 547 html body blockquote { 548 color: #5c5c53; 549 } 550 551 html body pre { 552 page-break-inside: avoid; 553 } 554 555 html body table { 556 display: table; 557 } 558 559 html body img { 560 display: block; 561 max-width: 99%; 562 max-height: 99%; 563 } 564 565 html body pre, 566 html body code { 567 word-wrap: break-word; 568 white-space: pre; 569 } 570 } 571 572 .smartperf-preview { 573 width: 68vw; 574 height: 99%; 575 box-sizing: border-box; 576 overflow: hidden; 577 background-color: #fff; 578 } 579 580 .smartperf-preview .pagebreak, 581 .smartperf-preview .newpage { 582 page-break-before: always; 583 } 584 585 .smartperf-preview pre.line-numbers { 586 position: relative; 587 padding-left: 3.7em; 588 counter-reset: linenumber; 589 } 590 591 .smartperf-preview pre.line-numbers > code { 592 position: relative; 593 } 594 595 .smartperf-preview pre.line-numbers .line-numbers-rows { 596 position: absolute; 597 pointer-events: none; 598 top: 0.9em; 599 font-size: 99%; 600 left: 1px; 601 width: 3em; 602 letter-spacing: -1px; 603 border-right: 1px solid #999; 604 -webkit-user-select: none; 605 -moz-user-select: none; 606 -ms-user-select: none; 607 user-select: none; 608 } 609 610 .smartperf-preview pre.line-numbers .line-numbers-rows > span { 611 pointer-events: none; 612 display: block; 613 counter-increment: linenumber; 614 } 615 616 .smartperf-preview pre.line-numbers .line-numbers-rows > span:before { 617 content: counter(linenumber); 618 color: #999; 619 display: block; 620 padding-right: 0.79em; 621 text-align: right; 622 } 623 624 .smartperf-preview .mathjax-exps .MathJax_Display { 625 text-align: center !important; 626 } 627 628 .smartperf-preview:not([for='preview']) .code-chunk .btn-group { 629 display: none; 630 } 631 632 .smartperf-preview:not([for='preview']) .code-chunk .status { 633 display: none; 634 } 635 636 .smartperf-preview:not([for='preview']) .code-chunk .output-div { 637 margin-bottom: 16px; 638 } 639 640 .scrollbar-style::-webkit-scrollbar { 641 width: 8px; 642 } 643 644 .scrollbar-style::-webkit-scrollbar-track { 645 border-radius: 9px; 646 background-color: transparent; 647 } 648 649 .scrollbar-style::-webkit-scrollbar-thumb { 650 border-radius: 6px; 651 background-color: rgba(150, 150, 150, 1); 652 border: 4px solid rgba(150, 150, 150, 1); 653 background-clip: content-box; 654 } 655 656 html body[for='html-export']:not([dpm]) { 657 position: relative; 658 width: 99%; 659 height: 99%;; 660 overflow: auto; 661 } 662 663 html body[for='html-export']:not([dpm]) .smartperf-preview { 664 position: relative; 665 top: 1px; 666 } 667 668 @media screen and (min-width: 914px) { 669 html body[for='html-export']:not([dpm]) .smartperf-preview { 670 padding: 2em; 671 } 672 } 673 674 @media screen and (max-width: 914px) { 675 html body[for='html-export']:not([dpm]) .smartperf-preview { 676 padding: 1.9em; 677 } 678 } 679 680 @media screen and (max-width: 450px) { 681 html body[for='html-export']:not([dpm]) .smartperf-preview { 682 font-size: 15px !important; 683 padding: 1.1em; 684 } 685 } 686 687 @media print { 688 html body[for='html-export']:not([dpm]) #sidebar-toc-btn { 689 display: none; 690 } 691 } 692 693 html body[for='html-export']:not([dpm]) #sidebar-toc-btn { 694 position: fixed; 695 bottom: 9px; 696 left: 9px; 697 font-size: 28px; 698 cursor: pointer; 699 color: inherit; 700 z-index: 99; 701 width: 31px; 702 text-align: center; 703 opacity: 0.5; 704 } 705 706 html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn { 707 opacity: 1; 708 } 709 710 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc { 711 position: fixed; 712 top: 1px; 713 left: 1px; 714 width: 300px; 715 height: 99%; 716 padding: 32px 0 48px 0; 717 font-size: 14px; 718 box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33); 719 box-sizing: border-box; 720 overflow: auto; 721 background-color: inherit; 722 } 723 724 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar { 725 width: 9px; 726 } 727 728 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track { 729 border-radius: 11px; 730 background-color: transparent; 731 } 732 733 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb { 734 border-radius: 6px; 735 background-color: rgba(150, 150, 150, 0.66); 736 border: 3px solid rgba(150, 150, 150, 0.66); 737 background-clip: content-box; 738 } 739 740 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a { 741 text-decoration: none; 742 } 743 744 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { 745 padding: 1px 1.7em; 746 margin-top: 0.9em; 747 } 748 749 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li { 750 margin-bottom: 0.8em; 751 } 752 753 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { 754 list-style-type: none; 755 } 756 757 html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 758 left: 301px; 759 width: calc(100% - 300px); 760 padding: 2em calc(50% - 457px - 150px); 761 margin: 1px; 762 box-sizing: border-box; 763 } 764 765 @media screen and (max-width: 1274px) { 766 html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 767 padding: 1.9em; 768 } 769 } 770 771 @media screen and (max-width: 450px) { 772 html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 773 width: 99%; 774 } 775 } 776 777 html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc { 778 display: none; 779 } 780 </style> 781 </head> 782 <body for="html-export" id="body" style="margin:0"> 783 <div class="smartperf smartperf-preview" style="min-height: 99vh;"> 784 <h1 class="mume-header fontColor">调用栈可视化和不同库函数调用占比说明</h1> 785 786 <p class="fontColor"> 787 调用栈可视化可以将开发者编译的so符号化结果展示出来,不同库函数的占比通过饼图的方式展示出来。 788 </p> 789 <h2 class="mume-header fontColor" id="header-index-1">Native Memory文件的不同库函数占比</h2> 790 791 <p class="fontColor"> 792 Native 793 Memory分为三级统计,分别按照内存分配的类型(Alloc/Mmap),lib库,函数进行统计分析。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。 794 <br /> 795 点击Analysis的Tab页,先以内存分配的类型去统计。 796 <br /> 797 <img src="../figures/ImportSo/Native_import_all.jpg" alt="GitHub Logo" /> 798 </p> 799 <ul class="fontColor"> 800 <li> 801 <pre class="smartperf-text fontColor light"> 802Memory Type:事件类型。 803</pre 804 > 805 </li> 806 <li> 807 <pre class="smartperf-text fontColor light"> 808Existing:框选区间内申请没有释放的大小。 809</pre 810 > 811 </li> 812 <li> 813 <pre class="smartperf-text fontColor light"> 814#Existing:框选区间内申请没有释放的次数。 815</pre 816 > 817 </li> 818 <li> 819 <pre class="smartperf-text fontColor light"> 820Total Bytes:框选区间内申请的大小。 821</pre 822 > 823 </li> 824 <li> 825 <pre class="smartperf-text fontColor light"> 826#Total:框选区间内申请的次数。 827</pre 828 > 829 </li> 830 <li> 831 <pre class="smartperf-text fontColor light"> 832Transient:框选区间内释放的大小。 833</pre 834 > 835 </li> 836 <li> 837 <pre class="smartperf-text fontColor light"> 838#Transient:框选区间内释放的次数。 839</pre 840 > 841 </li> 842 <li> 843 <pre class="smartperf-text fontColor light"> 844%:各个显示项的占比。 845</pre 846 > 847 </li> 848 </ul> 849 <p class="fontColor"> 850 以线程去统计 851 <br /> 852 <img src="../figures/ImportSo/Native_import_thread.jpg" alt="GitHub Logo" /> 853 </p> 854 <p class="fontColor"> 855 以lib库去统计,如图显示的是AllocEvent的so占比的饼图和Table表。 856 <br /> 857 <img src="../figures/ImportSo/Native_import_so_Existing.jpg" alt="GitHub Logo" /> 858 </p> 859 <ul class="fontColor"> 860 <li> 861 <pre class="smartperf-text fontColor light"> 862Library:So名称。 863</pre 864 > 865 </li> 866 <li> 867 <pre class="smartperf-text fontColor light"> 868Existing:框选区间内申请没有释放的大小。 869</pre 870 > 871 </li> 872 <li> 873 <pre class="smartperf-text fontColor light"> 874#Existing:框选区间内申请没有释放的次数。 875</pre 876 > 877 </li> 878 <li> 879 <pre class="smartperf-text fontColor light"> 880Total Bytes:框选区间内申请的大小。 881</pre 882 > 883 </li> 884 <li> 885 <pre class="smartperf-text fontColor light"> 886#Total:框选区间内申请的次数。 887</pre 888 > 889 </li> 890 <li> 891 <pre class="smartperf-text fontColor light"> 892Transient:框选区间内释放的大小。 893</pre 894 > 895 </li> 896 <li> 897 <pre class="smartperf-text fontColor light"> 898#Transient:框选区间内释放的次数。 899</pre 900 > 901 </li> 902 <li> 903 <pre class="smartperf-text fontColor light"> 904%:各个显示项的占比。 905</pre 906 > 907 </li> 908 </ul> 909 <p class="fontColor"> 910 以函数去统计,如图显示的是AllocEvent/libmali-bifrost-g52-g2p0-ohos.so的函数占比的饼图和Table表。 911 <br /> 912 <img src="../figures/ImportSo/Native_import_so_function.jpg" alt="GitHub Logo" /> 913 </p> 914 <ul class="fontColor"> 915 <li> 916 <pre class="smartperf-text fontColor light"> 917Function:函数名称。 918</pre 919 > 920 </li> 921 <li> 922 <pre class="smartperf-text fontColor light"> 923Existing:框选区间内申请没有释放的大小。 924</pre 925 > 926 </li> 927 <li> 928 <pre class="smartperf-text fontColor light"> 929#Existing:框选区间内申请没有释放的次数。 930</pre 931 > 932 </li> 933 <li> 934 <pre class="smartperf-text fontColor light"> 935Total Bytes:框选区间内申请的大小。 936</pre 937 > 938 </li> 939 <li> 940 <pre class="smartperf-text fontColor light"> 941#Total:框选区间内申请的次数。 942</pre 943 > 944 </li> 945 <li> 946 <pre class="smartperf-text fontColor light"> 947Transient:框选区间内释放的大小。 948</pre 949 > 950 </li> 951 <li> 952 <pre class="smartperf-text fontColor light"> 953#Transient:框选区间内释放的次数。 954</pre 955 > 956 </li> 957 <li> 958 <pre class="smartperf-text fontColor light"> 959%:各个显示项的占比。 960</pre 961 > 962 </li> 963 </ul> 964 <h2 class="mume-header fontColor" id="header-index-2">Hiperf文件的不同库函数占比</h2> 965 966 <p class="fontColor"> 967 Hiperf分为四级统计,分别按照进程,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈的栈顶函数及其lib。 968 <br /> 969 点击Analysis的Tab页,先以进程去统计。 970 <br /> 971 <img src="../figures/ImportSo/Hiperf_import_all.jpg" alt="GitHub Logo" /> 972 </p> 973 <ul class="fontColor"> 974 <li> 975 <pre class="smartperf-text fontColor light"> 976ProcessName:进程名。 977</pre 978 > 979 </li> 980 <li> 981 <pre class="smartperf-text fontColor light"> 982Weight:该进程下的调用方法的执行次数。 983</pre 984 > 985 </li> 986 <li> 987 <pre class="smartperf-text fontColor light"> 988%:该进程下的调用方法的执行占比。 989</pre 990 > 991 </li> 992 </ul> 993 <p class="fontColor"> 994 以线程统计,如图显示的是hiperf进程下的线程的饼图和Table表。 995 <br /> 996 <img src="../figures/ImportSo/Hiperf_import_thread.jpg" alt="GitHub Logo" /> 997 </p> 998 <ul class="fontColor"> 999 <li> 1000 <pre class="smartperf-text fontColor light"> 1001ThreadName:线程名。 1002</pre 1003 > 1004 </li> 1005 <li> 1006 <pre class="smartperf-text fontColor light"> 1007Weight:该线程下的调用方法的执行次数。 1008</pre 1009 > 1010 </li> 1011 <li> 1012 <pre class="smartperf-text fontColor light"> 1013%:该线程下的调用方法的执行占比。 1014</pre 1015 > 1016 </li> 1017 </ul> 1018 <p class="fontColor"> 1019 以lib库统计,如图显示的是hiperf线程下的各so占比饼图和Table表。 1020 <br /> 1021 <img src="../figures/ImportSo/Hiperf_import_lib.jpg" alt="GitHub Logo" /> 1022 </p> 1023 <ul class="fontColor"> 1024 <li> 1025 <pre class="smartperf-text fontColor light"> 1026Library:so的名称。 1027</pre 1028 > 1029 </li> 1030 <li> 1031 <pre class="smartperf-text fontColor light"> 1032Weight:该so的调用方法的执行次数。 1033</pre 1034 > 1035 </li> 1036 <li> 1037 <pre class="smartperf-text fontColor light"> 1038%:该so的调用方法的执行占比。 1039</pre 1040 > 1041 </li> 1042 </ul> 1043 <p class="fontColor"> 1044 以函数统计,如图显示的是ld-musl-aarch64.so.1下的各函数占比饼图和Table表。 1045 <br /> 1046 <img src="../figures/ImportSo/Hiperf_import_Fuc.jpg" alt="GitHub Logo" /> 1047 </p> 1048 <ul class="fontColor"> 1049 <li> 1050 <pre class="smartperf-text fontColor light"> 1051Library:so的名称。 1052</pre 1053 > 1054 </li> 1055 <li> 1056 <pre class="smartperf-text fontColor light"> 1057Weight:该so的调用方法的执行次数。 1058</pre 1059 > 1060 </li> 1061 <li> 1062 <pre class="smartperf-text fontColor light"> 1063%:该so的调用方法的执行占比。 1064</pre 1065 > 1066 </li> 1067 </ul> 1068 <h2 class="mume-header fontColor" id="header-index-3">FileSystem文件的不同库函数占比</h2> 1069 1070 <p class="fontColor"> 1071 FileSystem分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。 1072 <br /> 1073 点击Analysis的Tab页,先以进程去统计。 1074 <br /> 1075 <img src="../figures/ImportSo/filesystem_import_process.jpg" alt="GitHub Logo" /> 1076 </p> 1077 <ul class="fontColor"> 1078 <li> 1079 <pre class="smartperf-text fontColor light"> 1080ProcessName:进程名。 1081</pre 1082 > 1083 </li> 1084 <li> 1085 <pre class="smartperf-text fontColor light"> 1086Duration:总时长。 1087</pre 1088 > 1089 </li> 1090 <li> 1091 <pre class="smartperf-text fontColor light"> 1092%:总时长占比。 1093</pre 1094 > 1095 </li> 1096 </ul> 1097 <p class="fontColor"> 1098 以系统调用类型统计,如图显示的是grep进程下的Read和Write系统调用的时长占比饼图和Table表。 1099 <br /> 1100 <img src="../figures/ImportSo/filesystem_import_Type.jpg" alt="GitHub Logo" /> 1101 </p> 1102 <ul class="fontColor"> 1103 <li> 1104 <pre class="smartperf-text fontColor light"> 1105Type:系统调用类型(Read和Write)。 1106</pre 1107 > 1108 </li> 1109 <li> 1110 <pre class="smartperf-text fontColor light"> 1111Duration:系统调用的总时长。 1112</pre 1113 > 1114 </li> 1115 <li> 1116 <pre class="smartperf-text fontColor light"> 1117%:总时长占比。 1118</pre 1119 > 1120 </li> 1121 </ul> 1122 <p class="fontColor"> 1123 以线程统计,如图显示的是系统调用是Read类型的线程的占比饼图和Table表。 1124 <br /> 1125 <img src="../figures/ImportSo/filesystem_import_thread.jpg" alt="GitHub Logo" /> 1126 </p> 1127 <ul class="fontColor"> 1128 <li> 1129 <pre class="smartperf-text fontColor light"> 1130ThreadName:线程名。 1131</pre 1132 > 1133 </li> 1134 <li> 1135 <pre class="smartperf-text fontColor light"> 1136Duration:该线程的系统调用的总时长。 1137</pre 1138 > 1139 </li> 1140 <li> 1141 <pre class="smartperf-text fontColor light"> 1142%:总时长占比。 1143</pre 1144 > 1145 </li> 1146 </ul> 1147 <p class="fontColor"> 1148 以lib库统计,如图显示toybox的lib库的占比饼图和Table表。 1149 <br /> 1150 <img src="../figures/ImportSo/filesystem_import_lib.jpg" alt="GitHub Logo" /> 1151 </p> 1152 <ul class="fontColor"> 1153 <li> 1154 <pre class="smartperf-text fontColor light"> 1155Library:so的名称。 1156</pre 1157 > 1158 </li> 1159 <li> 1160 <pre class="smartperf-text fontColor light"> 1161Duration:该so的系统调用的总时长。 1162</pre 1163 > 1164 </li> 1165 <li> 1166 <pre class="smartperf-text fontColor light"> 1167%:总时长占比。 1168</pre 1169 > 1170 </li> 1171 </ul> 1172 <p class="fontColor"> 1173 以函数统计,如图显示0x558111afbc (toybox)的函数占比饼图和Table表。 1174 <br /> 1175 <img src="../figures/ImportSo/filesystem_import_func.jpg" alt="GitHub Logo" /> 1176 </p> 1177 <ul class="fontColor"> 1178 <li> 1179 <pre class="smartperf-text fontColor light"> 1180Function:函数名称。 1181</pre 1182 > 1183 </li> 1184 <li> 1185 <pre class="smartperf-text fontColor light"> 1186Duration:该函数的系统调用的总时长。 1187</pre 1188 > 1189 </li> 1190 <li> 1191 <pre class="smartperf-text fontColor light"> 1192%:总时长占比。 1193</pre 1194 > 1195 </li> 1196 </ul> 1197 <h2 class="mume-header fontColor" id="header-index-4">Bio文件的不同库函数占比</h2> 1198 1199 <p class="fontColor"> 1200 Bio分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非submit_bio第一条函数及其lib为每次分配归属的函数及lib库。 1201 <br /> 1202 点击Analysis的Tab页,先以进程去统计。 1203 <br /> 1204 <img src="../figures/ImportSo/bio_import_process.jpg" alt="GitHub Logo" /> 1205 </p> 1206 <ul class="fontColor"> 1207 <li> 1208 <pre class="smartperf-text fontColor light"> 1209ProcessName:进程名。 1210</pre 1211 > 1212 </li> 1213 <li> 1214 <pre class="smartperf-text fontColor light"> 1215Duration:总时长。 1216</pre 1217 > 1218 </li> 1219 <li> 1220 <pre class="smartperf-text fontColor light"> 1221%:总时长占比。 1222</pre 1223 > 1224 </li> 1225 </ul> 1226 <p class="fontColor"> 1227 以系统调用类型统计,如图显示的是jbd2/mmcblk0p11进程下的DATA_WRITE系统调用的时长占比饼图和Table表。 1228 <br /> 1229 <img src="../figures/ImportSo/bio_import_Type.jpg" alt="GitHub Logo" /> 1230 </p> 1231 <ul class="fontColor"> 1232 <li> 1233 <pre class="smartperf-text fontColor light"> 1234Type:系统调用类型。 1235</pre 1236 > 1237 </li> 1238 <li> 1239 <pre class="smartperf-text fontColor light"> 1240Duration:系统调用的总时长。 1241</pre 1242 > 1243 </li> 1244 <li> 1245 <pre class="smartperf-text fontColor light"> 1246%:总时长占比。 1247</pre 1248 > 1249 </li> 1250 </ul> 1251 <p class="fontColor"> 1252 以线程统计,如图显示的是系统调用是DATA_WRITE类型的线程的占比饼图和Table表。 1253 <br /> 1254 <img src="../figures/ImportSo/bio_import_thread.jpg" alt="GitHub Logo" /> 1255 </p> 1256 <ul class="fontColor"> 1257 <li> 1258 <pre class="smartperf-text fontColor light"> 1259ThreadName:线程名。 1260</pre 1261 > 1262 </li> 1263 <li> 1264 <pre class="smartperf-text fontColor light"> 1265Duration:该线程的系统调用的总时长。 1266</pre 1267 > 1268 </li> 1269 <li> 1270 <pre class="smartperf-text fontColor light"> 1271%:总时长占比。 1272</pre 1273 > 1274 </li> 1275 </ul> 1276 <p class="fontColor"> 1277 以lib库统计,如图显示kallsyms的lib库的占比饼图和Table表。 1278 <br /> 1279 <img src="../figures/ImportSo/bio_import_lib.jpg" alt="GitHub Logo" /> 1280 </p> 1281 <ul class="fontColor"> 1282 <li> 1283 <pre class="smartperf-text fontColor light"> 1284Library:so的名称。 1285</pre 1286 > 1287 </li> 1288 <li> 1289 <pre class="smartperf-text fontColor light"> 1290Duration:该so的系统调用的总时长。 1291</pre 1292 > 1293 </li> 1294 <li> 1295 <pre class="smartperf-text fontColor light"> 1296%:总时长占比。 1297</pre 1298 > 1299 </li> 1300 </ul> 1301 <p class="fontColor"> 1302 以函数统计,如图显示submit_bh的函数占比饼图和Table表。 1303 <br /> 1304 <img src="../figures/ImportSo/bio_import_func.jpg" alt="GitHub Logo" /> 1305 </p> 1306 <ul class="fontColor"> 1307 <li> 1308 <pre class="smartperf-text fontColor light"> 1309Function:函数名称。 1310</pre 1311 > 1312 </li> 1313 <li> 1314 <pre class="smartperf-text fontColor light"> 1315Duration:该函数的系统调用的总时长。 1316</pre 1317 > 1318 </li> 1319 <li> 1320 <pre class="smartperf-text fontColor light"> 1321%:总时长占比。 1322</pre 1323 > 1324 </li> 1325 </ul> 1326 <h2 class="mume-header fontColor" id="header-index-5">Page Fault文件的不同库函数占比</h2> 1327 1328 <p class="fontColor"> 1329 Page 1330 Fault分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。 1331 <br /> 1332 点击Analysis的Tab页,先以进程去统计。 1333 <br /> 1334 <img src="../figures/ImportSo/pagefault_import_process.jpg" alt="GitHub Logo" /> 1335 </p> 1336 <ul class="fontColor"> 1337 <li> 1338 <pre class="smartperf-text fontColor light"> 1339ProcessName:进程名。 1340</pre 1341 > 1342 </li> 1343 <li> 1344 <pre class="smartperf-text fontColor light"> 1345Duration:总时长。 1346</pre 1347 > 1348 </li> 1349 <li> 1350 <pre class="smartperf-text fontColor light"> 1351%:总时长占比。 1352</pre 1353 > 1354 </li> 1355 </ul> 1356 <p class="fontColor"> 1357 以系统调用类型统计,如图显示的是1.ui进程下的File Backed In和Copy On Writer系统调用的时长占比饼图和Table表。 1358 <br /> 1359 <img src="../figures/ImportSo/pagefault_import_Type.jpg" alt="GitHub Logo" /> 1360 </p> 1361 <ul class="fontColor"> 1362 <li> 1363 <pre class="smartperf-text fontColor light"> 1364Type:系统调用类型。 1365</pre 1366 > 1367 </li> 1368 <li> 1369 <pre class="smartperf-text fontColor light"> 1370Duration:系统调用的总时长。 1371</pre 1372 > 1373 </li> 1374 <li> 1375 <pre class="smartperf-text fontColor light"> 1376%:总时长占比。 1377</pre 1378 > 1379 </li> 1380 </ul> 1381 <p class="fontColor"> 1382 以线程统计,如图显示的是系统调用是File Backed In类型的线程的占比饼图和Table表。 1383 <br /> 1384 <img src="../figures/ImportSo/pagefault_import_thread.jpg" alt="GitHub Logo" /> 1385 </p> 1386 <ul class="fontColor"> 1387 <li> 1388 <pre class="smartperf-text fontColor light"> 1389ThreadName:线程名。 1390</pre 1391 > 1392 </li> 1393 <li> 1394 <pre class="smartperf-text fontColor light"> 1395Duration:该线程的系统调用的总时长。 1396</pre 1397 > 1398 </li> 1399 <li> 1400 <pre class="smartperf-text fontColor light"> 1401%:总时长占比。 1402</pre 1403 > 1404 </li> 1405 </ul> 1406 <p class="fontColor"> 1407 以lib库统计,如图显示各lib库的占比饼图和Table表。 1408 <br /> 1409 <img src="../figures/ImportSo/pagefault_import_lib.jpg" alt="GitHub Logo" /> 1410 </p> 1411 <ul class="fontColor"> 1412 <li> 1413 <pre class="smartperf-text fontColor light"> 1414Library:so的名称。 1415</pre 1416 > 1417 </li> 1418 <li> 1419 <pre class="smartperf-text fontColor light"> 1420Duration:该so的系统调用的总时长。 1421</pre 1422 > 1423 </li> 1424 <li> 1425 <pre class="smartperf-text fontColor light"> 1426%:总时长占比。 1427</pre 1428 > 1429 </li> 1430 </ul> 1431 <p class="fontColor"> 1432 以函数统计,如图显示各函数占比饼图和Table表。 1433 <br /> 1434 <img src="../figures/ImportSo/pagefault_import_func.jpg" alt="GitHub Logo" /> 1435 </p> 1436 <ul class="fontColor"> 1437 <li> 1438 <pre class="smartperf-text fontColor light"> 1439Function:函数名称。 1440</pre 1441 > 1442 </li> 1443 <li> 1444 <pre class="smartperf-text fontColor light"> 1445Duration:该函数的系统调用的总时长。 1446</pre 1447 > 1448 </li> 1449 <li> 1450 <pre class="smartperf-text fontColor light"> 1451%:总时长占比。 1452</pre 1453 > 1454 </li> 1455 </ul> 1456 </div> 1457 1458 <script> 1459 window.onload = () => { 1460 let isDark = getURLParameter('dark'); 1461 let targetId = getURLParameter('targetId'); 1462 let isBack = getURLParameter('isBack'); 1463 if (isDark === 'true') { 1464 document.getElementById('body').setAttribute('style', 'background-color:#272C34;'); 1465 let header = document.getElementsByClassName('fontColor'); 1466 for (let i = 0; i < header.length; i++) { 1467 header[i].style.color = '#fff'; 1468 } 1469 let lightBackGround = document.getElementsByClassName('light'); 1470 for (let i = 0; i < lightBackGround.length; i++) { 1471 lightBackGround[i].style.backgroundColor = '#32373F'; 1472 } 1473 } 1474 function getURLParameter(name) { 1475 return (new URL(document.location)).searchParams.get(name); 1476 } 1477 1478 if ( targetId !== null ) { 1479 let targetElement = document.getElementById(targetId); 1480 targetElement.scrollIntoView({ behavior: 'smooth' }); 1481 } 1482 }; 1483 </script> 1484 </body> 1485</html> 1486