Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Enhancement
This Pull Request introduces the following optimization:
Reduce time unit conversion overhead
The
Counter
class was originally designed so that the times collected by theCounter
instances could be maintained in differentTimeUnit
s as specified by the constructorCounter(Type, TimeUnit)
.This flexibility comes with a cost: all units are converted during time-source fetching. However, in practice, only "nanoseconds" were used. Removing this feature means we no longer need intermediary time unit conversions. Now, the
Counter
class, by definition, will store amounts in nanoseconds, making the class cleaner and faster.With this simplification, we also removed the "default time unit" setting that used to be applied when no other was specified.
NOTE: Elapsed times can still be converted normally using a
TimingSession
or aTimingSessionContainer
(such asStopwatch
) but the units are stored only as nanoseconds at theCounter
level.Other minor improvements
SystemUtils
class optimization:ThreadMXBean
instance, avoiding repeated lookups for this Managed BeanTimingSession
class:Map.containsKey(String)
which caused the same key to be searched twice during thegetCounter(Type)
operationDurationUtils