Hi, I noticed that there's more heap allocation than 0.8.3. Below is the detail test data.
3.2.0
@Slf4j
@State(Scope.Benchmark)
public class UpdateDoubleSketchDemo {
private final UpdateDoublesSketch doublesSketch = new DoublesSketchBuilder().build();
@Benchmark
public void benchMark() {
doublesSketch.update(RandomUtil.randomDouble());
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(UpdateDoubleSketchDemo.class.getSimpleName())
.addProfiler(GCProfiler.class)
.forks(1)
.build();
new Runner(opt).run();
}
}
it shows
Benchmark Mode Cnt Score Error Units
UpdateDoubleSketchDemo.benchMark thrpt 5 21829812.630 ± 832954.814 ops/s
UpdateDoubleSketchDemo.benchMark:·gc.alloc.rate thrpt 5 8.269 ± 0.322 MB/sec
UpdateDoubleSketchDemo.benchMark:·gc.alloc.rate.norm thrpt 5 0.417 ± 0.001 B/op
UpdateDoubleSketchDemo.benchMark:·gc.churn.G1_Eden_Space thrpt 5 11.421 ± 98.334 MB/sec
UpdateDoubleSketchDemo.benchMark:·gc.churn.G1_Eden_Space.norm thrpt 5 0.575 ± 4.953 B/op
UpdateDoubleSketchDemo.benchMark:·gc.count thrpt 5 1.000 counts
UpdateDoubleSketchDemo.benchMark:·gc.time thrpt 5 2.000 ms
0.8.3
@State(Scope.Benchmark)
public class UpdateDoubleSketchDemo {
private final DoublesSketch doublesSketch = new DoublesSketchBuilder().build();
@Benchmark
public void benchMark() {
doublesSketch.update(RandomUtil.randomDouble());
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(UpdateDoubleSketchDemo.class.getSimpleName())
.addProfiler(GCProfiler.class)
.forks(1)
.build();
new Runner(opt).run();
}
}
it shows
Benchmark Mode Cnt Score Error Units
UpdateDoubleSketchDemo.benchMark thrpt 5 22132550.180 ± 695427.053 ops/s
UpdateDoubleSketchDemo.benchMark:·gc.alloc.rate thrpt 5 0.001 ± 0.004 MB/sec
UpdateDoubleSketchDemo.benchMark:·gc.alloc.rate.norm thrpt 5 ≈ 10⁻⁵ B/op
UpdateDoubleSketchDemo.benchMark:·gc.count thrpt 5 ≈ 0 counts
And the RandomUtil
public class RandomUtil {
private static final Random RANDOM = new Random();
public static double randomDouble() {
return 0 + 500 * RANDOM.nextDouble();
}
}
Hi, I noticed that there's more heap allocation than
0.8.3. Below is the detail test data.3.2.0
it shows
0.8.3
it shows
And the RandomUtil