1<!DOCTYPE html> 2<html> 3<head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 5 <title>quickstart_arkts</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">Cpuprofiler抓取和展示说明</h1> 793 794 <p class="fontColor">Cpuprofiler模板帮助ArkTs开发和测试分析虚拟机层执行开销大问题,提供Ts层耗时长函数和阶段。</p> 795 <h2 class="mume-header fontColor">Cpuprofiler的抓取</h2> 796 797 <h4 class="mume-header fontColor">Cpuprofiler的抓取配置参数</h4> 798 799 <p class="fontColor"> 800 打开Start Ark Ts Record总开关下面的Start cpu profiler开关抓取cpuprofiler数据。<br/> 801 <img src="../figures/arkts/cpuprofilerconfig.jpg" alt="GitHub Logo"/> 802 </p> 803 <h3 class="mume-header fontColor">Cpuprofiler展示说明</h3> 804 805 <p class="fontColor"> 806 将抓取的cpuprofiler文件导入到smartperf中,查看Ts层耗时长的函数和阶段。<br/> 807 <img src="../figures/arkts/cpuprofilerrow.jpg" alt="GitHub Logo"/> 808 </p> 809 <h3 class="mume-header fontColor">Cpuprofiler的泳道图悬浮显示</h3> 810 811 <p class="fontColor"> 812 鼠标放到泳道图的Slice上会有悬浮框显示。<br/> 813 <img src="../figures/arkts/cpuprofilertip.jpg" alt="GitHub Logo"/> 814 </p> 815 <ul class="fontColor"> 816 <li> 817 <pre class="smartperf-text fontColor light"> 818Name : 函数名。 819</pre 820> 821 </li> 822 <li> 823 <pre class="smartperf-text fontColor light"> 824Self Time: 函数自身执行时间(不包含其调用者)。 825</pre 826> 827 </li> 828 <li> 829 <pre class="smartperf-text fontColor light"> 830Total Time : 函数自身及调用者的调用时间总和。 831</pre 832> 833 </li> 834 <li> 835 <pre class="smartperf-text fontColor light"> 836Url : 函数所在的文件名称。 837</pre 838> 839 </li> 840 </ul> 841 <h3 class="mume-header fontColor">Cpuprofiler泳道图的点选和框选功能</h3> 842 843 <p class="fontColor"> 844 点选或者框选泳道图上函数名的Slice,会显示Js Profiler Statistics,Js Profiler CallTree,Js Profiler 845 BottomUp的Tab页信息。<br/> 846 Js Profiler Statistics的Tab页显示数据的维度信息,以饼图和Table表的方式展示,如下图:<br/> 847 <img src="../figures/arkts/cpuprofilerselects.jpg" alt="GitHub Logo"/><br/> 848 <img src="../figures/arkts/cpuprofilerdrags.jpg" alt="GitHub Logo"/> 849 </p> 850 <ul class="fontColor"> 851 <li> 852 <pre class="smartperf-text fontColor light"> 853Type : 维度名称,有九大维度(NAPI、ARKUI_ENGINE、BUTLTIN、GC、AINT、CINT、AOT、RUNTIME、OTHER)。 854</pre 855> 856 </li> 857 <li> 858 <pre class="smartperf-text fontColor light"> 859Total : 时间。 860</pre 861> 862 </li> 863 <li> 864 <pre class="smartperf-text fontColor light"> 865% : 时间占比。 866</pre 867> 868 </li> 869 </ul> 870 <p class="fontColor"> 871 Js Profiler CallTree的Tab页把name,url,depth,parent相同的函数合并,构建成一个top 872 down的树结构,以树形表格的形式显示,表格中显示函数调用关系,如下图:<br/> 873 <img src="../figures/arkts/cpuprofilerselectc.jpg" alt="GitHub Logo"/><br/> 874 <img src="../figures/arkts/cpuprofilerdragc.jpg" alt="GitHub Logo"/> 875 </p> 876 <ul class="fontColor"> 877 <li> 878 <pre class="smartperf-text fontColor light"> 879Symbol : 函数名。 880</pre 881> 882 </li> 883 <li> 884 <pre class="smartperf-text fontColor light"> 885Self Time: 函数自身执行时间(不包含其调用者)。 886</pre 887> 888 </li> 889 <li> 890 <pre class="smartperf-text fontColor light"> 891Total Time : 函数自身及调用者的调用时间总和。 892</pre 893> 894 </li> 895 </ul> 896 <p class="fontColor"> 897 Js Profiler BottomUp的Tab页把name,url,depth,parent相同的函数合并,构建成一个bottom 898 up的树结构,以树形表格的形式显示,只不过作为根节点的是被调用者,表格中显示函数被调用关系,如下图:<br/> 899 <img src="../figures/arkts/cpuprofilerselectb.jpg" alt="GitHub Logo"/><br/> 900 <img src="../figures/arkts/cpuprofilerdragb.jpg" alt="GitHub Logo"/> 901 </p> 902 <ul class="fontColor"> 903 <li> 904 <pre class="smartperf-text fontColor light"> 905Symbol : 函数名。 906</pre 907> 908 </li> 909 <li> 910 <pre class="smartperf-text fontColor light"> 911Self Time: 函数自身执行时间(不包含其调用者)。 912</pre 913> 914 </li> 915 <li> 916 <pre class="smartperf-text fontColor light"> 917Total Time : 函数自身及调用者的调用时间总和。 918</pre 919> 920 </li> 921 </ul> 922 <h3 class="mume-header fontColor">Cpuprofiler的Heaviest Stack功能</h3> 923 924 <p class="fontColor"> 925 Js Profiler CallTree的Tab页的Heaviest Stack表格显示的是选中的函数的完整的调用栈。<br/> 926 <img src="../figures/arkts/cpuprofilerheavic.jpg" alt="GitHub Logo"/><br/> 927 Js Profiler BottomUp的Tab页的Heaviest Stack表格显示的是选中的函数的完整的逆序调用栈。<br/> 928 <img src="../figures/arkts/cpuprofilerheavib.jpg" alt="GitHub Logo"/> 929 </p> 930 <ul class="fontColor"> 931 <li> 932 <pre class="smartperf-text fontColor light"> 933Symbol : 函数名。 934</pre 935> 936 </li> 937 <li> 938 <pre class="smartperf-text fontColor light"> 939Total Time : 函数自身及调用者的调用时间总和。 940</pre 941> 942 </li> 943 <li> 944 <pre class="smartperf-text fontColor light"> 945% : 总时间占比。 946</pre 947> 948 </li> 949 </ul> 950</div> 951 952<script> 953 window.onload = () => { 954 let isDark = window.location.search; 955 if (isDark.indexOf('?') != -1) { 956 isDark = isDark.substr(1, isDark.length - 1); 957 } 958 if (isDark == 'true') { 959 document.getElementById('body').setAttribute('style', 'background-color:#272C34;'); 960 let header = document.getElementsByClassName('fontColor'); 961 for (let i = 0; i < header.length; i++) { 962 header[i].style.color = '#fff'; 963 } 964 let lightBackGround = document.getElementsByClassName('light'); 965 for (let i = 0; i < lightBackGround.length; i++) { 966 lightBackGround[i].style.backgroundColor = '#32373F'; 967 } 968 } 969 }; 970</script> 971</body> 972</html> 973