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

Unified Diff: third_party/WebKit/PerformanceTests/resources/runner.js

Issue 2429623004: Add performance tests for full frame cycle (Closed)
Patch Set: No random Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/PerformanceTests/Paint/large-table-repaint.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/PerformanceTests/resources/runner.js
diff --git a/third_party/WebKit/PerformanceTests/resources/runner.js b/third_party/WebKit/PerformanceTests/resources/runner.js
index 53501a769bf3c7ed119d6be2ca8ee842f9354756..bc770505930982b3a4418e3143dfb0491f508ec5 100644
--- a/third_party/WebKit/PerformanceTests/resources/runner.js
+++ b/third_party/WebKit/PerformanceTests/resources/runner.js
@@ -145,7 +145,7 @@ if (window.testRunner) {
doc.documentElement.offsetHeight;
};
- function start(test, runner) {
+ function start(test, scheduler, runner) {
if (!test) {
PerfTestRunner.logFatalError("Got a bad test object.");
return;
@@ -161,12 +161,12 @@ if (window.testRunner) {
if (test.doNotIgnoreInitialRun)
completedIterations++;
if (runner)
- scheduleNextRun(runner);
+ scheduleNextRun(scheduler, runner);
}
- function scheduleNextRun(runner) {
+ function scheduleNextRun(scheduler, runner) {
PerfTestRunner.gc();
- window.setTimeout(function () {
+ scheduler(function () {
try {
if (currentTest.setup)
currentTest.setup();
@@ -187,10 +187,10 @@ if (window.testRunner) {
}
if (completedIterations < iterationCount)
- scheduleNextRun(runner);
+ scheduleNextRun(scheduler, runner);
else
finish();
- }, 0);
+ });
}
function ignoreWarmUpAndLog(measuredValue) {
@@ -245,9 +245,34 @@ if (window.testRunner) {
finish();
}
+ PerfTestRunner.measureFrameTime = function (test) {
+ PerfTestRunner.unit = "ms";
+ start(test, requestAnimationFrame, measureFrameTimeOnce);
+ }
+
+ var lastFrameTime = -1;
+ function measureFrameTimeOnce() {
+ var now = PerfTestRunner.now();
+ var result = lastFrameTime == -1 ? -1 : now - lastFrameTime;
+ lastFrameTime = now;
+
+ var returnValue = currentTest.run();
+ if (returnValue - 0 === returnValue) {
+ if (returnValue < 0)
+ PerfTestRunner.log("runFunction returned a negative value: " + returnValue);
+ return returnValue;
+ }
+
+ return result;
+ }
+
PerfTestRunner.measureTime = function (test) {
PerfTestRunner.unit = "ms";
- start(test, measureTimeOnce);
+ start(test, zeroTimeoutScheduler, measureTimeOnce);
+ }
+
+ function zeroTimeoutScheduler(task) {
+ setTimeout(task, 0);
}
function measureTimeOnce() {
@@ -266,7 +291,7 @@ if (window.testRunner) {
PerfTestRunner.measureRunsPerSecond = function (test) {
PerfTestRunner.unit = "runs/s";
- start(test, measureRunsPerSecondOnce);
+ start(test, zeroTimeoutScheduler, measureRunsPerSecondOnce);
}
function measureRunsPerSecondOnce() {
« no previous file with comments | « third_party/WebKit/PerformanceTests/Paint/large-table-repaint.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698