1*6777b538SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_TEST_PERF_TIME_LOGGER_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_TEST_PERF_TIME_LOGGER_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <string> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include "base/timer/elapsed_timer.h" 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker namespace base { 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker // Automates calling LogPerfResult for the common case where you want 15*6777b538SAndroid Build Coastguard Worker // to measure the time that something took. Call Done() when the test 16*6777b538SAndroid Build Coastguard Worker // is complete if you do extra work after the test or there are stack 17*6777b538SAndroid Build Coastguard Worker // objects with potentially expensive constructors. Otherwise, this 18*6777b538SAndroid Build Coastguard Worker // class with automatically log on destruction. 19*6777b538SAndroid Build Coastguard Worker class PerfTimeLogger { 20*6777b538SAndroid Build Coastguard Worker public: 21*6777b538SAndroid Build Coastguard Worker explicit PerfTimeLogger(const char* test_name); 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker PerfTimeLogger(const PerfTimeLogger&) = delete; 24*6777b538SAndroid Build Coastguard Worker PerfTimeLogger& operator=(const PerfTimeLogger&) = delete; 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker ~PerfTimeLogger(); 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker void Done(); 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker private: 31*6777b538SAndroid Build Coastguard Worker bool logged_; 32*6777b538SAndroid Build Coastguard Worker std::string test_name_; 33*6777b538SAndroid Build Coastguard Worker ElapsedTimer timer_; 34*6777b538SAndroid Build Coastguard Worker }; 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker } // namespace base 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker #endif // BASE_TEST_PERF_TIME_LOGGER_H_ 39