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
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
00029
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 }