Skip to content

Counter-based timers

Frank Winklmeier requested to merge fwinkl/Gaudi:counter_timers into master

Implement a Gaudi::Timer class that accumulates its statistics in a Counter based on the ideas from @graven outlined in !762 (comment 1850572).

  • GenericTimer is a generic timer that can be templated with a std::chrono-compatible clock and a precision. A timing measurement is done via the RAII helper class ScopeTimer.
  • The Timer can register itself with an owner using the dedicated constructor.
  • RdtscClock is a (non-walltime) clock based on rdtsc. Depending on the available CPU this can be significantly faster than the default clock. Run the test_GaudiTimer unit tests for a measurement of the overhead of the various clocks.
  • Gaudi/Timers.h provides a default Gaudi::Timer based on wall-clock and Gaudi::FastTimer based on the RdtscClock.

Next steps:

  • follow-up on a "Counter service" (issue #51) that can then serve as a replacement for the ChronoStatSvc
  • add an instance of Gaudi::Timer to the default Algorithm base-class
Edited by Frank Winklmeier

Merge request reports