[cleanup] Remove old code in Dune::Timer
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.