Skip to content

Commit a387ab0

Browse files
committed
Capture additional timings in TimingServiceBase
These are additional framework activities which begin before Services have started.
1 parent 76ecfc5 commit a387ab0

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

FWCore/AbstractServices/interface/TimingServiceBase.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,14 @@ namespace edm {
4141
virtual double getTotalCPU() const = 0;
4242

4343
static void jobStarted();
44+
static void pythonStarting();
45+
static void pythonFinished();
46+
static void servicesStarting();
4447

4548
static std::chrono::steady_clock::time_point jobStartTime();
49+
static std::chrono::steady_clock::time_point pythonStartTime();
50+
static std::chrono::steady_clock::time_point pythonEndTime();
51+
static std::chrono::steady_clock::time_point servicesStartTime();
4652
};
4753
} // namespace edm
4854

FWCore/AbstractServices/src/TimingServiceBase.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,26 @@ std::chrono::steady_clock::time_point TimingServiceBase::jobStartTime() {
2424
return s_jobStartTime;
2525
}
2626

27+
void TimingServiceBase::pythonStarting() { (void)pythonStartTime(); }
28+
void TimingServiceBase::pythonFinished() { (void)pythonEndTime(); }
29+
30+
void TimingServiceBase::servicesStarting() { (void)servicesStartTime(); }
31+
32+
std::chrono::steady_clock::time_point TimingServiceBase::pythonStartTime() {
33+
static const std::chrono::steady_clock::time_point s_pythonStartTime = std::chrono::steady_clock::now();
34+
return s_pythonStartTime;
35+
}
36+
37+
std::chrono::steady_clock::time_point TimingServiceBase::pythonEndTime() {
38+
static const std::chrono::steady_clock::time_point s_pythonEndTime = std::chrono::steady_clock::now();
39+
return s_pythonEndTime;
40+
}
41+
42+
std::chrono::steady_clock::time_point TimingServiceBase::servicesStartTime() {
43+
static const std::chrono::steady_clock::time_point s_servicesStartTime = std::chrono::steady_clock::now();
44+
return s_servicesStartTime;
45+
}
46+
2747
//
2848
// constructors and destructor
2949
//

FWCore/Framework/bin/cmsRun.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,13 @@ int main(int argc, const char* argv[]) {
189189
}
190190
std::shared_ptr<edm::ProcessDesc> processDesc;
191191
try {
192+
edm::TimingServiceBase::pythonStarting();
192193
std::unique_ptr<edm::ParameterSet> parameterSet;
193194
if (!fileName.empty())
194195
parameterSet = edm::readConfig(fileName, pythonOptValues);
195196
else
196197
edm::makeParameterSets(cmdString, parameterSet);
198+
edm::TimingServiceBase::pythonFinished();
197199
processDesc = std::make_shared<edm::ProcessDesc>(std::move(parameterSet));
198200
} catch (edm::Exception const&) {
199201
throw;

0 commit comments

Comments
 (0)