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

Side by Side Diff: chrome/test/data/extensions/samples/benchmark/options.html

Issue 119361: Add a benchmark extension. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 6 months 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 <head>
2 <title>Page Benchmark Options</title>
3 <script src="jst/util.js" type="text/javascript"></script>
4 <script src="jst/jsevalcontext.js" type="text/javascript"></script>
5 <script src="jst/jstemplate.js" type="text/javascript"></script>
6 <script src="jst/jstemplate_example.js" type="text/javascript"></script>
7
8 <style>
9 body {
10 font-size: 84%;
11 font-family: Arial, Helvetica, sans-serif;
12 padding: 0.75em;
13 margin: 0;
14 min-width: 45em;
15 }
16
17 h1 {
18 font-size: 110%;
19 font-weight: bold;
20 color: #4a8ee6;
21 letter-spacing: -1px;
22 padding: 0;
23 margin: 0;
24 }
25
26 div#header {
27 padding: 0.75em 1em;
28 padding-top: 0.6em;
29 padding-left: 10;
30 margin-bottom: 0.75em;
31 position: relative;
32 overflow: hidden;
33 background: #5296de;
34 -webkit-background-size: 100%;
35 border: 1px solid #3a75bd;
36 -webkit-border-radius: 6px;
37 color: white;
38 text-shadow: 0 0 2px black;
39 }
40 div#header h1 {
41 padding-left: 37px;
42 margin: 0;
43 display: inline;
44 color: white;
45 }
46 div#header p {
47 font-size: 84%;
48 font-style: italic;
49 padding: 0;
50 margin: 0;
51 color: white;
52 padding-left: 0.4em;
53 display: inline;
54 }
55
56 table.list {
57 font-size: 84%;
58 table-layout: fixed;
59 }
60
61 table.list:not([class*='filtered']) tr:nth-child(odd) td:not([class*='filtered'] ) {
62 background: #eff3ff;
63 }
64
65 table.list th {
66 padding: 0 0.5em;
67 vertical-align: top;
68 font-weight: bold;
69 color: #315d94;
70 color: black;
71 white-space: nowrap;
72 text-align: center;
73 }
74
75 .avg {
76 font-weight: bold;
77 text-align: center;
78 }
79
80 .data {
81 text-align: left;
82 white-space: nowrap;
83 }
84
85 .bggraph {
86 background-color: #faa;
87 white-space: nowrap;
88 }
89 </style>
90
91 <script>
92
93 var max_sample = 0;
94
95 Array.max = function(array) {
96 return Math.max.apply( Math, array );
97 }
98
99 Array.min = function(array) {
100 return Math.min.apply( Math, array );
101 };
102
103 // Compute the average of an array
104 Array.avg = function(array) {
105 var count = array.length;
106 var sum = 0;
107 for (var i = 0; i < count; i++) {
108 sum += array[i];
109 }
110 return (sum / count).toFixed(1);
111 }
112
113 // Compute the standard deviation of an array
114 Array.stddev = function(array) {
115 var count = array.length;
116 var mean = Array.avg(array);
117 var variance = 0;
118 for (var i = 0; i < count; i++) {
119 var deviation = mean - array[i];
120 variance = variance + deviation * deviation;
121 }
122 variance = variance / count;
123 return Math.sqrt(variance).toFixed(2);
124 }
125
126 // Computes min/max/mean/stddev, etc all up front.
127 function computeResults(data) {
128 for (var i = 0; i < data.data.length; i++) {
129 var obj = data.data[i];
130 obj.mean = Array.avg(data.data[i].results);
131 obj.stddev = Array.stddev(data.data[i].results);
132 obj.min = Array.min(data.data[i].results);
133 obj.max = Array.max(data.data[i].results);
134 }
135
136 // Find the biggest sample for our bar graph.
137 max_sample = 0;
138 for (var i = 0; i < data.data.length; i++) {
139 if (data.data[i].max > max_sample) {
140 max_sample = data.data[i].max;
141 }
142 }
143 }
144
145 function jsinit() {
146 // Run the template to show results
147 var data = window.opener.results;
148 computeResults(data);
149
150 var context = new JsEvalContext(data);
151 context.setVariable('$width', 0);
152 context.setVariable('$samples', 0);
153 var template = document.getElementById("t");
154 jstProcess(context, template);
155
156 // Set the options
157 var extension = window.opener;
158 document.getElementById("iterations").value = extension.iterations;
159 document.getElementById("clearconns").checked = extension.clearConnections;
160 document.getElementById("clearcache").checked = extension.clearCache;
161 }
162
163 function getWidth(mean, max_width) {
164 return Math.floor(max_width * (mean / max_sample));
165 }
166
167 // Apply configuration back to our extension
168 function config() {
169 var extension = window.opener;
170 var iterations = parseInt(document.getElementById("iterations").value);
171 var clearConnections = document.getElementById("clearconns").checked;
172 var clearCache = document.getElementById("clearcache").checked;
173 if (iterations > 0) {
174 extension.iterations = iterations;
175 extension.clearConnections = clearConnections;
176 extension.clearCache = clearCache;
177 }
178 }
179
180 // Clear the results
181 function clearResults() {
182 window.opener.results.data = new Array();
183 jsinit();
184 }
185 </script>
186
187 </head>
188
189 <body onload="jsinit()">
190
191 <h1><div id="header">Page Benchmark Results</div></h1>
192
193 <h1>Configuration</h1>
194
195 <span>Iterations</span>
196 <input id="iterations" type=text style="text-align:right">
197 <input type="button" value="Clear Results" onclick="clearResults();">
198 Clear Connections?<input id="clearconns" type="checkbox">
199 Clear Cache?<input id="clearcache" type="checkbox">
200 <input type="button" value="OK" onclick="config();">
201 <p>
202
203 <h1>Results</h1>
204
205 <table class="list" width="100%">
206 <tr>
207 <th width=30%>url</th>
208 <th width=50>avg</th>
209 <th width=50>stddev</th>
210 <th width=50>min</th>
211 <th width=50>max</th>
212 <th samples</th>
213 </tr>
214
215 <tr id="t" jsselect="data">
216 <td class="url" jseval="$width = getWidth($this.mean, 600)"><div jsvalues=".st yle.width:$width" class="bggraph"><a jsvalues="href:$this.url" jscontent="url">< /a></div></td>
217 <td class="avg" jscontent="mean"></td>
218 <td class="avg" jscontent="stddev"></td>
219 <td class="avg" jscontent="min"></td>
220 <td class="avg" jscontent="max"></td>
221 <td class="data"><span jsselect="results"><span jscontent="$this"></span>,</sp an> </td>
222 </tr>
223 </table>
224
225 <script>
226 </script>
227
228 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698