opentelemetry-java icon indicating copy to clipboard operation
opentelemetry-java copied to clipboard

Lower exclusive exponential histogram bounds

Open jack-berg opened this issue 3 years ago • 2 comments

Implements spec PR #2633.

Resolves #4698.

jack-berg avatar Aug 18 '22 19:08 jack-berg

Codecov Report

Base: 90.12% // Head: 90.76% // Increases project coverage by +0.63% :tada:

Coverage data is based on head (d3d2b42) compared to base (6eea038). Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #4700      +/-   ##
============================================
+ Coverage     90.12%   90.76%   +0.63%     
+ Complexity     5093     4839     -254     
============================================
  Files           587      555      -32     
  Lines         15714    14430    -1284     
  Branches       1510     1402     -108     
============================================
- Hits          14163    13097    -1066     
+ Misses         1095      912     -183     
+ Partials        456      421      -35     
Impacted Files Coverage Δ
...entialhistogram/ExponentialHistogramPointData.java 100.00% <ø> (ø)
.../aggregator/DoubleExponentialHistogramBuckets.java 88.03% <100.00%> (-0.77%) :arrow_down:
...ternal/aggregator/ExponentialHistogramIndexer.java 100.00% <100.00%> (ø)
...esting/context/SettableContextStorageProvider.java 37.93% <0.00%> (-24.14%) :arrow_down:
...ava/io/opentelemetry/sdk/internal/RateLimiter.java 94.11% <0.00%> (-5.89%) :arrow_down:
...metry/sdk/metrics/export/PeriodicMetricReader.java 87.14% <0.00%> (-2.86%) :arrow_down:
.../opentelemetry/sdk/internal/ComponentRegistry.java 90.90% <0.00%> (-2.43%) :arrow_down:
...o/opentelemetry/api/internal/ReadOnlyArrayMap.java 91.11% <0.00%> (-2.23%) :arrow_down:
...y/exporter/internal/marshal/CodedOutputStream.java 69.82% <0.00%> (-1.19%) :arrow_down:
...io/opentelemetry/sdk/logs/SdkLogRecordBuilder.java 97.36% <0.00%> (-0.14%) :arrow_down:
... and 124 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

codecov[bot] avatar Aug 18 '22 20:08 codecov[bot]

This PR was marked stale due to lack of activity. It will be closed in 14 days.

github-actions[bot] avatar Sep 12 '22 17:09 github-actions[bot]

Great work here! Did this move any of the exponential histogram benchmarks?

jsuereth avatar Oct 03 '22 21:10 jsuereth

Here's the benchmarks before this change:

Benchmark                                                                       (aggregation)                (valueGen)  Mode  Cnt       Score      Error   Units
HistogramBenchmark.aggregate_10Threads                                EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10   30941.755 ±  824.071   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate                 EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm            EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.015 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count                      EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                                EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10   40495.954 ±  659.402   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate                 EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm            EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.020 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count                      EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                                EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10   42189.157 ±  358.051   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate                 EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm            EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.021 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count                      EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   25395.742 ±  235.525   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.012 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10   30806.297 ±  171.354   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.015 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  193880.340 ± 2028.446   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.095 ±    0.004    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   29386.212 ±  395.061   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10  194459.770 ± 1539.460   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.094 ±    0.002    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  282776.944 ± 3094.907   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.132 ±    0.003    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                                 EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10   25572.981 ±  105.062   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.010 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                                 EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10   33924.463 ±  637.864   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                                 EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10   34697.254 ±  507.783   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   25358.539 ±  147.772   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10   24477.776 ±  133.275   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.010 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  167793.161 ±  871.976   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.068 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   23745.744 ±   33.852   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.010 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10  168646.171 ± 2872.116   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.069 ±    0.002    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  174614.520 ±  941.710   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.071 ±    0.003    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                                 EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10   26736.263 ±   61.180   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                                 EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10   36424.488 ± 2408.686   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.018 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                                 EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10   37326.456 ±  292.351   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.018 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   21822.273 ±  226.564   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10   23591.674 ±  116.508   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.012 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  174749.898 ± 1163.440   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.085 ±    0.004    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   21371.443 ±  185.398   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10  171938.665 ± 2063.697   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.084 ±    0.004    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  175363.037 ± 2448.905   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.085 ±    0.003    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts

And here's the same benchmarks with this change:

Benchmark                                                                       (aggregation)                (valueGen)  Mode  Cnt       Score      Error   Units
HistogramBenchmark.aggregate_10Threads                                EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10   33121.029 ± 5009.016   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate                 EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm            EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.016 ±    0.002    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count                      EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                                EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10   43938.080 ± 1490.862   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate                 EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm            EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.021 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count                      EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                                EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10   42956.970 ±  441.221   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate                 EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm            EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.021 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count                      EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   29662.782 ±  324.530   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.015 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10   70552.755 ± 1718.786   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.030 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  198453.498 ± 1265.088   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.097 ±    0.002    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   29681.582 ±  199.344   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10  200732.349 ± 1233.493   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.098 ±    0.002    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_10Threads                      EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  280591.837 ± 2082.625   ns/op
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate       EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.003 ±    0.001  MB/sec
HistogramBenchmark.aggregate_10Threads:·gc.alloc.rate.norm  EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.131 ±    0.003    B/op
HistogramBenchmark.aggregate_10Threads:·gc.count            EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                                 EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10   25601.830 ±  104.067   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.010 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                                 EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10   33746.622 ±  872.331   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                                 EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10   34770.546 ±  882.084   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   26640.024 ±   20.104   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10   22696.049 ±   43.655   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.009 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  168237.024 ±  583.513   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.069 ±    0.003    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   26093.566 ±  110.507   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10  170147.305 ± 3298.075   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.070 ±    0.003    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_1Threads                       EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  171534.264 ± 2797.141   ns/op
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10      ≈ 10⁻⁴             MB/sec
HistogramBenchmark.aggregate_1Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.070 ±    0.001    B/op
HistogramBenchmark.aggregate_1Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                                 EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10   26704.491 ±  134.262   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                                 EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10   35709.558 ±  298.198   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.018 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                                 EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10   36898.213 ±  397.193   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate                  EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm             EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10       0.018 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count                       EXPLICIT_DEFAULT_BUCKET          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   22043.085 ±  132.275   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10   26220.531 ±  132.236   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.014 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  244765.577 ± 5390.385   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.115 ±    0.006    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_SMALL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10   21242.547 ±  340.804   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10       0.011 ±    0.001    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER   FIXED_BUCKET_BOUNDARIES  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10  175622.102 ± 1043.238   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10       0.087 ±    0.004    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER  UNIFORM_RANDOM_WITHIN_2K  avgt   10         ≈ 0             counts
HistogramBenchmark.aggregate_5Threads                       EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10  179097.259 ± 1592.087   ns/op
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate        EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.002 ±    0.001  MB/sec
HistogramBenchmark.aggregate_5Threads:·gc.alloc.rate.norm   EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10       0.086 ±    0.003    B/op
HistogramBenchmark.aggregate_5Threads:·gc.count             EXPONENTIAL_CIRCULAR_BUFFER          GAUSSIAN_LATENCY  avgt   10         ≈ 0             counts

Its useful to save these results locally and compare them using a diff tool.

There's no noticeable difference that I can see. Some results are slightly higher, some results are slightly lower. The differences seem to be within the error margin resulting from not completely isolating the environment.

I did notice that both with and without this change, the exponential histogram performs faster than explicit bucket histograms across the board.

jack-berg avatar Oct 03 '22 22:10 jack-berg