Home | History | Annotate | Download | only in base
      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