| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 var __running = false; | |
| 6 var __old_title = ""; | |
| 7 var __scroll_by = 300; | |
| 8 var __raf; | |
| 9 | |
| 10 var __t_last; | |
| 11 var __t_est; | |
| 12 var __t_est_total; | |
| 13 var __t_est_squared_total; | |
| 14 var __t_count; | |
| 15 | |
| 16 function __init_stats() { | |
| 17 __t_last = undefined; | |
| 18 __t_est = undefined; | |
| 19 __t_est_total = 0; | |
| 20 __t_est_squared_total = 0; | |
| 21 __t_count = 0; | |
| 22 } | |
| 23 __init_stats(); | |
| 24 | |
| 25 function __calc_results() { | |
| 26 var M = __t_est_total / __t_count; | |
| 27 var X = __t_est_squared_total / __t_count; | |
| 28 var V = X - M * M; | |
| 29 var S = Math.sqrt(V); | |
| 30 | |
| 31 var R = new Object(); | |
| 32 R.mean = 1000.0 / M; | |
| 33 R.sigma = R.mean - 1000.0 / (M + S); | |
| 34 return R; | |
| 35 } | |
| 36 | |
| 37 function __scroll_down() { | |
| 38 var y = window.scrollY; | |
| 39 window.scrollBy(0, __scroll_by); | |
| 40 if (window.scrollY == y) | |
| 41 __stop(); | |
| 42 } | |
| 43 | |
| 44 function __update_fps() { | |
| 45 var t_now = new Date().getTime(); | |
| 46 if (window.__t_last) { | |
| 47 var t_delta = t_now - __t_last; | |
| 48 if (window.__t_est) { | |
| 49 __t_est = (0.1 * __t_est) + (0.9 * t_delta); // low-pass filter | |
| 50 } else { | |
| 51 __t_est = t_delta; | |
| 52 } | |
| 53 var fps = 1000.0 / __t_est; | |
| 54 document.title = "FPS: " + (fps | 0); | |
| 55 | |
| 56 __t_est_total += t_delta; | |
| 57 __t_est_squared_total += t_delta * t_delta; | |
| 58 __t_count++; | |
| 59 } | |
| 60 __t_last = t_now; | |
| 61 } | |
| 62 | |
| 63 function __sched_update() { | |
| 64 if (!__raf) { | |
| 65 if ("webkitRequestAnimationFrame" in window) | |
| 66 __raf = webkitRequestAnimationFrame; | |
| 67 else if ("mozRequestAnimationFrame" in window) | |
| 68 __raf = mozRequestAnimationFrame; | |
| 69 } | |
| 70 __raf(function() { | |
| 71 if (!__running) | |
| 72 return; | |
| 73 __update_fps(); | |
| 74 __scroll_down(); | |
| 75 __sched_update(); | |
| 76 }); | |
| 77 } | |
| 78 | |
| 79 function __start() { | |
| 80 if (__running) | |
| 81 return; | |
| 82 __old_title = document.title; | |
| 83 __running = true; | |
| 84 __sched_update(); | |
| 85 } | |
| 86 | |
| 87 function __stop() { | |
| 88 __running = false; | |
| 89 document.title = __old_title; | |
| 90 } | |
| 91 | |
| 92 function __reset() { | |
| 93 __stop(); | |
| 94 document.body.scrollTop = 0; | |
| 95 __init_stats(); | |
| 96 } | |
| 97 | |
| 98 function __force_compositor() { | |
| 99 document.body.style.webkitTransform = "translateZ(0)"; | |
| 100 } | |
| OLD | NEW |