1 // Copyright (c) 2006-2008 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 #include "base/perftimer.h" 6 7 #include <stdio.h> 8 #include <string> 9 10 #include "base/basictypes.h" 11 #include "base/file_path.h" 12 #include "base/file_util.h" 13 #include "base/logging.h" 14 15 static FILE* perf_log_file = NULL; 16 17 bool InitPerfLog(const FilePath& log_file) { 18 if (perf_log_file) { 19 // trying to initialize twice 20 NOTREACHED(); 21 return false; 22 } 23 24 perf_log_file = file_util::OpenFile(log_file, "w"); 25 return perf_log_file != NULL; 26 } 27 28 void FinalizePerfLog() { 29 if (!perf_log_file) { 30 // trying to cleanup without initializing 31 NOTREACHED(); 32 return; 33 } 34 file_util::CloseFile(perf_log_file); 35 } 36 37 void LogPerfResult(const char* test_name, double value, const char* units) { 38 if (!perf_log_file) { 39 NOTREACHED(); 40 return; 41 } 42 43 fprintf(perf_log_file, "%s\t%g\t%s\n", test_name, value, units); 44 printf("%s\t%g\t%s\n", test_name, value, units); 45 } 46