// @(#) $Id$ // Author: Uli Frankenfeld //*-- Copyright © ALICE HLT Group /** \class AliHLTTPCBenchmark //_____________________________________________________________ // // AliHLTTPCBenchmark // // Benchmark class for level3 code // // */ #ifndef no_root #include #include #include #include #include #endif #include "AliHLTTPCStandardIncludes.h" #include "AliHLTTPCRootTypes.h" #include "AliHLTTPCLogging.h" #include "AliHLTTPCBenchmark.h" #if __GNUC__ >= 3 using namespace std; #endif ClassImp(AliHLTTPCBenchmark) AliHLTTPCBenchmark::AliHLTTPCBenchmark() { //Constructor fNbench = 0; fNmax = 20; fNames = 0; fTimer = 0; fSum = 0; fMin = 0; fMax = 0; fCount = 0; } AliHLTTPCBenchmark::~AliHLTTPCBenchmark() { //deconstructor fNbench = 0; if (fNames) {delete [] fNames; fNames = 0;} if (fTimer) {delete [] fTimer; fTimer = 0;} if (fSum) {delete [] fSum; fSum = 0;} if (fMin) {delete [] fMin; fMin = 0;} if (fMax) {delete [] fMax; fMax = 0;} if (fCount) {delete [] fCount; fCount =0;} } Int_t AliHLTTPCBenchmark::GetBench(const Char_t *name) { //get bench with name for (Int_t i=0;i=0) { // Resume the existent benchmark fTimer[bench].Reset(); fTimer[bench].Start(); } else LOG(AliHLTTPCLog::kWarning,"AliHLTTPCBenchmark::Start","Start") <<"too many benches"<fMax[bench])fMax[bench]=val; } } void AliHLTTPCBenchmark::Analyze(const Char_t* name) { //get results of benchmark Float_t *x = new Float_t[fNbench]; Float_t *y = new Float_t[fNbench]; Float_t *eyl = new Float_t[fNbench]; Float_t *eyh = new Float_t[fNbench]; Char_t filename[256]; sprintf(filename,"%s.dat",name); FILE *f= fopen(filename,"w"); for (Int_t i=0;iSetTitle("benchmark"); gr->SetMarkerStyle(8); gr->SetMinimum(0); //gr->Draw("ALP"); gr->Write(); file->Close(); delete file; file=0; #endif delete[] x; delete[] y; delete[] eyl; delete[] eyh; } Double_t AliHLTTPCBenchmark::GetCpuTime() { //get cpu time {return (Double_t)(clock()) / CLOCKS_PER_SEC;} }