|
|
|
<!DOCTYPE html>
|
|
|
|
<!-- Copyright 2013 the V8 project authors. All rights reserved.
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
modification, are permitted provided that the following conditions are
|
|
|
|
met:
|
|
|
|
* Redistributions of source code must retain the above copyright
|
|
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
* Redistributions in binary form must reproduce the above
|
|
|
|
copyright notice, this list of conditions and the following
|
|
|
|
disclaimer in the documentation and/or other materials provided
|
|
|
|
with the distribution.
|
|
|
|
* Neither the name of Google Inc. nor the names of its
|
|
|
|
contributors may be used to endorse or promote products derived
|
|
|
|
from this software without specific prior written permission.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
|
|
|
|
|
|
|
|
<html lang="en-us">
|
|
|
|
<head>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
|
|
<title>V8 profile log plotter</title>
|
|
|
|
<link rel="stylesheet" type="text/css" href="profviz.css">
|
|
|
|
<script src="profviz.js"></script>
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body onload="onload()">
|
|
|
|
<div id="content">
|
|
|
|
|
|
|
|
<img src="" id="plot" type="image/svg+xml" class="display"
|
|
|
|
width="1200" height="600" class="float-right"/>
|
|
|
|
|
|
|
|
<textarea id="prof" class="display" disabled=true></textarea>
|
|
|
|
<br/>
|
|
|
|
|
|
|
|
<table width="1200">
|
|
|
|
<tr>
|
|
|
|
<td width="330">
|
|
|
|
<button id="start" onclick="start()">
|
|
|
|
Start
|
|
|
|
</button>
|
|
|
|
<button id="reset" onclick="ui.reset(); worker.reset();">
|
|
|
|
Reset
|
|
|
|
</button>
|
|
|
|
<button id="toggledisplay" onclick="ui.toggle();">
|
|
|
|
Show profile
|
|
|
|
</button>
|
|
|
|
</td>
|
|
|
|
<td width="220">
|
|
|
|
<input type="file" id="file" onchange="ui.reset();"/>
|
|
|
|
</td>
|
|
|
|
<td width="300">
|
|
|
|
<label title="You can manually choose the range
|
|
|
|
to plot only part of the log file.">
|
|
|
|
<span class="tooltip">Range</span>:
|
|
|
|
</label>
|
|
|
|
<input type="text" id="range_start" class="range"/>
|
|
|
|
<label>to</label>
|
|
|
|
<input type="text" id="range_end" class="range"/>
|
|
|
|
</td>
|
|
|
|
<td width="350">
|
|
|
|
<label title="We model profiling overhead by accounting a constant
|
|
|
|
execution delay to each log entry. Adjust to better suit
|
|
|
|
your computer's performance.">
|
|
|
|
<span class="tooltip">Delay per log entry</span>:
|
|
|
|
</label>
|
|
|
|
<input type="text" id="distortion" class="range" value="4500"/>
|
|
|
|
<label>picoseconds</label>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
<br/>
|
|
|
|
<textarea class="log" id="log" rows="8" disabled=true></textarea>
|
|
|
|
|
|
|
|
<div class="text">
|
|
|
|
<h1>
|
|
|
|
<a href="javascript:ui.info('instructions');" class="unroll">
|
|
|
|
Instructions
|
|
|
|
</a>
|
|
|
|
</h1>
|
|
|
|
<div id="instructions">
|
|
|
|
<ol>
|
|
|
|
<li>
|
|
|
|
Run V8 with
|
|
|
|
<span class="tt">--prof --log-timer-events</span>,
|
|
|
|
or alternatively,<br/>
|
|
|
|
Chrome with
|
|
|
|
<span class="tt">
|
|
|
|
--no-sandbox --js-flags="--prof --log-timer-events"
|
|
|
|
</span> to produce <span class="tt">v8.log</span>.
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
Open
|
|
|
|
<span class="tt">v8.log</span>
|
|
|
|
on this page. Don't worry, it won't be uploaded anywhere.
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
Click "Start" to start number crunching. This will take a while.
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
Click "Show plot/profile" to switch between the statistical profile and
|
|
|
|
the timeline plot.<br/>
|
|
|
|
C++ items are missing in the statistical profile because symbol
|
|
|
|
information is not available.<br>
|
|
|
|
Consider using the
|
|
|
|
<a href="https://code.google.com/p/v8/wiki/V8Profiler">
|
|
|
|
command-line utility
|
|
|
|
</a> instead.
|
|
|
|
</li>
|
|
|
|
</ol>
|
|
|
|
If you expect multiple V8 instances to run concurrently, for example
|
|
|
|
with several tabs in Chrome,<br/>
|
|
|
|
add the V8 flag <span class="tt">--logfile=v8.%p.log</span>
|
|
|
|
so that each instance writes to its own log file.
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="text">
|
|
|
|
<h1>
|
|
|
|
<a href="javascript:ui.info('credits');" class="unroll">
|
|
|
|
Credits
|
|
|
|
</a>
|
|
|
|
</h1>
|
|
|
|
<div id="credits">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
Christian Huettig for the
|
|
|
|
<a href="http://gnuplot.respawned.com/">Javascript port</a>
|
|
|
|
of Gnuplot 4.6.3.
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
The
|
|
|
|
<a href="https://github.com/kripken/emscripten">Emscripten compiler</a>
|
|
|
|
that made the port possible.
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
The <a href="http://www.gnuplot.info/">Gnuplot project</a>.
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
The <a href="https://developers.google.com/v8/">V8 project</a>.
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|