ROOT logo
AliRoot » STEER » STEERBASE » AliCodeTimer

class AliCodeTimer: public TObject

 Class to get organized with the way we're timing our methods...

 Typical usage is based on macros (like for AliLog related ones AliDebug...)

 The idea is to instrument the code with a few macro calls, and then,
 at the end of the execution, get a printout of *all* the timers, by using
 AliCodeTimer::Instance()->Print()
 instead of getting scattered outputs all over the place.

 To time a given method, use :

 void ClassA::MethodA(....)
 {
    AliCodeTimerAuto("")
 }

 To get several timers within a same method, use :

 void ClassA::MethodB(...)
 {
   AliCodeTimerStart("doing something")

   AliCodeTimerStop("doing something")

   AliCodeTimerStart("doing something else")

   AliCodeTimerStop("doing something else")
 }

Function Members (Methods)

public:
AliCodeTimer()
virtual~AliCodeTimer()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
voidContinue(const char* classname, const char* methodname, const char* message = "")
virtual voidTObject::Copy(TObject& object) const
Double_tCpuTime(const char* classname, const char* methodname, const char* message = "") const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
static AliCodeTimer*Instance()
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
Double_tRealTime(const char* classname, const char* methodname, const char* message = "") const
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
voidStart(const char* classname, const char* methodname, const char* message = "")
voidStop(const char* classname, const char* methodname, const char* message = "")
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
AliCodeTimer(const AliCodeTimer& rhs)
TObjArray*MessageArray(const char* classname, const char* methodname) const
TMap*MethodMap(const char* classname) const
AliCodeTimer&operator=(const AliCodeTimer& rhs)
voidPrintClass(const char* classname) const
voidPrintMethod(const char* classname, const char* methodname) const
TStopwatch*Stopwatch(const char* classname, const char* methodname, const char* message = "") const

Data Members

private:
TMap*fTimers< internal timers
static AliCodeTimer*fgInstance< unique instance

Class Charts

Inheritance Chart:
TObject
AliCodeTimer

Function documentation

AliCodeTimer()
 Ctor
~AliCodeTimer()
 Dtor
Instance()
 single instance of this class
void Continue(const char* classname, const char* methodname, const char* message = "")
 Resume a previously stop timer
Double_t CpuTime(const char* classname, const char* methodname, const char* message = "") const
 Return cpu time for a given timer
MethodMap(const char* classname) const
 Return the map for a given "classname"
MessageArray(const char* classname, const char* methodname) const
 Return the array for a given AliPair (classname,methodname)
void PrintMethod(const char* classname, const char* methodname) const
 Print all the timers for a given method
void PrintClass(const char* classname) const
 Print all the timers for a given class
void Print(Option_t* opt = "") const
 Print all the timers we hold
RealTime(const char* classname, const char* methodname, const char* message = "") const
 Return real time of a given time
Reset()
Start(const char* classname, const char* methodname, const char* message = "")
 Start a given time
Stop(const char* classname, const char* methodname, const char* message = "")
 Stop a given timer
Stopwatch(const char* classname, const char* methodname, const char* message = "") const
 Return the internal TStopwatch for a given timer
AliCodeTimer()
AliPair& operator=(const AliCodeTimer& rhs)