1d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// found in the LICENSE file. 4d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/test/perf_time_logger.h" 6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/test/perf_log.h" 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)namespace base { 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)PerfTimeLogger::PerfTimeLogger(const char* test_name) 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) : logged_(false), test_name_(test_name) {} 13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)PerfTimeLogger::~PerfTimeLogger() { 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) if (!logged_) 16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) Done(); 17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 18d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 19d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)void PerfTimeLogger::Done() { 20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // we use a floating-point millisecond value because it is more 21d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // intuitive than microseconds and we want more precision than 22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // integer milliseconds 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) LogPerfResult(test_name_.c_str(), timer_.Elapsed().InMillisecondsF(), "ms"); 24d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) logged_ = true; 25d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 27d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} // namespace base 28