| Index: chrome/browser/sync/util/highres_timer-linux.h
|
| ===================================================================
|
| --- chrome/browser/sync/util/highres_timer-linux.h (revision 26149)
|
| +++ chrome/browser/sync/util/highres_timer-linux.h (working copy)
|
| @@ -1,79 +0,0 @@
|
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -//
|
| -// High resolution timer functions for use in Linux.
|
| -
|
| -#ifndef CHROME_BROWSER_SYNC_UTIL_HIGHRES_TIMER_LINUX_H_
|
| -#define CHROME_BROWSER_SYNC_UTIL_HIGHRES_TIMER_LINUX_H_
|
| -
|
| -#include "base/basictypes.h"
|
| -
|
| -#include <sys/time.h>
|
| -
|
| -const uint64 MICROS_IN_SECOND = 1000000L;
|
| -
|
| -// A handy class for reliably measuring wall-clock time with decent resolution.
|
| -//
|
| -// We want to measure time with high resolution on Linux. What to do?
|
| -//
|
| -// RDTSC? Sure, but how do you convert it to wall clock time?
|
| -// clock_gettime? It's not in all Linuxes.
|
| -//
|
| -// Let's just use gettimeofday; it's good to the microsecond.
|
| -class HighresTimer {
|
| - public:
|
| - // Captures the current start time.
|
| - HighresTimer();
|
| -
|
| - // Captures the current tick, can be used to reset a timer for reuse.
|
| - void Start();
|
| -
|
| - // Returns the elapsed ticks with full resolution.
|
| - uint64 GetElapsedTicks() const;
|
| -
|
| - // Returns the elapsed time in milliseconds, rounded to the nearest
|
| - // millisecond.
|
| - uint64 GetElapsedMs() const;
|
| -
|
| - // Returns the elapsed time in seconds, rounded to the nearest second.
|
| - uint64 GetElapsedSec() const;
|
| -
|
| - uint64 start_ticks() const { return start_ticks_; }
|
| -
|
| - // Returns timer frequency from cache, should be less overhead than
|
| - // ::QueryPerformanceFrequency.
|
| - static uint64 GetTimerFrequency();
|
| - // Returns current ticks.
|
| - static uint64 GetCurrentTicks();
|
| -
|
| - private:
|
| - // Captured start time.
|
| - uint64 start_ticks_;
|
| -};
|
| -
|
| -inline HighresTimer::HighresTimer() {
|
| - Start();
|
| -}
|
| -
|
| -inline void HighresTimer::Start() {
|
| - start_ticks_ = GetCurrentTicks();
|
| -}
|
| -
|
| -inline uint64 HighresTimer::GetTimerFrequency() {
|
| - // Fixed; one "tick" is one microsecond.
|
| - return MICROS_IN_SECOND;
|
| -}
|
| -
|
| -inline uint64 HighresTimer::GetCurrentTicks() {
|
| - timeval tv;
|
| - gettimeofday(&tv, 0);
|
| -
|
| - return tv.tv_sec * MICROS_IN_SECOND + tv.tv_usec;
|
| -}
|
| -
|
| -inline uint64 HighresTimer::GetElapsedTicks() const {
|
| - return start_ticks_ - GetCurrentTicks();
|
| -}
|
| -
|
| -#endif // CHROME_BROWSER_SYNC_UTIL_HIGHRES_TIMER_LINUX_H_
|
|
|