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