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

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

Issue 155675: Several changes to the benchmark extension:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 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
1 <head> 1 <head>
2 <title>Page Benchmark Options</title> 2 <title>Page Benchmark Options</title>
3 <script src="jst/util.js" type="text/javascript"></script> 3 <script src="jst/util.js" type="text/javascript"></script>
4 <script src="jst/jsevalcontext.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> 5 <script src="jst/jstemplate.js" type="text/javascript"></script>
6 <script src="jst/jstemplate_example.js" type="text/javascript"></script> 6 <script src="jst/jstemplate_example.js" type="text/javascript"></script>
7 7
8 <style> 8 <style>
9 body { 9 body {
10 font-size: 84%; 10 font-size: 84%;
11 font-family: Arial, Helvetica, sans-serif; 11 font-family: Arial, Helvetica, sans-serif;
12 padding: 0.75em; 12 padding: 0.75em;
13 margin: 0; 13 margin: 0;
14 min-width: 45em; 14 min-width: 45em;
15 } 15 }
16 16
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 font-size: 84%; 57 font-size: 84%;
58 table-layout: fixed; 58 table-layout: fixed;
59 } 59 }
60 60
61 table.list:not([class*='filtered']) tr:nth-child(odd) td:not([class*='filtered'] ) { 61 table.list:not([class*='filtered']) tr:nth-child(odd) td:not([class*='filtered'] ) {
62 background: #eff3ff; 62 background: #eff3ff;
63 } 63 }
64 64
65 table.list th { 65 table.list th {
66 padding: 0 0.5em; 66 padding: 0 0.5em;
67 vertical-align: top; 67 vertical-align: bottom;
68 font-weight: bold; 68 font-weight: bold;
69 color: #315d94; 69 color: #315d94;
70 color: black; 70 color: black;
71 white-space: nowrap;
72 text-align: center; 71 text-align: center;
73 } 72 }
74 73
75 .avg { 74 .avg {
76 font-weight: bold; 75 font-weight: bold;
77 text-align: center; 76 text-align: center;
78 } 77 }
79 78
80 .data { 79 .data {
81 text-align: left; 80 text-align: left;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 variance = variance + deviation * deviation; 119 variance = variance + deviation * deviation;
121 } 120 }
122 variance = variance / count; 121 variance = variance / count;
123 return Math.sqrt(variance).toFixed(2); 122 return Math.sqrt(variance).toFixed(2);
124 } 123 }
125 124
126 // Computes min/max/mean/stddev, etc all up front. 125 // Computes min/max/mean/stddev, etc all up front.
127 function computeResults(data) { 126 function computeResults(data) {
128 for (var i = 0; i < data.data.length; i++) { 127 for (var i = 0; i < data.data.length; i++) {
129 var obj = data.data[i]; 128 var obj = data.data[i];
130 obj.mean = Array.avg(data.data[i].results); 129 var resultList = obj.totalResults;
131 obj.stddev = Array.stddev(data.data[i].results); 130 obj.mean = Array.avg(resultList);
132 obj.min = Array.min(data.data[i].results); 131 obj.stddev = Array.stddev(resultList);
133 obj.max = Array.max(data.data[i].results); 132 obj.min = Array.min(resultList);
133 obj.max = Array.max(resultList);
134 obj.readbps = (obj.bytesRead * 8 / obj.totalTime).toFixed(2);
135 obj.writebps = (obj.bytesWritten * 8 / obj.totalTime).toFixed(2);
136 obj.readKB = (obj.bytesRead / 1024).toFixed(0);
137 obj.writeKB = (obj.bytesWritten / 1024).toFixed(0);
138 obj.paintMean = Array.avg(obj.paintResults);
139 obj.docLoadMean = Array.avg(obj.docLoadResults);
134 } 140 }
135 141
136 // Find the biggest sample for our bar graph. 142 // Find the biggest sample for our bar graph.
137 max_sample = 0; 143 max_sample = 0;
138 for (var i = 0; i < data.data.length; i++) { 144 for (var i = 0; i < data.data.length; i++) {
139 if (data.data[i].max > max_sample) { 145 if (data.data[i].max > max_sample) {
140 max_sample = data.data[i].max; 146 max_sample = data.data[i].max;
141 } 147 }
142 } 148 }
143 } 149 }
144 150
145 function jsinit() { 151 function jsinit() {
146 // Run the template to show results 152 // Run the template to show results
147 var data = window.opener.results; 153 var data = window.opener.results;
148 computeResults(data); 154 computeResults(data);
149 155
150 var context = new JsEvalContext(data); 156 var context = new JsEvalContext(data);
151 context.setVariable('$width', 0); 157 context.setVariable('$width', 0);
152 context.setVariable('$samples', 0); 158 context.setVariable('$samples', 0);
153 var template = document.getElementById("t"); 159 var template = document.getElementById("t");
154 jstProcess(context, template); 160 jstProcess(context, template);
155 161
156 // Set the options 162 // Set the options
157 var extension = window.opener; 163 var extension = window.opener;
158 document.getElementById("iterations").value = extension.iterations; 164 document.getElementById("iterations").value = extension.iterations;
159 document.getElementById("clearconns").checked = extension.clearConnections; 165 document.getElementById("clearconns").checked = extension.clearConnections;
160 document.getElementById("clearcache").checked = extension.clearCache; 166 document.getElementById("clearcache").checked = extension.clearCache;
167 document.getElementById("testurl").value = extension.testUrl;
161 } 168 }
162 169
163 function getWidth(mean, max_width) { 170 function getWidth(mean, max_width) {
164 return Math.floor(max_width * (mean / max_sample)); 171 return Math.floor(max_width * (mean / max_sample));
165 } 172 }
166 173
167 // Apply configuration back to our extension 174 // Apply configuration back to our extension
168 function config() { 175 function config() {
169 var extension = window.opener; 176 var extension = window.opener;
170 var iterations = parseInt(document.getElementById("iterations").value); 177 var iterations = parseInt(document.getElementById("iterations").value);
171 var clearConnections = document.getElementById("clearconns").checked; 178 var clearConnections = document.getElementById("clearconns").checked;
172 var clearCache = document.getElementById("clearcache").checked; 179 var clearCache = document.getElementById("clearcache").checked;
173 if (iterations > 0) { 180 if (iterations > 0) {
174 extension.iterations = iterations; 181 extension.iterations = iterations;
175 extension.clearConnections = clearConnections; 182 extension.clearConnections = clearConnections;
176 extension.clearCache = clearCache; 183 extension.clearCache = clearCache;
177 } 184 }
178 } 185 }
179 186
187 // Set the url in the benchmark url box.
188 function setUrl(url) {
189 document.getElementById("testurl").value = url;
190 }
191
192 // Start the benchmark.
193 function run() {
194 var extension = window.opener;
195 var testUrl = document.getElementById("testurl").value;
196 extension.testUrl = testUrl;
197 extension.run();
198 }
199
180 // Clear the results 200 // Clear the results
181 function clearResults() { 201 function clearResults() {
182 window.opener.results.data = new Array(); 202 window.opener.results.data = new Array();
183 jsinit(); 203 jsinit();
184 } 204 }
185 </script> 205 </script>
186 206
187 </head> 207 </head>
188 208
189 <body onload="jsinit()"> 209 <body onload="jsinit()">
190 210
191 <h1><div id="header">Page Benchmark Results</div></h1> 211 <h1><div id="header">Page Benchmark Results</div></h1>
192 212
193 <h1>Configuration</h1> 213 <h1>Configuration</h1>
194 214
195 <span>Iterations</span> 215 <span>Iterations</span>
196 <input id="iterations" type=text style="text-align:right"> 216 <input id="iterations" type=text style="text-align:right">
197 <input type="button" value="Clear Results" onclick="clearResults();"> 217 <input type="button" value="Clear Results" onclick="clearResults();">
198 Clear Connections?<input id="clearconns" type="checkbox"> 218 Clear Connections?<input id="clearconns" type="checkbox">
199 Clear Cache?<input id="clearcache" type="checkbox"> 219 Clear Cache?<input id="clearcache" type="checkbox">
200 <input type="button" value="OK" onclick="config();"> 220 <input type="button" value="OK" onclick="config();"><P>
221 URL to load <input type="text" id="testurl" size=100 value="http://www.google.co m/"></input>
222 <input type="button" value="Run" onclick="run();"><P>
201 <p> 223 <p>
202 224
203 <h1>Results</h1> 225 <h1>Results</h1>
204 226
205 <table class="list" width="100%"> 227 <table class="list" width="100%">
206 <tr> 228 <tr>
207 <th width=30%>url</th> 229 <th width=30%>url</th>
208 <th width=50>avg</th> 230 <th width=50>doc load mean</th>
231 <th width=50>paint mean</th>
232 <th width=50>total mean</th>
209 <th width=50>stddev</th> 233 <th width=50>stddev</th>
210 <th width=50>min</th> 234 <th width=50>min</th>
211 <th width=50>max</th> 235 <th width=50>max</th>
236 <th width=50>Read KB</th>
237 <th width=50>Write KB</th>
238 <th width=50>Read KBps</th>
239 <th width=50>Write KBps</th>
212 <th samples</th> 240 <th samples</th>
213 </tr> 241 </tr>
214 242
215 <tr id="t" jsselect="data"> 243 <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> 244 <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>
245 <td class="avg" jscontent="docLoadMean"></td>
246 <td class="avg" jscontent="paintMean"></td>
217 <td class="avg" jscontent="mean"></td> 247 <td class="avg" jscontent="mean"></td>
218 <td class="avg" jscontent="stddev"></td> 248 <td class="avg" jscontent="stddev"></td>
219 <td class="avg" jscontent="min"></td> 249 <td class="avg" jscontent="min"></td>
220 <td class="avg" jscontent="max"></td> 250 <td class="avg" jscontent="max"></td>
251 <td class="avg" jscontent="readKB"></td>
252 <td class="avg" jscontent="writeKB"></td>
253 <td class="avg" jscontent="readbps"></td>
254 <td class="avg" jscontent="writebps"></td>
221 <td class="data"><span jsselect="results"><span jscontent="$this"></span>,</sp an> </td> 255 <td class="data"><span jsselect="results"><span jscontent="$this"></span>,</sp an> </td>
222 </tr> 256 </tr>
223 </table> 257 </table>
224 258
225 <script> 259 <script>
226 </script> 260 </script>
227 261
228 </body> 262 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698