This integrates the kth-greatest computation into the ArrayHitCounter, which gets rid of a loop for finding the min and max counts. While we're there, also removing the min count, since that is almost always zero and using an array of shorts for the histograms.
In aggregate, this gets the benchmarks up to 0.96 at 195 qps:
Though they did float around a bit (see the Benchmark commits).
Related Issue
611
Changes
This integrates the kth-greatest computation into the ArrayHitCounter, which gets rid of a loop for finding the min and max counts. While we're there, also removing the min count, since that is almost always zero and using an array of shorts for the histograms.
In aggregate, this gets the benchmarks up to 0.96 at 195 qps:
Though they did float around a bit (see the Benchmark commits).
Testing and Validation
Added more unit tests for the ArrayHitCounter.