1// Copyright 2013 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#ifndef BASE_TEST_PERF_TIME_LOGGER_H_ 6#define BASE_TEST_PERF_TIME_LOGGER_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/timer/elapsed_timer.h" 12 13namespace base { 14 15// Automates calling LogPerfResult for the common case where you want 16// to measure the time that something took. Call Done() when the test 17// is complete if you do extra work after the test or there are stack 18// objects with potentially expensive constructors. Otherwise, this 19// class with automatically log on destruction. 20class PerfTimeLogger { 21 public: 22 explicit PerfTimeLogger(const char* test_name); 23 ~PerfTimeLogger(); 24 25 void Done(); 26 27 private: 28 bool logged_; 29 std::string test_name_; 30 ElapsedTimer timer_; 31 32 DISALLOW_COPY_AND_ASSIGN(PerfTimeLogger); 33}; 34 35} // namespace base 36 37#endif // BASE_TEST_PERF_TIME_LOGGER_H_ 38