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 <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 <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