From 375722be3b11c7ef2553eb2728e5892df3e612c2 Mon Sep 17 00:00:00 2001 From: themode Date: Tue, 4 Jan 2022 01:08:32 +0100 Subject: [PATCH] Add PaletteGetBenchmark --- ...Benchmark.java => PaletteGetBenchmark.java} | 18 ++++++++++++++---- ...Benchmark.java => PaletteSetBenchmark.java} | 17 +++++++++++++++-- 2 files changed, 29 insertions(+), 6 deletions(-) rename jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/{PaletteBenchmark.java => PaletteGetBenchmark.java} (69%) rename jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/{PaletteFillBenchmark.java => PaletteSetBenchmark.java} (69%) diff --git a/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteBenchmark.java b/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteGetBenchmark.java similarity index 69% rename from jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteBenchmark.java rename to jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteGetBenchmark.java index d78aa4d6d..d1decb21d 100644 --- a/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteBenchmark.java +++ b/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteGetBenchmark.java @@ -2,6 +2,7 @@ package net.minestom.jmh.palette; import net.minestom.server.instance.palette.Palette; import org.openjdk.jmh.annotations.*; +import org.openjdk.jmh.infra.Blackhole; import java.util.concurrent.TimeUnit; @@ -11,7 +12,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Benchmark) -public class PaletteBenchmark { +public class PaletteGetBenchmark { @Param({"4", "8", "16"}) public int dimension; @@ -21,10 +22,7 @@ public class PaletteBenchmark { @Setup public void setup() { palette = Palette.newPalette(dimension, 15, 4, 1); - } - @Benchmark - public void loop() { int value = 0; final int dimension = palette.dimension(); for (int y = 0; y < dimension; y++) { @@ -35,4 +33,16 @@ public class PaletteBenchmark { } } } + + @Benchmark + public void read(Blackhole blackHole) { + final int dimension = palette.dimension(); + for (int y = 0; y < dimension; y++) { + for (int x = 0; x < dimension; x++) { + for (int z = 0; z < dimension; z++) { + blackHole.consume(palette.get(x, y, z)); + } + } + } + } } diff --git a/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteFillBenchmark.java b/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteSetBenchmark.java similarity index 69% rename from jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteFillBenchmark.java rename to jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteSetBenchmark.java index 5f2cc1cf9..0291e25ad 100644 --- a/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteFillBenchmark.java +++ b/jmh-benchmarks/src/jmh/java/net/minestom/jmh/palette/PaletteSetBenchmark.java @@ -11,7 +11,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Benchmark) -public class PaletteFillBenchmark { +public class PaletteSetBenchmark { @Param({"4", "8", "16"}) public int dimension; @@ -24,7 +24,20 @@ public class PaletteFillBenchmark { } @Benchmark - public void loop() { + public void incrWrite() { + int value = 0; + final int dimension = palette.dimension(); + for (int y = 0; y < dimension; y++) { + for (int x = 0; x < dimension; x++) { + for (int z = 0; z < dimension; z++) { + palette.set(x, y, z, value++); + } + } + } + } + + @Benchmark + public void randomWrite() { final int dimension = palette.dimension(); for (int y = 0; y < dimension; y++) { for (int x = 0; x < dimension; x++) {