Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Side by Side Diff: tools/win/sizeviewer/main.js

Issue 801123002: Improve sizeviewer for Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/win/sizeviewer/favicon.png ('k') | tools/win/sizeviewer/sizeviewer.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 google.load("visualization", "1", {packages:["treemap"]});
2 google.setOnLoadCallback(drawChart);
3 function drawChart() {
4 var data = google.visualization.arrayToDataTable(g_raw_data);
5
6 tree = new google.visualization.TreeMap(
7 document.getElementById('chart_div'));
8
9 tree.draw(data, {
10 minColor: '#faa',
11 midColor: '#f77',
12 maxColor: '#f44',
13 headerHeight: 20,
14 fontColor: 'black',
15 showScale: true,
16 minColorValue: 0,
17 maxColorValue: g_maxval,
18 generateTooltip: tooltip
19 });
20
21 // Update from 'Loading'.
22 document.getElementById('title').innerText = g_dllname;
23
24 // Set favicon.
25 var doc_head = document.getElementsByTagName('head')[0];
26 var new_link = document.createElement('link');
27 new_link.rel = 'shortcut icon';
28 new_link.href = 'data:image/png;base64,'+g_favicon;
29 doc_head.appendChild(new_link);
30
31 var cur_line_sizes = null;
32 function nodeSelect() {
33 symlist.setValue('');
34 var selected = tree.getSelection();
35 if (selected.length > 0) {
36 var filename = data.getValue(selected[0].row, 0);
37 var size = data.getValue(selected[0].row, 2);
38 if (size >= 0) {
39 // Is a leaf.
40 cur_line_sizes = g_line_data[filename];
41 var body = g_file_contents[filename];
42 editor.setValue(body);
43 var maximum_size = 0;
44 for (var line in cur_line_sizes) {
45 maximum_size = Math.max(maximum_size, cur_line_sizes[line][0]);
46 }
47 for (var line in cur_line_sizes) {
48 var symbol_indices = cur_line_sizes[line][1];
49 var symbols = [];
50 for (var i = 0; i < symbol_indices.length; ++i) {
51 symbols.push(g_symbol_list[symbol_indices[i]]);
52 }
53 var size = cur_line_sizes[line][0];
54 // Zero based lines.
55 var line_num = parseInt(line, 10) - 1;
56 if (size >= maximum_size * 0.9)
57 editor.addLineClass(line_num, 'gutter', 'linebg-top10');
58 else if (size >= maximum_size * 0.75)
59 editor.addLineClass(line_num, 'gutter', 'linebg-top25');
60 else if (size >= maximum_size * 0.5)
61 editor.addLineClass(line_num, 'gutter', 'linebg-top50');
62 function addTag() {
63 var line_num = parseInt(line, 10);
64 var symbols_tooltip = symbols.join('\n');
65 var num_syms = symbols.length;
66 // markText wants 0-based lines.
67 var mark = editor.markText({line: line_num - 1, ch: 0},
68 {line: line_num, ch: 0},
69 { className: 'symbol-tag' });
70 CodeMirror.on(mark, 'beforeCursorEnter', function(e) {
71 symlist.setValue(num_syms +
72 ' symbol(s) contributing to line ' +
73 line_num + ':\n' +
74 symbols_tooltip);
75 });
76 }
77 addTag();
78 }
79 }
80 }
81 }
82 google.visualization.events.addListener(tree, 'select', nodeSelect);
83
84 editor = CodeMirror.fromTextArea(
85 document.getElementById('source_view'), {
86 readOnly: "nocursor",
87 mode: { name: 'text/x-c++src' },
88 lineNumbers: true,
89 lineNumberFormatter: weightGetter
90 });
91 editor.setSize(850, 600);
92
93 symlist = CodeMirror.fromTextArea(
94 document.getElementById('symlist_view'), {
95 readOnly: "nocursor",
96 mode: { name: 'none' },
97 lineNumbers: false
98 });
99 symlist.setSize(850, 150);
100
101 function tooltip(row, size, value) {
102 return '<div style="background:#fd9;' +
103 ' padding:10px; border-style:solid"><b>' +
104 data.getValue(row, 0) + '</b><br>' +
105 data.getColumnLabel(2) +
106 ' (total value of this cell and its children): ' + size +
107 '<br>';
108 }
109
110 function weightGetter(line) {
111 if (cur_line_sizes && cur_line_sizes.hasOwnProperty('' + line)) {
112 return cur_line_sizes['' + line][0] + ' bytes ' + line;
113 }
114 return line;
115 }
116 }
OLDNEW
« no previous file with comments | « tools/win/sizeviewer/favicon.png ('k') | tools/win/sizeviewer/sizeviewer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698