Skip to content

[cleanup] Remove old code in Dune::Timer

Carsten Gräser requested to merge feature/cleanup-timer into master

Dune::Timer includes two alternative implementations for measuring time. Historically one was based on getrusage() and the other one on std::clock(). The former was the default and the latter could be enabled by defining a macro. Both in fact measured the time spend computing by the process.

In fa43f4bf the default code path was changed from getrusage() to std::chrono::high_resolution_clock::now() while std::clock() could still be enabled by the macro. This was in fact a breaking change because the new default version measures the elapsed real time.

This patch removed the non-default version based on std::clock because:

  • The breaking change happened almost 11 years so one can consider the new behavior the established 'correct' version.
  • The macro switch was neither documented nor tested.
  • Setting the macro manually in user code is error prone.
  • Both versions do completely different things leading to different measurements. It's not even clear that one produces larger numbers in general: std::clock adds up time spend computing in all threads of the process. Thus time in concurrent threads is added up, while the time a thread is sleeping is not counted.

There a minor grain of salt: The documentation still documented the old behaviour and instead of 'fixing' the code this patch adjusts the documentation to established reality.

Edited by Carsten Gräser

Merge request reports

Loading