code: private static PercentileDistributionSummary computeIfAbsent(
        Registry registry, Id id, long min, long max) {
      Object summary = Utils.computeIfAbsent(
          registry.state(), id, i -> new PercentileDistributionSummary(registry, id, min, max));
      return (summary instanceof PercentileDistributionSummary)
          ? ((PercentileDistributionSummary) summary).withRange(min, max)
          : new PercentileDistributionSummary(registry, id, min, max);
    }
docs: Only create a new instance of the counter if there is not a cached copy. The array for
  keeping track of the counter per bucket is quite large (1-2k depending on pointer size)
  and can lead to a high allocation rate if the timer is not reused in a high volume call
  site.