Explicitly add python-numpy dependency to install-build-deps.
[chromium-blink-merge.git] / tools / binary_size / legacy_template / index.html
blobb73958a17e0d6e77ddd6cc414f9ef882c51dd131
1 <!DOCTYPE html>
2 <!--
3 Copyright 2014 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7 <html>
8 <head>
9 <title>Binary Size Analysis</title>
10 <link rel='stylesheet' href='webtreemap/webtreemap.css'>
11 <style>
12 body { font-family: sans-serif; }
13 tt, pre { font-family: WebKitWorkaround, monospace; }
14 #map {
15 margin: 0 auto;
16 position: relative;
17 cursor: pointer;
18 -webkit-user-select: none;
20 #table {
21 border: 1px solid black;
23 .treemaplegend {
24 margin: 0 auto;
25 position: relative;
27 .webtreemap-symbol-vtable {
28 background: #FFFFAA;
30 .webtreemap-node:hover {
31 border-color: red;
32 background: linear-gradient(rgb(240,240,200), rgb(180,180,200));
34 </style>
35 <script src='webtreemap/webtreemap.js'></script>
36 <script src='treemap-dump.js'></script>
37 <script src='largest-symbols.js'></script>
38 <script src='largest-sources.js'></script>
39 <script src='largest-vtables.js'></script>
40 </head>
41 <body onload='show_report_treemap()'>
42 <div style='text-align: center; margin-bottom: 2em;'>
43 <h1>Binary Size Analysis</h1>
44 <a href='#' onclick='show_report_treemap()'>Spatial Treemap</a>
46 <a href='#' onclick='show_report_largest_sources()'>Largest Sources</a>
48 <a href='#' onclick='show_report_largest_symbols()'>Largest Symbols</a>
50 <a href='#' onclick='show_report_largest_vtables()'>Largest VTables</a>
51 </div>
52 <div id='report'></div>
53 <script>
54 function escape(str) {
55 return str.replace(/&/g, '&amp;')
56 .replace(/"/g, '&quot;')
57 .replace(/</g, '&lt;')
58 .replace(/>/g, '&gt;');
61 var treemap_width = 800;
62 var treemap_height = 450;
63 function show_report_treemap() {
64 console.log('displaying treemap')
65 var div = document.getElementById('report');
66 var w = window.treemap_width;
67 var h = window.treemap_height;
68 div.innerHTML = '<div style=\'text-align: center;\'>' +
69 '<button onclick=\'zoomInTreemap()\'>Bigger (More Detail)</button>' +
70 ', <button onclick=\'zoomOutTreemap()\'>Smaller (Less Detail)</button>' +
71 ' or resize to: ' +
72 '<input type=text size=5 id=treemap_width value=' + w + '>x' +
73 '<input type=text size=5 id=treemap_height value=' + h + '>' +
74 '<button onclick=\'resizeTreemap()\'>Go</button>' +
75 '<br><em>Click on a box to zoom in and reveal more detail. ' +
76 'Click on the outermost box to zoom out.</em>' +
77 '<br>Legend: <table border=1 class=\'treemaplegend\' cellborder=1><tr>' +
78 '<td class=\'webtreemap-symbol-bss\'>BSS</td>' +
79 '<td class=\'webtreemap-symbol-data\'>Data</td>' +
80 '<td class=\'webtreemap-symbol-code\'>Code</td>' +
81 '<td class=\'webtreemap-symbol-read-only_data\'>RO Data</td>' +
82 '<td class=\'webtreemap-symbol-weak_symbol\'>Weak</td>' +
83 '<td class=\'webtreemap-symbol-vtable\'>VTable</td>' +
84 '</tr></table>' +
85 '<br>' +
86 '<div id=\'map\' ' +
87 'style=\'width: ' + w + 'px; height: ' + h + 'px;\'>' +
88 '</div></div>';
89 var map = document.getElementById('map');
90 appendTreemap(map, kTree);
93 function zoomInTreemap() {
94 window.treemap_width = Math.round(window.treemap_width * 1.25);
95 window.treemap_height = Math.round(window.treemap_height * 1.25);
96 show_report_treemap();
99 function zoomOutTreemap() {
100 window.treemap_width = Math.round(window.treemap_width / 1.25);
101 window.treemap_height = Math.round(window.treemap_height / 1.25);
102 show_report_treemap();
105 function resizeTreemap() {
106 window.treemap_width = document.getElementById('treemap_width').value;
107 window.treemap_height = document.getElementById('treemap_height').value;
108 show_report_treemap();
111 function show_report_largest_symbols() {
112 console.log('displaying largest-symbols report')
113 var div = document.getElementById('report');
114 div.innerHTML = '<div><table id=\'list\' border=1><tr>' +
115 '<th>Rank</th><th>Size</th><th>Type</th><th>Source</th>' +
116 '</tr></table>';
117 var list = document.getElementById('list');
118 for (var i = 0; i < largestSymbols.length; i++) {
119 var record = largestSymbols[i];
120 var link;
121 if (record.location.indexOf('out') == 0) {
122 link = record.location;
123 } else {
124 link = '<a href="https://code.google.com/p/chromium/codesearch#chromium/src/'
125 + record.location + '">' + escape(record.location) + '</a>';
127 list.innerHTML += '<tr>'
128 + '<td>' + (i+1) + '</td>'
129 + '<td>' + escape(record.size) + '</td>'
130 + '<td style=\'white-space: nowrap;\'>' + escape(record.type) + '</td>'
131 + '<td>' + link + ':<br>'
132 + escape(record.symbol) + '</td>'
133 + '</tr>';
137 function show_report_largest_sources() {
138 console.log('displaying largest-sources report')
139 var div = document.getElementById('report');
140 div.innerHTML = '<div><table id=\'list\' border=1><tr>' +
141 '<th>Rank</th><th>Size</th><th>Symbol Count</th><th>Source</th>' +
142 '</tr></table>';
143 var list = document.getElementById('list');
144 for (var i = 0; i < largestSources.length; i++) {
145 var record = largestSources[i];
146 var link;
147 if (record.location.indexOf('out') == 0) {
148 link = record.location;
149 } else {
150 link = '<a href="https://code.google.com/p/chromium/codesearch#chromium/src/'
151 + record.location + '">' + escape(record.location) + '</a>';
154 list.innerHTML += '<tr>'
155 + '<td>' + (i+1) + '</td>'
156 + '<td>' + escape(record.size) + '</td>'
157 + '<td>' + escape(record.symbol_count) + '</td>'
158 + '<td>' + link + '</td>'
159 + '</tr>';
163 function show_report_largest_vtables() {
164 console.log('displaying largest-vtables report')
165 var div = document.getElementById('report');
166 div.innerHTML = '<div><table id=\'list\' border=1><tr>' +
167 '<th>Rank</th><th>Size</th><th>Symbol</th><th>Source</th>' +
168 '</tr></table>';
169 var list = document.getElementById('list');
170 for (var i = 0; i < largestVTables.length; i++) {
171 var record = largestVTables[i];
172 var link;
173 if (record.location.indexOf('out') == 0) {
174 link = record.location;
175 } else {
176 link = '<a href="https://code.google.com/p/chromium/codesearch#chromium/src/'
177 + record.location + '">' + escape(record.location) + '</a>';
180 list.innerHTML += '<tr>'
181 + '<td>' + (i+1) + '</td>'
182 + '<td>' + escape(record.size) + '</td>'
183 + '<td>' + escape(record.symbol) + '</td>'
184 + '<td>' + link + '</td>'
185 + '</tr>';
188 </script>
189 </body>
190 </html>