OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 })(); |
OLD | NEW |