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 background-color: #ffffff; 243 word-wrap: break-word; 244 font-family: Helvetica; 245 box-sizing: border-box; 246 } 247 248 html body > :first-child { 249 margin-top: 0px; 250 } 251 252 html body h1, 253 html body h2, 254 html body h3, 255 html body h4, 256 html body h5, 257 html body h6 { 258 margin-top: 1em; 259 margin-bottom: 16px; 260 color: #000000; 261 line-height: 1.2; 262 } 263 264 html body h1 { 265 font-weight: 300; 266 font-size: 2.25em; 267 padding-bottom: 0.3em; 268 } 269 270 html body h2 { 271 font-weight: 410; 272 font-size: 1.74em; 273 padding-bottom: 0.2em; 274 } 275 276 html body h3 { 277 font-size: 1.6em; 278 font-weight: 501; 279 } 280 281 html body h4 { 282 font-size: 1.26em; 283 font-weight: 601; 284 } 285 286 html body h5 { 287 font-size: 1.2em; 288 font-weight: 601; 289 } 290 291 html body h6 { 292 font-size: 0.9em; 293 font-weight: 601; 294 } 295 296 html body h1, 297 html body h2, 298 html body h3, 299 html body h4, 300 html body h5 { 301 font-weight: 601; 302 } 303 304 html body h5 { 305 font-size: 0.9em; 306 } 307 308 html body h6 { 309 color: #5c5c5c; 310 } 311 312 html body strong { 313 color: #090909; 314 } 315 316 html body del { 317 color: #525252; 318 } 319 320 html body a:not([href]) { 321 color: inherit; 322 text-decoration: none; 323 } 324 325 html body a { 326 color: #0192da; 327 text-decoration: none; 328 } 329 330 html body a:hover { 331 color: #029dea; 332 text-decoration: none; 333 } 334 335 html body img { 336 max-width: 99%; 337 } 338 339 html body > p { 340 margin-top: 1px; 341 margin-bottom: 15px; 342 word-wrap: break-word; 343 } 344 345 html body > ul, 346 html body > ol { 347 margin-bottom: 15px; 348 } 349 350 html body ul, 351 html body ol { 352 padding-left: 1.9em; 353 } 354 355 html body ul.no-list, 356 html body ol.no-list { 357 padding: 0px; 358 list-style-type: none; 359 } 360 361 html body ul ul, 362 html body ul ol, 363 html body ol ol, 364 html body ol ul { 365 margin-top: 1px; 366 margin-bottom: 1px; 367 } 368 369 html body li { 370 margin-bottom: 1px; 371 } 372 373 html body li.task-list-item { 374 list-style: none; 375 } 376 377 html body li > p { 378 margin-top: 1px; 379 margin-bottom: 1px; 380 } 381 382 html body .task-list-item-checkbox { 383 margin: 0 0.3em 0.24em -1.7em; 384 vertical-align: middle; 385 } 386 387 html body .task-list-item-checkbox:hover { 388 cursor: pointer; 389 } 390 391 html body blockquote { 392 padding: 0.1px 15px 0 0.1px; 393 font-size: inherit; 394 color: #5c5c5c; 395 margin: 16px 0.1px 0 0.1px; 396 border-left: 3px solid #cbc9c9; 397 background-color: #e8e6e6; 398 } 399 400 html body blockquote > :first-child { 401 margin-top: 0.2px; 402 } 403 404 html body blockquote > :last-child { 405 margin-bottom: 0.1px; 406 } 407 408 html body hr { 409 height: 5px; 410 background-color: #cbcaca; 411 margin: 32px 0 0.1px 0; 412 border: 0 none; 413 } 414 415 html body table { 416 overflow: auto; 417 border-collapse: collapse; 418 margin: 15px 0.1px 20px 0.1px; 419 border-spacing: 0; 420 } 421 422 html body table th { 423 font-weight: bold; 424 color: #000000; 425 } 426 427 html body table td, 428 html body table th { 429 border: 1px solid #d6d6d6; 430 padding: 2px 14px; 431 } 432 433 html body dl { 434 padding: 0px; 435 } 436 437 html body dl dt { 438 padding: 0px; 439 margin-top: 15px; 440 font-size: 0.9em; 441 font-style: italic; 442 font-weight: bold; 443 } 444 445 html body dl dd { 446 padding: 0px 17px; 447 margin-bottom: 17px; 448 } 449 450 html body code { 451 font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; 452 font-size: 0.86em !important; 453 color: #000000; 454 background-color: #f0f0f0; 455 border-radius: 4px; 456 padding: 0.3em 0px; 457 } 458 459 html body code::before, 460 html body code::after { 461 letter-spacing: -0.1em; 462 content: '\00a0'; 463 } 464 465 html body pre > code { 466 padding: 1px; 467 margin: 0px; 468 font-size: 0.86em !important; 469 word-break: normal; 470 white-space: pre; 471 background: transparent; 472 border: 0px; 473 } 474 475 html body .highlight { 476 margin-bottom: 17px; 477 } 478 479 html body .highlight pre, 480 html body pre { 481 padding: 0.9em; 482 overflow: auto; 483 font-size: 0.86em !important; 484 line-height: 1.46; 485 border: #d6d6d6; 486 border-radius: 4px; 487 } 488 489 html body .highlight pre { 490 margin-bottom: 0px; 491 word-break: normal; 492 } 493 494 html body pre code, 495 html body pre tt { 496 display: inline; 497 max-width: initial; 498 padding: 1px; 499 margin: 1px; 500 overflow: initial; 501 line-height: inherit; 502 word-wrap: normal; 503 background-color: transparent; 504 border: 1px; 505 } 506 507 html body pre code:before, 508 html body pre tt:before, 509 html body pre code:after, 510 html body pre tt:after { 511 content: normal; 512 } 513 514 html body p, 515 html body blockquote, 516 html body ul, 517 html body ol, 518 html body dl, 519 html body pre { 520 margin-top: 1px; 521 margin-bottom: 17px; 522 } 523 524 html body kbd { 525 color: #000000; 526 border: 3px solid #d6d6d6; 527 border-bottom: 3px solid #c7c7c7; 528 padding: 3px 5px; 529 background-color: #f0f0f0; 530 border-radius: 2px; 531 } 532 533 @media print { 534 html body { 535 background-color: #ffffff; 536 } 537 538 html body h1, 539 html body h2, 540 html body h3, 541 html body h4, 542 html body h5, 543 html body h6 { 544 color: #000000; 545 page-break-after: avoid; 546 } 547 548 html body blockquote { 549 color: #5c5c53; 550 } 551 552 html body pre { 553 page-break-inside: avoid; 554 } 555 556 html body table { 557 display: table; 558 } 559 560 html body img { 561 display: block; 562 max-width: 99%; 563 max-height: 99%; 564 } 565 566 html body pre, 567 html body code { 568 word-wrap: break-word; 569 white-space: pre; 570 } 571 } 572 573 .smartperf-preview { 574 width: 99%; 575 height: 99%; 576 box-sizing: border-box; 577 } 578 579 .smartperf-preview .pagebreak, 580 .smartperf-preview .newpage { 581 page-break-before: always; 582 } 583 584 .smartperf-preview pre.line-numbers { 585 position: relative; 586 padding-left: 3.7em; 587 counter-reset: linenumber; 588 } 589 590 .smartperf-preview pre.line-numbers > code { 591 position: relative; 592 } 593 594 .smartperf-preview pre.line-numbers .line-numbers-rows { 595 position: absolute; 596 pointer-events: none; 597 top: 0.9em; 598 font-size: 99%; 599 left: 1px; 600 width: 3em; 601 letter-spacing: -1px; 602 border-right: 1px solid #999; 603 -webkit-user-select: none; 604 -moz-user-select: none; 605 -ms-user-select: none; 606 user-select: none; 607 } 608 609 .smartperf-preview pre.line-numbers .line-numbers-rows > span { 610 pointer-events: none; 611 display: block; 612 counter-increment: linenumber; 613 } 614 615 .smartperf-preview pre.line-numbers .line-numbers-rows > span:before { 616 content: counter(linenumber); 617 color: #999; 618 display: block; 619 padding-right: 0.79em; 620 text-align: right; 621 } 622 623 .smartperf-preview .mathjax-exps .MathJax_Display { 624 text-align: center !important; 625 } 626 627 .smartperf-preview:not([for='preview']) .code-chunk .btn-group { 628 display: none; 629 } 630 631 .smartperf-preview:not([for='preview']) .code-chunk .status { 632 display: none; 633 } 634 635 .smartperf-preview:not([for='preview']) .code-chunk .output-div { 636 margin-bottom: 16px; 637 } 638 639 .scrollbar-style::-webkit-scrollbar { 640 width: 8px; 641 } 642 643 .scrollbar-style::-webkit-scrollbar-track { 644 border-radius: 9px; 645 background-color: transparent; 646 } 647 648 .scrollbar-style::-webkit-scrollbar-thumb { 649 border-radius: 6px; 650 background-color: rgba(150, 150, 150, 1); 651 border: 4px solid rgba(150, 150, 150, 1); 652 background-clip: content-box; 653 } 654 655 html body[for='html-export']:not([dpm]) { 656 position: relative; 657 width: 99%; 658 height: 99%; 659 top: 1px; 660 left: 1px; 661 margin: 1px; 662 padding: 1px; 663 overflow: auto; 664 } 665 666 html body[for='html-export']:not([dpm]) .smartperf-preview { 667 position: relative; 668 top: 1px; 669 } 670 671 @media screen and (min-width: 914px) { 672 html body[for='html-export']:not([dpm]) .smartperf-preview { 673 padding: 2em calc(50% - 458px + 2em); 674 } 675 } 676 677 @media screen and (max-width: 914px) { 678 html body[for='html-export']:not([dpm]) .smartperf-preview { 679 padding: 1.9em; 680 } 681 } 682 683 @media screen and (max-width: 450px) { 684 html body[for='html-export']:not([dpm]) .smartperf-preview { 685 font-size: 15px !important; 686 padding: 1.1em; 687 } 688 } 689 690 @media print { 691 html body[for='html-export']:not([dpm]) #sidebar-toc-btn { 692 display: none; 693 } 694 } 695 696 html body[for='html-export']:not([dpm]) #sidebar-toc-btn { 697 position: fixed; 698 bottom: 9px; 699 left: 9px; 700 font-size: 28px; 701 cursor: pointer; 702 color: inherit; 703 z-index: 99; 704 width: 31px; 705 text-align: center; 706 opacity: 0.5; 707 } 708 709 html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn { 710 opacity: 1; 711 } 712 713 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc { 714 position: fixed; 715 top: 1px; 716 left: 1px; 717 width: 300px; 718 height: 99%; 719 padding: 32px 0 48px 0; 720 font-size: 14px; 721 box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33); 722 box-sizing: border-box; 723 overflow: auto; 724 background-color: inherit; 725 } 726 727 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar { 728 width: 9px; 729 } 730 731 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track { 732 border-radius: 11px; 733 background-color: transparent; 734 } 735 736 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb { 737 border-radius: 6px; 738 background-color: rgba(150, 150, 150, 0.66); 739 border: 3px solid rgba(150, 150, 150, 0.66); 740 background-clip: content-box; 741 } 742 743 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a { 744 text-decoration: none; 745 } 746 747 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { 748 padding: 1px 1.7em; 749 margin-top: 0.9em; 750 } 751 752 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li { 753 margin-bottom: 0.8em; 754 } 755 756 html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { 757 list-style-type: none; 758 } 759 760 html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 761 left: 301px; 762 width: calc(100% - 300px); 763 padding: 2em calc(50% - 457px - 150px); 764 margin: 1px; 765 box-sizing: border-box; 766 } 767 768 @media screen and (max-width: 1274px) { 769 html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 770 padding: 1.9em; 771 } 772 } 773 774 @media screen and (max-width: 450px) { 775 html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 776 width: 99%; 777 } 778 } 779 780 html body[for='html-export']:not([dpm]):not([hsst]) .smartperf-preview { 781 left: 50%; 782 transform: translateX(-50%); 783 } 784 785 html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc { 786 display: none; 787 } 788 </style> 789 </head> 790 <body for="html-export" id="body"> 791 <div class="smartperf smartperf-preview"> 792 <h1 class="mume-header fontColor">调用栈可视化和不同库函数调用占比说明</h1> 793 794 <p class="fontColor"> 795 调用栈可视化可以将开发者编译的so符号化结果展示出来,不同库函数的占比通过饼图的方式展示出来。 796 </p> 797 <h2 class="mume-header fontColor">Native Memory文件的不同库函数占比</h2> 798 799 <p class="fontColor"> 800 Native 801 Memory分为三级统计,分别按照内存分配的类型(Alloc/Mmap),lib库,函数进行统计分析。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。<br /> 802 点击Analysis的Tab页,先以内存分配的类型去统计。<br /> 803 <img src="../figures/ImportSo/Native_import_all.jpg" alt="GitHub Logo" /> 804 </p> 805 <ul class="fontColor"> 806 <li> 807 <pre class="smartperf-text fontColor light"> 808Memory Type:事件类型。 809</pre 810 > 811 </li> 812 <li> 813 <pre class="smartperf-text fontColor light"> 814Existing:框选区域内申请没有释放的大小。 815</pre 816 > 817 </li> 818 <li> 819 <pre class="smartperf-text fontColor light"> 820#Existing:框选区域内申请没有释放的次数。 821</pre 822 > 823 </li> 824 <li> 825 <pre class="smartperf-text fontColor light"> 826Total Bytes:框选区间内申请的大小。 827</pre 828 > 829 </li> 830 <li> 831 <pre class="smartperf-text fontColor light"> 832#Total:框选区间内申请的次数。 833</pre 834 > 835 </li> 836 <li> 837 <pre class="smartperf-text fontColor light"> 838Transient:框选区域内释放的大小。 839</pre 840 > 841 </li> 842 <li> 843 <pre class="smartperf-text fontColor light"> 844#Transient:框选区域内释放的次数。 845</pre 846 > 847 </li> 848 <li> 849 <pre class="smartperf-text fontColor light"> 850%:各个显示项的占比。 851</pre 852 > 853 </li> 854 </ul> 855 <p class="fontColor"> 856 以lib库去统计,如图显示的是AllocEvent的so占比的饼图和Table表。<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表。<br /> 911 <img src="../figures/ImportSo/Native_import_so_function.jpg" alt="GitHub Logo" /> 912 </p> 913 <ul class="fontColor"> 914 <li> 915 <pre class="smartperf-text fontColor light"> 916Function:函数名称。 917</pre 918 > 919 </li> 920 <li> 921 <pre class="smartperf-text fontColor light"> 922Existing:框选区域内申请没有释放的大小。 923</pre 924 > 925 </li> 926 <li> 927 <pre class="smartperf-text fontColor light"> 928#Existing:框选区域内申请没有释放的次数。 929</pre 930 > 931 </li> 932 <li> 933 <pre class="smartperf-text fontColor light"> 934Total Bytes:框选区间内申请的大小。 935</pre 936 > 937 </li> 938 <li> 939 <pre class="smartperf-text fontColor light"> 940#Total:框选区间内申请的次数。 941</pre 942 > 943 </li> 944 <li> 945 <pre class="smartperf-text fontColor light"> 946Transient:框选区域内释放的大小。 947</pre 948 > 949 </li> 950 <li> 951 <pre class="smartperf-text fontColor light"> 952#Transient:框选区域内释放的次数。 953</pre 954 > 955 </li> 956 <li> 957 <pre class="smartperf-text fontColor light"> 958%:各个显示项的占比。 959</pre 960 > 961 </li> 962 </ul> 963 <h2 class="mume-header fontColor">Hiperf文件的不同库函数占比</h2> 964 965 <p class="fontColor"> 966 Hiperf分为四级统计,分别按照进程,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈的栈顶函数及其lib。<br /> 967 点击Analysis的Tab页,先以进程去统计。<br /> 968 <img src="../figures/ImportSo/Hiperf_import_all.jpg" alt="GitHub Logo" /> 969 </p> 970 <ul class="fontColor"> 971 <li> 972 <pre class="smartperf-text fontColor light"> 973ProcessName:进程名。 974</pre 975 > 976 </li> 977 <li> 978 <pre class="smartperf-text fontColor light"> 979Weight:该进程下的调用方法的执行次数。 980</pre 981 > 982 </li> 983 <li> 984 <pre class="smartperf-text fontColor light"> 985%:该进程下的调用方法的执行占比。 986</pre 987 > 988 </li> 989 </ul> 990 <p class="fontColor"> 991 以线程统计,如图显示的是hiperf进程下的线程的饼图和Table表。<br /> 992 <img src="../figures/ImportSo/Hiperf_import_thread.jpg" alt="GitHub Logo" /> 993 </p> 994 <ul class="fontColor"> 995 <li> 996 <pre class="smartperf-text fontColor light"> 997ThreadName:线程名。 998</pre 999 > 1000 </li> 1001 <li> 1002 <pre class="smartperf-text fontColor light"> 1003Weight:该线程下的调用方法的执行次数。 1004</pre 1005 > 1006 </li> 1007 <li> 1008 <pre class="smartperf-text fontColor light"> 1009%:该线程下的调用方法的执行占比。 1010</pre 1011 > 1012 </li> 1013 </ul> 1014 <p class="fontColor"> 1015 以lib库统计,如图显示的是hiperf线程下的各so占比饼图和Table表。<br /> 1016 <img src="../figures/ImportSo/Hiperf_import_lib.jpg" alt="GitHub Logo" /> 1017 </p> 1018 <ul class="fontColor"> 1019 <li> 1020 <pre class="smartperf-text fontColor light"> 1021Library:so的名称。 1022</pre 1023 > 1024 </li> 1025 <li> 1026 <pre class="smartperf-text fontColor light"> 1027Weight:该so的调用方法的执行次数。 1028</pre 1029 > 1030 </li> 1031 <li> 1032 <pre class="smartperf-text fontColor light"> 1033%:该so的调用方法的执行占比。 1034</pre 1035 > 1036 </li> 1037 </ul> 1038 <p class="fontColor"> 1039 以函数统计,如图显示的是ld-musl-aarch64.so.1下的各函数占比饼图和Table表。<br /> 1040 <img src="../figures/ImportSo/Hiperf_import_Fuc.jpg" alt="GitHub Logo" /> 1041 </p> 1042 <ul class="fontColor"> 1043 <li> 1044 <pre class="smartperf-text fontColor light"> 1045Library:so的名称。 1046</pre 1047 > 1048 </li> 1049 <li> 1050 <pre class="smartperf-text fontColor light"> 1051Weight:该so的调用方法的执行次数。 1052</pre 1053 > 1054 </li> 1055 <li> 1056 <pre class="smartperf-text fontColor light"> 1057%:该so的调用方法的执行占比。 1058</pre 1059 > 1060 </li> 1061 </ul> 1062 <h2 class="mume-header fontColor">FileSystem文件的不同库函数占比</h2> 1063 1064 <p class="fontColor"> 1065 FileSystem分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。<br /> 1066 点击Analysis的Tab页,先以进程去统计。<br /> 1067 <img src="../figures/ImportSo/filesystem_import_process.jpg" alt="GitHub Logo" /> 1068 </p> 1069 <ul class="fontColor"> 1070 <li> 1071 <pre class="smartperf-text fontColor light"> 1072ProcessName:进程名。 1073</pre 1074 > 1075 </li> 1076 <li> 1077 <pre class="smartperf-text fontColor light"> 1078Duration:总时长。 1079</pre 1080 > 1081 </li> 1082 <li> 1083 <pre class="smartperf-text fontColor light"> 1084%:总时长占比。 1085</pre 1086 > 1087 </li> 1088 </ul> 1089 <p class="fontColor"> 1090 以系统调用类型统计,如图显示的是grep进程下的Read和Write系统调用的时长占比饼图和Table表。<br /> 1091 <img src="../figures/ImportSo/filesystem_import_Type.jpg" alt="GitHub Logo" /> 1092 </p> 1093 <ul class="fontColor"> 1094 <li> 1095 <pre class="smartperf-text fontColor light"> 1096Type:系统调用类型(Read和Write)。 1097</pre 1098 > 1099 </li> 1100 <li> 1101 <pre class="smartperf-text fontColor light"> 1102Duration:系统调用的总时长。 1103</pre 1104 > 1105 </li> 1106 <li> 1107 <pre class="smartperf-text fontColor light"> 1108%:总时长占比。 1109</pre 1110 > 1111 </li> 1112 </ul> 1113 <p class="fontColor"> 1114 以线程统计,如图显示的是系统调用是Read类型的线程的占比饼图和Table表。<br /> 1115 <img src="../figures/ImportSo/filesystem_import_thread.jpg" alt="GitHub Logo" /> 1116 </p> 1117 <ul class="fontColor"> 1118 <li> 1119 <pre class="smartperf-text fontColor light"> 1120ThreadName:线程名。 1121</pre 1122 > 1123 </li> 1124 <li> 1125 <pre class="smartperf-text fontColor light"> 1126Duration:该线程的系统调用的总时长。 1127</pre 1128 > 1129 </li> 1130 <li> 1131 <pre class="smartperf-text fontColor light"> 1132%:总时长占比。 1133</pre 1134 > 1135 </li> 1136 </ul> 1137 <p class="fontColor"> 1138 以lib库统计,如图显示toybox的lib库的占比饼图和Table表。<br /> 1139 <img src="../figures/ImportSo/filesystem_import_lib.jpg" alt="GitHub Logo" /> 1140 </p> 1141 <ul class="fontColor"> 1142 <li> 1143 <pre class="smartperf-text fontColor light"> 1144Library:so的名称。 1145</pre 1146 > 1147 </li> 1148 <li> 1149 <pre class="smartperf-text fontColor light"> 1150Duration:该so的系统调用的总时长。 1151</pre 1152 > 1153 </li> 1154 <li> 1155 <pre class="smartperf-text fontColor light"> 1156%:总时长占比。 1157</pre 1158 > 1159 </li> 1160 </ul> 1161 <p class="fontColor"> 1162 以函数统计,如图显示0x558111afbc (toybox)的函数占比饼图和Table表。<br /> 1163 <img src="../figures/ImportSo/filesystem_import_func.jpg" alt="GitHub Logo" /> 1164 </p> 1165 <ul class="fontColor"> 1166 <li> 1167 <pre class="smartperf-text fontColor light"> 1168Function:函数名称。 1169</pre 1170 > 1171 </li> 1172 <li> 1173 <pre class="smartperf-text fontColor light"> 1174Duration:该函数的系统调用的总时长。 1175</pre 1176 > 1177 </li> 1178 <li> 1179 <pre class="smartperf-text fontColor light"> 1180%:总时长占比。 1181</pre 1182 > 1183 </li> 1184 </ul> 1185 <h2 class="mume-header fontColor">Bio文件的不同库函数占比</h2> 1186 1187 <p class="fontColor"> 1188 Bio分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非submit_bio第一条函数及其lib为每次分配归属的函数及lib库。<br /> 1189 点击Analysis的Tab页,先以进程去统计。<br /> 1190 <img src="../figures/ImportSo/bio_import_process.jpg" alt="GitHub Logo" /> 1191 </p> 1192 <ul class="fontColor"> 1193 <li> 1194 <pre class="smartperf-text fontColor light"> 1195ProcessName:进程名。 1196</pre 1197 > 1198 </li> 1199 <li> 1200 <pre class="smartperf-text fontColor light"> 1201Duration:总时长。 1202</pre 1203 > 1204 </li> 1205 <li> 1206 <pre class="smartperf-text fontColor light"> 1207%:总时长占比。 1208</pre 1209 > 1210 </li> 1211 </ul> 1212 <p class="fontColor"> 1213 以系统调用类型统计,如图显示的是jbd2/mmcblk0p11进程下的DATA_WRITE系统调用的时长占比饼图和Table表。<br /> 1214 <img src="../figures/ImportSo/bio_import_Type.jpg" alt="GitHub Logo" /> 1215 </p> 1216 <ul class="fontColor"> 1217 <li> 1218 <pre class="smartperf-text fontColor light"> 1219Type:系统调用类型。 1220</pre 1221 > 1222 </li> 1223 <li> 1224 <pre class="smartperf-text fontColor light"> 1225Duration:系统调用的总时长。 1226</pre 1227 > 1228 </li> 1229 <li> 1230 <pre class="smartperf-text fontColor light"> 1231%:总时长占比。 1232</pre 1233 > 1234 </li> 1235 </ul> 1236 <p class="fontColor"> 1237 以线程统计,如图显示的是系统调用是DATA_WRITE类型的线程的占比饼图和Table表。<br /> 1238 <img src="../figures/ImportSo/bio_import_thread.jpg" alt="GitHub Logo" /> 1239 </p> 1240 <ul class="fontColor"> 1241 <li> 1242 <pre class="smartperf-text fontColor light"> 1243ThreadName:线程名。 1244</pre 1245 > 1246 </li> 1247 <li> 1248 <pre class="smartperf-text fontColor light"> 1249Duration:该线程的系统调用的总时长。 1250</pre 1251 > 1252 </li> 1253 <li> 1254 <pre class="smartperf-text fontColor light"> 1255%:总时长占比。 1256</pre 1257 > 1258 </li> 1259 </ul> 1260 <p class="fontColor"> 1261 以lib库统计,如图显示kallsyms的lib库的占比饼图和Table表。<br /> 1262 <img src="../figures/ImportSo/bio_import_lib.jpg" alt="GitHub Logo" /> 1263 </p> 1264 <ul class="fontColor"> 1265 <li> 1266 <pre class="smartperf-text fontColor light"> 1267Library:so的名称。 1268</pre 1269 > 1270 </li> 1271 <li> 1272 <pre class="smartperf-text fontColor light"> 1273Duration:该so的系统调用的总时长。 1274</pre 1275 > 1276 </li> 1277 <li> 1278 <pre class="smartperf-text fontColor light"> 1279%:总时长占比。 1280</pre 1281 > 1282 </li> 1283 </ul> 1284 <p class="fontColor"> 1285 以函数统计,如图显示submit_bh的函数占比饼图和Table表。<br /> 1286 <img src="../figures/ImportSo/bio_import_func.jpg" alt="GitHub Logo" /> 1287 </p> 1288 <ul class="fontColor"> 1289 <li> 1290 <pre class="smartperf-text fontColor light"> 1291Function:函数名称。 1292</pre 1293 > 1294 </li> 1295 <li> 1296 <pre class="smartperf-text fontColor light"> 1297Duration:该函数的系统调用的总时长。 1298</pre 1299 > 1300 </li> 1301 <li> 1302 <pre class="smartperf-text fontColor light"> 1303%:总时长占比。 1304</pre 1305 > 1306 </li> 1307 </ul> 1308 <h2 class="mume-header fontColor">Page Fault文件的不同库函数占比</h2> 1309 1310 <p class="fontColor"> 1311 Page 1312 Fault分为五级统计,分别按照进程,系统调用类型,线程,lib库,函数进行统计。其中lib跟函数为每一条调用栈,从栈顶往下查找,非musl库与c++库的第一条函数及其lib为每次分配归属的函数及lib库。<br /> 1313 点击Analysis的Tab页,先以进程去统计。<br /> 1314 <img src="../figures/ImportSo/pagefault_import_process.jpg" alt="GitHub Logo" /> 1315 </p> 1316 <ul class="fontColor"> 1317 <li> 1318 <pre class="smartperf-text fontColor light"> 1319ProcessName:进程名。 1320</pre 1321 > 1322 </li> 1323 <li> 1324 <pre class="smartperf-text fontColor light"> 1325Duration:总时长。 1326</pre 1327 > 1328 </li> 1329 <li> 1330 <pre class="smartperf-text fontColor light"> 1331%:总时长占比。 1332</pre 1333 > 1334 </li> 1335 </ul> 1336 <p class="fontColor"> 1337 以系统调用类型统计,如图显示的是1.ui进程下的File Backed In和Copy On Writer系统调用的时长占比饼图和Table表。<br /> 1338 <img src="../figures/ImportSo/pagefault_import_Type.jpg" alt="GitHub Logo" /> 1339 </p> 1340 <ul class="fontColor"> 1341 <li> 1342 <pre class="smartperf-text fontColor light"> 1343Type:系统调用类型。 1344</pre 1345 > 1346 </li> 1347 <li> 1348 <pre class="smartperf-text fontColor light"> 1349Duration:系统调用的总时长。 1350</pre 1351 > 1352 </li> 1353 <li> 1354 <pre class="smartperf-text fontColor light"> 1355%:总时长占比。 1356</pre 1357 > 1358 </li> 1359 </ul> 1360 <p class="fontColor"> 1361 以线程统计,如图显示的是系统调用是File Backed In类型的线程的占比饼图和Table表。<br /> 1362 <img src="../figures/ImportSo/pagefault_import_thread.jpg" alt="GitHub Logo" /> 1363 </p> 1364 <ul class="fontColor"> 1365 <li> 1366 <pre class="smartperf-text fontColor light"> 1367ThreadName:线程名。 1368</pre 1369 > 1370 </li> 1371 <li> 1372 <pre class="smartperf-text fontColor light"> 1373Duration:该线程的系统调用的总时长。 1374</pre 1375 > 1376 </li> 1377 <li> 1378 <pre class="smartperf-text fontColor light"> 1379%:总时长占比。 1380</pre 1381 > 1382 </li> 1383 </ul> 1384 <p class="fontColor"> 1385 以lib库统计,如图显示各lib库的占比饼图和Table表。<br /> 1386 <img src="../figures/ImportSo/pagefault_import_lib.jpg" alt="GitHub Logo" /> 1387 </p> 1388 <ul class="fontColor"> 1389 <li> 1390 <pre class="smartperf-text fontColor light"> 1391Library:so的名称。 1392</pre 1393 > 1394 </li> 1395 <li> 1396 <pre class="smartperf-text fontColor light"> 1397Duration:该so的系统调用的总时长。 1398</pre 1399 > 1400 </li> 1401 <li> 1402 <pre class="smartperf-text fontColor light"> 1403%:总时长占比。 1404</pre 1405 > 1406 </li> 1407 </ul> 1408 <p class="fontColor"> 1409 以函数统计,如图显示各函数占比饼图和Table表。<br /> 1410 <img src="../figures/ImportSo/pagefault_import_func.jpg" alt="GitHub Logo" /> 1411 </p> 1412 <ul class="fontColor"> 1413 <li> 1414 <pre class="smartperf-text fontColor light"> 1415Function:函数名称。 1416</pre 1417 > 1418 </li> 1419 <li> 1420 <pre class="smartperf-text fontColor light"> 1421Duration:该函数的系统调用的总时长。 1422</pre 1423 > 1424 </li> 1425 <li> 1426 <pre class="smartperf-text fontColor light"> 1427%:总时长占比。 1428</pre 1429 > 1430 </li> 1431 </ul> 1432 </div> 1433 1434 <script> 1435 window.onload = () => { 1436 let isDark = window.location.search; 1437 if (isDark.indexOf('?') != -1) { 1438 isDark = isDark.substr(1, isDark.length - 1); 1439 } 1440 if (isDark == 'true') { 1441 document.getElementById('body').setAttribute('style', 'background-color:#272C34;'); 1442 let header = document.getElementsByClassName('fontColor'); 1443 for (let i = 0; i < header.length; i++) { 1444 header[i].style.color = '#fff'; 1445 } 1446 let lightBackGround = document.getElementsByClassName('light'); 1447 for (let i = 0; i < lightBackGround.length; i++) { 1448 lightBackGround[i].style.backgroundColor = '#32373F'; 1449 } 1450 } 1451 }; 1452 </script> 1453 </body> 1454</html> 1455