// @(#) $Id$ // Author: Uli Frankenfeld //*-- Copyright © ALICE HLT Group /** \class AliHLTBenchmark //_____________________________________________________________ // // AliHLTBenchmark // // Benchmark class for level3 code // // */ #ifndef no_root #include #include #include #include #include #endif #include "AliHLTStandardIncludes.h" #include "AliHLTRootTypes.h" #include "AliHLTLogging.h" #include "AliHLTBenchmark.h" #if __GNUC__ >= 3 using namespace std; #endif ClassImp(AliHLTBenchmark) AliHLTBenchmark::AliHLTBenchmark() { //Constructor fNbench = 0; fNmax = 20; fNames = 0; fTimer = 0; fSum = 0; fMin = 0; fMax = 0; fCount = 0; } AliHLTBenchmark::~AliHLTBenchmark() { //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 AliHLTBenchmark::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(AliHLTLog::kWarning,"AliHLTBenchmark::Start","Start") <<"too many benches"<fMax[bench])fMax[bench]=val; } } void AliHLTBenchmark::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 AliHLTBenchmark::GetCpuTime() { //get cpu time {return (Double_t)(clock()) / CLOCKS_PER_SEC;} }