Go to the source code of this file.
|
static void | fillPathSummary (unsigned int iStartIndex, unsigned int iEndIndex, std::vector< std::string > const &iPathNames, std::vector< std::vector< std::string >> const &iModulesOnPaths, std::vector< std::vector< SystemTimeKeeper::PathTiming >> const &iPathTimings, std::vector< PathTimingSummary > &iSummary) |
|
static void fillPathSummary |
( |
unsigned int |
iStartIndex, |
|
|
unsigned int |
iEndIndex, |
|
|
std::vector< std::string > const & |
iPathNames, |
|
|
std::vector< std::vector< std::string >> const & |
iModulesOnPaths, |
|
|
std::vector< std::vector< SystemTimeKeeper::PathTiming >> const & |
iPathTimings, |
|
|
std::vector< PathTimingSummary > & |
iSummary |
|
) |
| |
|
static |
Definition at line 236 of file SystemTimeKeeper.cc.
References diffTreeTool::index, edm::SystemTimeKeeper::PathTiming::m_moduleTiming, edm::SystemTimeKeeper::PathTiming::m_timer, edm::SystemTimeKeeper::pathTiming(), and edm::WallclockTimer::realTime().
242 iSummary.resize(iEndIndex-iStartIndex);
244 for(
auto const& stream: iPathTimings) {
245 auto it = iSummary.begin();
246 for(
unsigned int index = iStartIndex;
index < iEndIndex; ++
index, ++it) {
247 auto const& pathTiming = stream[
index];
248 it->name = iPathNames[
index];
249 it->bitPosition =
index-iStartIndex;
250 if(not pathTiming.m_moduleTiming.empty()) {
251 it->timesRun += pathTiming.m_moduleTiming[0].m_timesVisited;
253 it->realTime += pathTiming.m_timer.realTime();
254 if(it->moduleInPathSummaries.empty()) {
255 it->moduleInPathSummaries.resize(pathTiming.m_moduleTiming.size());
257 for(
unsigned int modIndex=0; modIndex < pathTiming.m_moduleTiming.size(); ++modIndex) {
258 auto const& modTiming =pathTiming.m_moduleTiming[modIndex];
259 auto& modSummary =it->moduleInPathSummaries[modIndex];
260 if(modSummary.moduleLabel.empty()) {
261 modSummary.moduleLabel = iModulesOnPaths[
index][modIndex];
263 modSummary.timesVisited += modTiming.m_timesVisited;
264 modSummary.realTime += modTiming.m_realTime;