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

Side by Side Diff: third_party/WebKit/PerformanceTests/resources/runner.js

Issue 2819343002: Support tracing metrics for measureTime & measureFrameTime method in blink_perf (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 // There are tests for computeStatistics() located in LayoutTests/fast/harness/p erftests 1 // There are tests for computeStatistics() located in LayoutTests/fast/harness/p erftests
2 2
3 if (window.testRunner) { 3 if (window.testRunner) {
4 testRunner.waitUntilDone(); 4 testRunner.waitUntilDone();
5 testRunner.dumpAsText(); 5 testRunner.dumpAsText();
6 } 6 }
7 7
8 (function () { 8 (function () {
9 var logLines = null; 9 var logLines = null;
10 var completedIterations = -1; 10 var completedIterations = -1;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 return; 150 return;
151 } 151 }
152 currentTest = test; 152 currentTest = test;
153 iterationCount = test.iterationCount || (window.testRunner ? 5 : 20); 153 iterationCount = test.iterationCount || (window.testRunner ? 5 : 20);
154 if (test.warmUpCount && test.warmUpCount > 0) 154 if (test.warmUpCount && test.warmUpCount > 0)
155 completedIterations = -test.warmUpCount; 155 completedIterations = -test.warmUpCount;
156 logLines = PerfTestRunner.bufferedLog || window.testRunner ? [] : null; 156 logLines = PerfTestRunner.bufferedLog || window.testRunner ? [] : null;
157 PerfTestRunner.log("Running " + iterationCount + " times"); 157 PerfTestRunner.log("Running " + iterationCount + " times");
158 if (test.doNotIgnoreInitialRun) 158 if (test.doNotIgnoreInitialRun)
159 completedIterations++; 159 completedIterations++;
160 if (runner) 160
161 if (runner && test.tracingCategories && window.testRunner &&
162 window.testRunner.supportTracing) {
163 window.testRunner.traceEventsToMeasure = test.traceEventsToMeasure;
Xianzhu 2017/04/21 01:31:51 Nit: Use indentation (4) consistent with the origi
nednguyen 2017/04/24 20:55:21 Done.
164 window.testRunner.startTracing(test.tracingCategories, function() {
161 scheduleNextRun(scheduler, runner); 165 scheduleNextRun(scheduler, runner);
166 });
167 } else if (runner) {
168 scheduleNextRun(scheduler, runner);
169 }
162 } 170 }
163 171
164 function scheduleNextRun(scheduler, runner) { 172 function scheduleNextRun(scheduler, runner) {
165 scheduler(function () { 173 scheduler(function () {
166 // This will be used by tools/perf/benchmarks/blink_perf.py to find 174 // This will be used by tools/perf/benchmarks/blink_perf.py to find
167 // traces during the measured runs. 175 // traces during the measured runs.
168 if (completedIterations >= 0) 176 if (completedIterations >= 0)
169 console.time("blink_perf"); 177 console.time("blink_perf");
170 178
171 try { 179 try {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 ignoreWarmUpAndLog(measuredValue); 249 ignoreWarmUpAndLog(measuredValue);
242 } catch (exception) { 250 } catch (exception) {
243 PerfTestRunner.logFatalError("Got an exception while logging the res ult with name=" + exception.name + ", message=" + exception.message); 251 PerfTestRunner.logFatalError("Got an exception while logging the res ult with name=" + exception.name + ", message=" + exception.message);
244 return; 252 return;
245 } 253 }
246 254
247 if (completedIterations >= iterationCount) 255 if (completedIterations >= iterationCount)
248 finish(); 256 finish();
249 } 257 }
250 258
259 function addRunTestStartMarker() {
260 if (window.testRunner === undefined || !window.testRunner.supportTracing)
Xianzhu 2017/04/21 01:31:51 Nit: !window.testRunner?
nednguyen 2017/04/24 20:55:21 Done.
261 return;
262 if (completedIterations < 0)
263 console.time('blink_perf.runTest.warmup');
264 else
265 console.time('blink_perf.runTest');
266 }
267
268 function addRunTestEndMarker() {
269 if (window.testRunner === undefined || !window.testRunner.supportTracing)
270 return;
271 if (completedIterations < 0)
272 console.timeEnd('blink_perf.runTest.warmup');
273 else
274 console.timeEnd('blink_perf.runTest');
275 }
276
277
251 PerfTestRunner.measureFrameTime = function (test) { 278 PerfTestRunner.measureFrameTime = function (test) {
252 PerfTestRunner.unit = "ms"; 279 PerfTestRunner.unit = "ms";
253 PerfTestRunner.bufferedLog = true; 280 PerfTestRunner.bufferedLog = true;
254 test.warmUpCount = test.warmUpCount || 5; 281 test.warmUpCount = test.warmUpCount || 5;
255 test.iterationCount = test.iterationCount || 10; 282 test.iterationCount = test.iterationCount || 10;
256 // Force gc before starting the test to avoid the measured time from 283 // Force gc before starting the test to avoid the measured time from
257 // being affected by gc performance. See crbug.com/667811#c16. 284 // being affected by gc performance. See crbug.com/667811#c16.
258 PerfTestRunner.gc(); 285 PerfTestRunner.gc();
259 start(test, requestAnimationFrame, measureFrameTimeOnce); 286 start(test, requestAnimationFrame, measureFrameTimeOnce);
260 } 287 }
261 288
262 var lastFrameTime = -1; 289 var lastFrameTime = -1;
263 function measureFrameTimeOnce() { 290 function measureFrameTimeOnce() {
291 if (lastFrameTime != -1)
292 addRunTestEndMarker();
264 var now = PerfTestRunner.now(); 293 var now = PerfTestRunner.now();
265 var result = lastFrameTime == -1 ? -1 : now - lastFrameTime; 294 var result = lastFrameTime == -1 ? -1 : now - lastFrameTime;
266 lastFrameTime = now; 295 lastFrameTime = now;
296 addRunTestStartMarker();
267 297
268 var returnValue = currentTest.run(); 298 var returnValue = currentTest.run();
269 if (returnValue - 0 === returnValue) { 299 if (returnValue - 0 === returnValue) {
270 if (returnValue < 0) 300 if (returnValue < 0)
271 PerfTestRunner.log("runFunction returned a negative value: " + r eturnValue); 301 PerfTestRunner.log("runFunction returned a negative value: " + r eturnValue);
272 return returnValue; 302 return returnValue;
273 } 303 }
274 304
275 return result; 305 return result;
276 } 306 }
277 307
278 PerfTestRunner.measureTime = function (test) { 308 PerfTestRunner.measureTime = function (test) {
279 PerfTestRunner.unit = "ms"; 309 PerfTestRunner.unit = "ms";
280 PerfTestRunner.bufferedLog = true; 310 PerfTestRunner.bufferedLog = true;
281 start(test, zeroTimeoutScheduler, measureTimeOnce); 311 start(test, zeroTimeoutScheduler, measureTimeOnce);
282 } 312 }
283 313
284 function zeroTimeoutScheduler(task) { 314 function zeroTimeoutScheduler(task) {
285 setTimeout(task, 0); 315 setTimeout(task, 0);
286 } 316 }
287 317
288 function measureTimeOnce() { 318 function measureTimeOnce() {
289 // Force gc before measuring time to avoid interference between tests. 319 // Force gc before measuring time to avoid interference between tests.
290 PerfTestRunner.gc(); 320 PerfTestRunner.gc();
291 321
292 var start = PerfTestRunner.now(); 322 var start = PerfTestRunner.now();
323 addRunTestStartMarker();
293 var returnValue = currentTest.run(); 324 var returnValue = currentTest.run();
325 addRunTestEndMarker();
294 var end = PerfTestRunner.now(); 326 var end = PerfTestRunner.now();
295 327
296 if (returnValue - 0 === returnValue) { 328 if (returnValue - 0 === returnValue) {
297 if (returnValue < 0) 329 if (returnValue < 0)
298 PerfTestRunner.log("runFunction returned a negative value: " + r eturnValue); 330 PerfTestRunner.log("runFunction returned a negative value: " + r eturnValue);
299 return returnValue; 331 return returnValue;
300 } 332 }
301 333
302 return end - start; 334 return end - start;
303 } 335 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 399
368 iframe.contentDocument.close(); 400 iframe.contentDocument.close();
369 document.body.removeChild(iframe); 401 document.body.removeChild(iframe);
370 }; 402 };
371 403
372 PerfTestRunner.measureTime(test); 404 PerfTestRunner.measureTime(test);
373 } 405 }
374 406
375 window.PerfTestRunner = PerfTestRunner; 407 window.PerfTestRunner = PerfTestRunner;
376 })(); 408 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698