CMS 3D CMS Logo

evf::TimeProfilerService Class Reference

#include <EventFilter/Utilities/interface/TimeProfilerService.h>

List of all members.

Public Member Functions

double getAve (std::string const &name) const
double getFirst (std::string const &name) const
double getMax (std::string const &name) const
void postBeginJob ()
void postEndJob ()
void postEventProcessing (const edm::Event &, const edm::EventSetup &)
void postModule (const edm::ModuleDescription &)
void postSource ()
void preEventProcessing (const edm::EventID &, const edm::Timestamp &)
void preModule (const edm::ModuleDescription &)
void preSource ()
 TimeProfilerService (const edm::ParameterSet &, edm::ActivityRegistry &)
 ~TimeProfilerService ()

Private Attributes

double curr_module_time_
boost::mutex lock_
std::map< std::string, timesprofiles_

Classes

struct  times


Detailed Description

Definition at line 20 of file TimeProfilerService.h.


Constructor & Destructor Documentation

evf::TimeProfilerService::TimeProfilerService ( const edm::ParameterSet iPS,
edm::ActivityRegistry iRegistry 
)

Definition at line 14 of file TimeProfilerService.cc.

References postBeginJob(), postEndJob(), postEventProcessing(), postModule(), preEventProcessing(), preModule(), edm::ActivityRegistry::watchPostBeginJob(), edm::ActivityRegistry::watchPostEndJob(), edm::ActivityRegistry::watchPostModule(), edm::ActivityRegistry::watchPostProcessEvent(), edm::ActivityRegistry::watchPreModule(), and edm::ActivityRegistry::watchPreProcessEvent().

evf::TimeProfilerService::~TimeProfilerService (  ) 

Definition at line 26 of file TimeProfilerService.cc.

00027   {}


Member Function Documentation

double evf::TimeProfilerService::getAve ( std::string const &  name  )  const

Definition at line 82 of file TimeProfilerService.cc.

References it, and profiles_.

00083   {
00084     std::map<std::string, times>::const_iterator it = profiles_.find(name);
00085 
00086     if(it == profiles_.end())
00087       return -1.;
00088     return (*it).second.total_/(*it).second.ncalls_;
00089   }

double evf::TimeProfilerService::getFirst ( std::string const &  name  )  const

Definition at line 64 of file TimeProfilerService.cc.

References it, and profiles_.

00065   {
00066     std::map<std::string, times>::const_iterator it = profiles_.find(name);
00067 
00068     if(it==profiles_.end())
00069       return -1.;
00070     return (*it).second.firstEvent_;
00071   }

double evf::TimeProfilerService::getMax ( std::string const &  name  )  const

Definition at line 73 of file TimeProfilerService.cc.

References it, and profiles_.

00074   {
00075     std::map<std::string, times>::const_iterator it = profiles_.find(name);
00076 
00077     if(it == profiles_.end())
00078       return -1.;
00079     return (*it).second.max_;
00080   }

void evf::TimeProfilerService::postBeginJob (  ) 

Definition at line 29 of file TimeProfilerService.cc.

Referenced by TimeProfilerService().

00030   {}

void evf::TimeProfilerService::postEndJob (  ) 

Definition at line 32 of file TimeProfilerService.cc.

Referenced by TimeProfilerService().

00033   {}

void evf::TimeProfilerService::postEventProcessing ( const edm::Event e,
const edm::EventSetup  
)

Definition at line 37 of file TimeProfilerService.cc.

Referenced by TimeProfilerService().

00038   {}

void evf::TimeProfilerService::postModule ( const edm::ModuleDescription desc  ) 

Definition at line 44 of file TimeProfilerService.cc.

References curr_module_time_, evf::TimeProfilerService::times::firstEvent_, evf::getTime(), it, evf::TimeProfilerService::times::max_, edm::ModuleDescription::moduleLabel_, evf::TimeProfilerService::times::ncalls_, profiles_, t, evf::TimeProfilerService::times::total_, and tt.

Referenced by TimeProfilerService().

00045   {
00046     double t = getTime() - curr_module_time_;
00047     std::map<std::string, times>::iterator it = profiles_.find(desc.moduleLabel_);
00048     if(it==profiles_.end())
00049       {
00050         times tt;
00051         tt.ncalls_ = 0;
00052         tt.total_ = 0.;
00053         tt.max_ = 0.;
00054         tt.firstEvent_ = t;
00055         profiles_.insert(std::pair<std::string, times>(desc.moduleLabel_,tt));
00056       }      
00057     else
00058       {
00059         (*it).second.ncalls_++;
00060         (*it).second.total_ += t;
00061         (*it).second.max_  = ((*it).second.max_ > t) ? (*it).second.max_ : t;
00062       }
00063   }

void evf::TimeProfilerService::postSource (  ) 

void evf::TimeProfilerService::preEventProcessing ( const edm::EventID iID,
const edm::Timestamp iTime 
)

Definition at line 34 of file TimeProfilerService.cc.

Referenced by TimeProfilerService().

00036   {}

void evf::TimeProfilerService::preModule ( const edm::ModuleDescription  ) 

Definition at line 39 of file TimeProfilerService.cc.

References curr_module_time_, and evf::getTime().

Referenced by TimeProfilerService().

00040   {
00041     curr_module_time_ = getTime();
00042   }

void evf::TimeProfilerService::preSource (  ) 


Member Data Documentation

double evf::TimeProfilerService::curr_module_time_ [private]

Definition at line 45 of file TimeProfilerService.h.

Referenced by postModule(), and preModule().

boost::mutex evf::TimeProfilerService::lock_ [private]

Definition at line 44 of file TimeProfilerService.h.

std::map<std::string, times> evf::TimeProfilerService::profiles_ [private]

Definition at line 52 of file TimeProfilerService.h.

Referenced by getAve(), getFirst(), getMax(), and postModule().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:46:50 2009 for CMSSW by  doxygen 1.5.4