1<!DOCTYPE html>
2<!-- Copyright 2017 the V8 project authors. All rights reserved.
3Use of this source code is governed by a BSD-style license that can be
4found in the LICENSE file. -->
5
6<html lang="en">
7
8<head>
9  <meta charset="utf-8"/>
10  <title>V8 Tick Processor</title>
11  <link rel="stylesheet" href="profview.css">
12  <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
13  <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
14      rel="stylesheet">
15
16  <script src="profview.js"></script>
17  <script src="profile-utils.js"></script>
18</head>
19
20<body onLoad="main.onLoad();" onResize="main.onResize();">
21<h3 style="margin-top: 2px;">
22  Chrome V8 profiling log processor
23</h3>
24
25<input type="file" id="fileinput" /><div id="source-status"></div>
26<br>
27<hr>
28
29<div id="help">
30  Usage:
31
32  <br>
33  <br>
34
35  Record the profile:
36  <pre>
37  d8 --prof your-file.js
38  </pre>
39
40  Then process the file (this resolves C++ symbols and produces
41  a JSON file with the profile data):
42
43  <pre>
44  &lt;v8-dir>/tools/linux-tick-processor --preprocess v8.log > v8.json
45  </pre>
46
47  To view the profile, click the <i>Choose file</i> button above and choose
48  the file in the dialog box.
49
50  <br>
51  <br>
52  For recording a profile from Chrome use:
53  <pre>
54    --no-sandbox --js-flags=--prof
55  </pre>
56
57  If running on Android use also use --single-process:
58  <pre>
59    --single-process --no-sandbox --js-flags=--prof
60  </pre>
61
62  If the profile is from Android pass the unstripped Chrome library to
63  resolve C++ symbols when processing the file using linux-tick-processor.
64  <pre>
65  &lt;v8-dir>/tools/linux-tick-processor --preprocess --apk-embedded-library=./out/Release/lib.unstripped/libchrome.so v8.log > v8.json
66  </pre>
67
68  More detailed instructions for Android here: https://v8.dev/docs/profile-chromium#android
69</div>
70
71<div id="timeline" style="display : none">
72  <div>
73  <canvas id="timeline-canvas"/>
74  </div>
75  <table>
76    <tr id="timeline-legend">
77    </tr>
78  </table>
79  <div>
80    Current code object: <span id="timeline-currentCode"></span>
81    <button id="source-viewer-hide-button">Hide source</button>
82  </div>
83  <div>
84    <table id="source-viewer"> </table>
85  </div>
86</div>
87
88<br>
89
90<div id="mode-bar" style="display : none">
91</div>
92
93<div id="calltree" style="display : none">
94  <br>
95  Attribution:
96  <select id="calltree-attribution">
97  </select>
98  Top-level tree buckets:
99  <select id="calltree-categories">
100  </select>
101  Sort by:
102  <select id="calltree-sort">
103  </select>
104
105  <br>
106  <br>
107
108  <table id="calltree-table" class="calltree">
109    <thead>
110      <tr>
111        <th class="numeric">Time (incl)</th>
112        <th class="numeric">% of parent</th>
113        <th id="calltree-table-own-time-header" class="numeric">Own time</th>
114        <th>Function/category</th>
115        <th class="numeric">Ticks</th>
116        <th id="calltree-table-own-ticks-header" class="numeric">Own ticks</th>
117      </tr>
118    </thead>
119    <tbody>
120    </tbody>
121  </table>
122</div>
123
124<div id="summary" style="display : none">
125</div>
126
127<div id="function-details" style="display : none">
128</div>
129
130<p style="font-style:italic;">
131<br>
132<br>
133<br>
134Copyright the V8 Authors - Last change to this page: 2020/12/04
135</p>
136
137</body>
138</html>
139