summaryrefslogtreecommitdiff
path: root/deps/v8/tools/heap-stats/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/tools/heap-stats/index.html')
-rw-r--r--deps/v8/tools/heap-stats/index.html88
1 files changed, 88 insertions, 0 deletions
diff --git a/deps/v8/tools/heap-stats/index.html b/deps/v8/tools/heap-stats/index.html
new file mode 100644
index 0000000000..3c2e62b6d0
--- /dev/null
+++ b/deps/v8/tools/heap-stats/index.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<!-- Copyright 2018 the V8 project authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file. -->
+
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>V8 Heap Statistics</title>
+ <link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
+ <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
+
+ <link rel="import" href="details-selection.html">
+ <link rel="import" href="global-timeline.html">
+ <link rel="import" href="trace-file-reader.html">
+
+ <style type="text/css">
+
+body {
+ font-family: 'Roboto', sans-serif;
+ margin-left: 5%;
+ margin-right: 5%;
+}
+
+ </style>
+ <script type="text/javascript">
+
+'use strict';
+
+google.charts.load('current', {'packages':['line', 'corechart']});
+
+function $(id) { return document.querySelector(id); }
+
+function removeAllChildren(node) {
+ while (node.firstChild) {
+ node.removeChild(node.firstChild);
+ }
+}
+
+let state = Object.create(null);
+
+function globalDataChanged(e) {
+ state.data = e.detail;
+ // Emit one entry with the whole model for debugging purposes.
+ console.log(state.data);
+ state.selection = null;
+ $('#global-timeline').selection = state.selection;
+ $('#global-timeline').data = state.data;
+ $('#type-details').selection = state.selection;
+ $('#type-details').data = state.data;
+ $('#details-selection').data = state.data;
+}
+
+function globalSelectionChangedA(e) {
+ state.selection = e.detail;
+ $('#global-timeline').selection = state.selection;
+ $('#type-details').selection = state.selection;
+}
+
+ </script>
+</head>
+
+<body>
+ <trace-file-reader onchange="globalDataChanged(event)"></trace-file-reader>
+ <h1>V8 Heap Statistics</h1>
+ <p>Visualize object statistics that have been gathered using</p>
+ <ul>
+ <li><code>--trace-gc-object-stats on V8</code></li>
+ <li>
+ <a
+ href="https://www.chromium.org/developers/how-tos/trace-event-profiling-tool">Chrome's
+ tracing infrastructure</a> collecting data for the category
+ <code>v8.gc_stats</code>. The trace file needs to be unpacked (e.g. using
+ <code>gunzip</code>).
+ </li>
+ </ul>
+ <p>
+ Note that the visualizer needs to run on a web server due to HTML imports
+ requiring <a
+ href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a>.
+ </p>
+ <details-selection id="details-selection" onchange="globalSelectionChangedA(event)"></details-selection>
+ <global-timeline id="global-timeline"></global-timeline>
+ <type-details id="type-details"></type-details>
+</body>
+
+</html>