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

Unified Diff: chrome/test/data/perf/frame_rate/head.js

Issue 8536008: Use only the steady gesture in frame rate tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: typo removal. Created 9 years, 1 month 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 | « no previous file | chrome/test/perf/frame_rate/frame_rate_tests.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/perf/frame_rate/head.js
diff --git a/chrome/test/data/perf/frame_rate/head.js b/chrome/test/data/perf/frame_rate/head.js
index 18f8485e27c6e9c3c2df24391d6d507b16b68a54..9c22c7a4c8dd0602b9c9bc826ab89ff562b76efc 100644
--- a/chrome/test/data/perf/frame_rate/head.js
+++ b/chrome/test/data/perf/frame_rate/head.js
@@ -41,12 +41,10 @@ var __old_title = "";
var __raf_is_live = false;
var __raf;
+var __t_start;
var __t_last;
var __t_est;
-var __t_est_total;
-var __t_est_squared_total;
-var __t_count;
-var __t_start;
+var __t_frame_intervals;
var __queued_gesture_functions;
var __results;
@@ -67,6 +65,10 @@ var __gesture_library = {
{"time_ms":1, "y":0},
{"time_ms":5000, "y":0}
],
+ steady: [
+ {"time_ms":1, "y":0},
+ {"time_ms":500, "y":400}
+ ],
reading: [
{"time_ms":1, "y":0},
{"time_ms":842, "y":40},
@@ -180,22 +182,31 @@ function __gesture_stretch(gesture, stretch_factor) {
// Gesture set to use for testing, initialized with default gesture set.
// Redefine in test file to use a different set of gestures.
var __gestures = {
- none: __gesture_library["stationary"],
- steady: __gesture_library["init"],
- reading: __gesture_library["reading"],
- mouse_wheel: __gesture_library["mouse_wheel"],
- mac_fling: __gesture_library["mac_fling"],
+ steady: __gesture_library["steady"],
};
function __init_stats() {
__t_last = undefined;
__t_est = undefined;
- __t_est_total = 0;
- __t_est_squared_total = 0;
- __t_count = 0;
+ __t_frame_intervals = [];
}
__init_stats();
+var __cur_chrome_interval;
+function __init_time() {
+ if (chrome.Interval) {
+ __cur_chrome_interval = new chrome.Interval();
+ __cur_chrome_interval.start();
+ }
+}
+__init_time();
+
+function __get_time() {
+ if (__cur_chrome_interval)
+ return __cur_chrome_interval.microseconds() / 1000;
+ return new Date().getTime();
+}
+
function __init_raf() {
if ("requestAnimationFrame" in window)
__raf = requestAnimationFrame;
@@ -211,30 +222,39 @@ function __init_raf() {
// No raf implementation available, fake it with 16ms timeouts
__raf = function(callback, element) {
setTimeout(callback, 16);
- }
+ };
}
__init_raf();
function __calc_results() {
- var M = __t_est_total / __t_count;
- var X = __t_est_squared_total / __t_count;
- var V = X - M * M;
- var S = Math.sqrt(V);
+ var M = 0.0;
+ var N = __t_frame_intervals.length;
+
+ for (var i = 0; i < N; i++)
+ M += __t_frame_intervals[i];
+ M = M / N;
+
+ var V = 0.0;
+ for (var i = 0; i < N; i++) {
+ var v = __t_frame_intervals[i] - M;
+ V += v * v;
+ }
+
+ var S = Math.sqrt(V / (N - 1));
var R = new Object();
- R.mean = 1000.0 / M;
- R.sigma = R.mean - 1000.0 / (M + S);
+ R.mean = M;
+ R.sigma = S;
return R;
}
function __calc_results_total() {
if (!__results) {
- return;
+ return {};
}
var size = __results.gestures.length;
var mean = 0;
var variance = 0;
- var sigma;
// Remove any intial caching test(s).
while (__results.means.length != size) {
@@ -247,7 +267,7 @@ function __calc_results_total() {
}
mean /= size;
variance /= size;
- sigma = Math.sqrt(variance);
+ var sigma = Math.sqrt(variance);
var results = new Object();
// GTest expects a comma-separated string for lists.
@@ -259,8 +279,8 @@ function __calc_results_total() {
return results;
}
-function __update_fps() {
- var t_now = new Date().getTime();
+function __record_frame_time() {
+ var t_now = __get_time();
if (window.__t_last) {
var t_delta = t_now - __t_last;
if (window.__t_est) {
@@ -268,12 +288,11 @@ function __update_fps() {
} else {
__t_est = t_delta;
}
- var fps = 1000.0 / __t_est;
- document.title = "FPS: " + (fps | 0);
- __t_est_total += t_delta;
- __t_est_squared_total += t_delta * t_delta;
- __t_count++;
+ __t_frame_intervals.push(t_delta);
+
+ var fps = 1000.0 / __t_est;
+ document.title = "FPS: " + fps;
}
__t_last = t_now;
}
@@ -283,7 +302,7 @@ function __advance_gesture_recording() {
var y = document.body.scrollTop;
// Only add a gesture if the scroll position changes.
if (__recording.length == 0 || y != __recording[__recording.length - 1].y) {
- var time_ms = new Date().getTime() - __t_start;
+ var time_ms = __get_time() - __t_start;
__recording.push({ time_ms: time_ms, y: y });
return true;
}
@@ -319,7 +338,7 @@ function __create_gesture_function(gestures) {
__stop();
return false;
}
- var time_cur = new Date().getTime() - __t_start;
+ var time_cur = __get_time() - __t_start;
if (time_cur <= gestures[i0].time_ms)
return false;
@@ -377,15 +396,15 @@ function __sched_update() {
__raf_is_live = true;
// In case __raf falls back to using setTimeout, we must schedule the next
// update before rendering the current update to help maintain the
- // regularity of update intervals.
+ // regularity of update frame_intervals.
__sched_update();
if (__running) {
// Only update the FPS if a gesture movement occurs. Otherwise, the frame
// rate average becomes inaccurate after any pause.
if (__advance_gesture())
- __update_fps();
+ __record_frame_time();
else
- __t_last = new Date().getTime();
+ __t_last = __get_time();
}
}, document.body);
}
@@ -419,7 +438,7 @@ function __start(gesture_function) {
__old_title = document.title;
__advance_gesture = gesture_function;
- __t_start = new Date().getTime();
+ __t_start = __get_time();
__running = true;
if (!__raf_is_live && !__animation) {
__sched_update();
« no previous file with comments | « no previous file | chrome/test/perf/frame_rate/frame_rate_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698