Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TBenchmark.h
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Rene Brun 12/12/94
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 // ---------------------------------- Benchmark.h
12 
13 #ifndef ROOT_TBenchmark
14 #define ROOT_TBenchmark
15 
16 
17 
18 //////////////////////////////////////////////////////////////////////////
19 // //
20 // TBenchmark //
21 // //
22 // This class is a ROOT utility to help benchmarking applications //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 
26 #include "TNamed.h"
27 #include "TStopwatch.h"
28 
29 class TBenchmark : public TNamed {
30 
31 protected:
32 
33  Int_t fNbench; // Number of active benchmarks
34  Int_t fNmax; // Maximum number of benchmarks initialized
35  TString *fNames; //[fNbench] Names of benchmarks
36  Float_t *fRealTime; //[fNbench] Real Time
37  Float_t *fCpuTime; //[fNbench] Cpu Time
38  TStopwatch *fTimer; // Timers
39 
40  TBenchmark(const TBenchmark&);
41  TBenchmark& operator=(const TBenchmark&);
42 
43 public:
44  TBenchmark();
45  virtual ~TBenchmark();
46  Int_t GetBench(const char *name) const;
47  Float_t GetCpuTime(const char *name);
48  Float_t GetRealTime(const char *name);
49  virtual void Print(Option_t *name="") const;
50  virtual void Reset();
51  virtual void Show(const char *name);
52  virtual void Start(const char *name);
53  virtual void Stop(const char *name);
54  virtual void Summary(Float_t &rt, Float_t &cp);
55 
56  ClassDef(TBenchmark,0) //ROOT utility to help benchmarking applications
57 };
58 
59 R__EXTERN TBenchmark *gBenchmark;
60 
61 #endif