Currently Timer, Counter, Gauge and Recorder are immutable and don't serve as a storage for corresponding timer/counter etc. data. They serve only as a bridge to an actual <metricType>Handler classes.
Actual backends are only holding a registry of underlying -Handler and public API types are only stored in a user code. This likely means that in the usual use case Timer and counterparts won't be passed around a lot, and changing them to a value type will reduce allocations.
Currently
Timer,Counter,GaugeandRecorderare immutable and don't serve as a storage for corresponding timer/counter etc. data. They serve only as a bridge to an actual<metricType>Handlerclasses.Actual backends are only holding a registry of underlying
-Handlerand public API types are only stored in a user code. This likely means that in the usual use caseTimerand counterparts won't be passed around a lot, and changing them to a value type will reduce allocations.