ROOT logo
AliRoot » STEER » STEERBASE » AliSysInfo

class AliSysInfo: public TObject

  class ProcInfo_t:
  Float_t	fCpuSys	system time used by this process in seconds
  Float_t	fCpuUser	user time used by this process in seconds
  Long_t	fMemResident	resident memory used by this process in KB
  Long_t	fMemVirtual	virtual memory used by this process in KB

Function Members (Methods)

public:
AliSysInfo()
~AliSysInfo()
voidTObject::AbstractMethod(const char* method) const
static voidAddCallBack(AliSysInfo::StampCallback_t callback)
static voidAddStamp(const char* sname, Int_t id0 = -1, Int_t id1 = -1, Int_t id2 = -1, Int_t id3 = -1)
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
static voidCloseMemStat()
virtual Int_tTObject::Compare(const TObject* obj) const
static Bool_tContain(const char* str1, const char* str2)
virtual voidTObject::Copy(TObject& object) 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
static Double_tEstimateObjectSize(TObject* object)
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
static Bool_tGetVerbose()
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 AliSysInfo*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
static TTree*MakeTree(const char* lname)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidOpenMemStat()
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 voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
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)
static voidSetVerbose(Bool_t v = kFALSE)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static TTree*Test()
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:
AliSysInfo(const AliSysInfo& source)
AliSysInfo&operator=(const AliSysInfo& rec)

Data Members

private:
void**fCallBackFunccall back functions
static AliSysInfo*fInstanceinstance pointer
TMemStatManager*fMemStat
Int_tfNCallBacknumber of call back functions
fstream*fSysWatchsystem watch - Memory and CPU usage
TStopwatch*fTimertimer
static Bool_tfgVerbosedo we want actually to write the stamps ?

Class Charts

Inheritance Chart:
TObject
AliSysInfo

Function documentation

AliSysInfo()
AliSysInfo * Instance()


void AddStamp(const char* sname, Int_t id0 = -1, Int_t id1 = -1, Int_t id2 = -1, Int_t id3 = -1)

TTree * MakeTree(const char* lname)
 char * lname = "syswatch.log"
Bool_t Contain(const char* str1, const char* str2)


void OpenMemStat()


USE IFDEF if MEMSTAT ENABLED
  Instance()->fMemStat = TMemStatManager::GetInstance();
   Instance()->fMemStat->SetAutoStamp(10000000, 10000000,1000000);
   Instance()->fMemStat->Enable();
void CloseMemStat()


USE IFDEF if MEMSTAT ENABLED
if (Instance()->fMemStat  == TMemStatManager::GetInstance()) Instance()->fMemStat->Close();
Instance()->fMemStat=0;
void AddCallBack(AliSysInfo::StampCallback_t callback)
 add cal back function

TTree* Test()
 Test example for AliSysInfo:
 1. Make huge memory leak
 2. Slow down execution

    To use the test:
    TTree * tree = AliSysInfo::Test();
    // Make alias what we set as input
    tree->SetAlias("deltaVMIn","(id0*100000+id1*10000+id2*1000)/1000000.")
    tree->SetAlias("deltaVM","(pI.fMemVirtual-pIOld.fMemVirtual)");
    tree->SetAlias("deltaTIn","(id1+id0*10)");
    tree->SetAlias("deltaT","stampSec-stampOldSec");
    //
    tree->SetMarkerStyle(23); tree->SetMarkerSize(0.5);
    // Memory usage
    tree->Draw("deltaVM:deltaVMIn","Entry$>0");
    // or alternative
    tree->Draw("deltaVM:deltaVMIn","Entry$>0","prof");
    //
    // draw time usage
    tree->Draw("deltaT:deltaTIn","Entry$>0");


 The delta of VM as obtained from the AliSysInfo starts to be proportional
 to  the input allocation after 0.12 MBy (and it is system dependent)
 Bellow these limit the deltaVM can be used only in mean.
 (compare first and  profile histogram)
Double_t EstimateObjectSize(TObject* object)
 Estimate size of object as represented in the memory size in bytes
 Warnings:
  1. Only data memebrs which are persistent are counted
  2. Local copy of the object is temporary created in memory
  3. Do not use it in standard programs, time and memory consument procedure

AliSysInfo()
void SetVerbose(Bool_t v = kFALSE)
{fgVerbose = v;}
Bool_t GetVerbose()
{return fgVerbose;}
AliSysInfo& operator=(const AliSysInfo& rec)