SavePerfInfo.C

Go to the documentation of this file.
00001 #include <iostream>
00002 #include "TFile.h"
00003 #include "TIterator.h"
00004 #include "TRegexp.h"
00005 #include "TProof.h"
00006 
00007 
00008 void SavePerfInfo(const Char_t *filename)
00009 {
00010    // Save PROOF timing information from TPerfStats to file 'filename' 
00011 
00012    if (!gProof) {
00013       cout << "PROOF must be run to save output performance information" << endl;
00014       return;
00015    }
00016    
00017    TFile f(filename, "UPDATE");
00018    if (f.IsZombie()) {
00019       cout << "Could not open file " << filename << " for writing" << endl;
00020    } else {
00021       f.cd();
00022       
00023       TIter NextObject(gProof->GetOutputList());
00024       TObject* obj = 0;
00025       while (obj = NextObject()) {
00026          TString objname = obj->GetName();
00027          if (objname.Contains(TRegexp("^PROOF_"))) {
00028             // must list the objects since other PROOF_ objects exist
00029             // besides timing objects
00030             if (objname == "PROOF_PerfStats" ||
00031                 objname == "PROOF_PacketsHist" ||
00032                 objname == "PROOF_EventsHist" ||
00033                 objname == "PROOF_NodeHist" ||
00034                 objname == "PROOF_LatencyHist" ||
00035                 objname == "PROOF_ProcTimeHist" ||
00036                 objname == "PROOF_CpuTimeHist")
00037                obj->Write();
00038          }
00039       }
00040 
00041       f.Close();
00042    }
00043 
00044 }

Generated on Tue Jul 5 15:15:07 2011 for ROOT_528-00b_version by  doxygen 1.5.1