Chromium Code Reviews| Index: chrome/browser/android/vr_shell/fps_meter.h |
| diff --git a/chrome/browser/android/vr_shell/fps_meter.h b/chrome/browser/android/vr_shell/fps_meter.h |
| index c52f4100ee599367977f2f1066de461f181be81c..c36f52320c0e8efbe521f67481e78c2e1ad817a6 100644 |
| --- a/chrome/browser/android/vr_shell/fps_meter.h |
| +++ b/chrome/browser/android/vr_shell/fps_meter.h |
| @@ -12,10 +12,32 @@ |
| namespace vr_shell { |
| +class SampleQueue { |
| + public: |
| + explicit SampleQueue(size_t window_size); |
| + ~SampleQueue(); |
| + |
| + int64_t GetSum() const { return sum_; } |
| + |
| + void AddSample(int64_t value); |
| + |
| + size_t GetCount() const { return samples_.size(); } |
| + |
| + // Get sliding window size for tests. |
| + size_t GetWindowSize() const { return window_size_; } |
| + |
| + private: |
| + int64_t sum_ = 0; |
| + size_t current_index_ = 0; |
| + size_t window_size_; |
| + std::vector<int64_t> samples_; |
| +}; |
| + |
| // Computes fps based on submitted frame times. |
| class FPSMeter { |
| public: |
| FPSMeter(); |
| + explicit FPSMeter(size_t window_size); |
|
cjgrant
2017/05/24 13:37:30
Just a sanity check - are there no existing tools
klausw
2017/05/24 16:32:23
Can you check with vollick@? He implemented this F
|
| ~FPSMeter(); |
| void AddFrame(const base::TimeTicks& time_stamp); |
| @@ -28,13 +50,24 @@ class FPSMeter { |
| size_t GetNumFrameTimes(); |
| private: |
| - size_t current_index_; |
| - int64_t total_time_us_; |
| + SampleQueue frame_times_; |
| base::TimeTicks last_time_stamp_; |
| - std::vector<base::TimeDelta> frame_times_; |
| DISALLOW_COPY_AND_ASSIGN(FPSMeter); |
| }; |
| +class SlidingAverage { |
| + public: |
| + explicit SlidingAverage(size_t window_size); |
| + ~SlidingAverage(); |
| + |
| + void AddSample(int64_t value); |
| + int64_t GetAverageOrDefault(int64_t default_value); |
| + int64_t GetAverage() { return GetAverageOrDefault(0); } |
| + |
| + private: |
| + SampleQueue values_; |
| +}; |
| + |
| } // namespace vr_shell |
| #endif // CHROME_BROWSER_ANDROID_VR_SHELL_FPS_METER_H_ |