From c8a41727460191f26c069c2d367d13134497fb1e Mon Sep 17 00:00:00 2001 From: "christian.lutnik" Date: Tue, 8 Jul 2025 16:22:41 +0200 Subject: [PATCH] try to run jmh bench Signed-off-by: christian.lutnik --- .github/workflows/pullrequest.yml | 5 ++-- .../benchmark/FlagEvaluationBenchmark.java | 9 ++++---- .../benchmark/state/FlagEvaluationState.java | 23 +++++++++---------- .../sdk/benchmark/state/HooksState.java | 21 ++++++++--------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index a1239ebb..83ddcf4d 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -54,8 +54,9 @@ jobs: fail_ci_if_error: true # optional (default = false) verbose: true # optional (default = false) - - name: Run JMH benchmark - run: mvn --activate-profiles benchmark jmh:benchmark + - if: matrix.build.java == '17' + name: Run JMH benchmark + run: mvn --activate-profiles benchmark jmh:benchmark -rf json -rff output.json .* #run: | # 'mvn clean compile' # 'mvn jmh:benchmark -rf json -rff output.json .*' diff --git a/src/test/java/dev/openfeature/sdk/benchmark/FlagEvaluationBenchmark.java b/src/test/java/dev/openfeature/sdk/benchmark/FlagEvaluationBenchmark.java index 65c7b1e1..c7a45412 100644 --- a/src/test/java/dev/openfeature/sdk/benchmark/FlagEvaluationBenchmark.java +++ b/src/test/java/dev/openfeature/sdk/benchmark/FlagEvaluationBenchmark.java @@ -10,18 +10,19 @@ import org.openjdk.jmh.annotations.Measurement; import org.openjdk.jmh.annotations.Mode; import org.openjdk.jmh.annotations.Warmup; - @BenchmarkMode(Mode.Throughput) @Warmup(time = 1, timeUnit = TimeUnit.SECONDS, iterations = 1) -//@Warmup(time = 1, timeUnit = TimeUnit.SECONDS, iterations = 2) +// @Warmup(time = 1, timeUnit = TimeUnit.SECONDS, iterations = 2) @Measurement(time = 5, timeUnit = TimeUnit.SECONDS, iterations = 1) -//@Measurement(time = 5, timeUnit = TimeUnit.SECONDS, iterations = 4) +// @Measurement(time = 5, timeUnit = TimeUnit.SECONDS, iterations = 4) @Fork(1) public class FlagEvaluationBenchmark { @Benchmark public String flagEvaluations(FlagEvaluationState state) { - return state.client.getStringDetails(FlagEvaluationState.FLAG_KEY, "default").getValue(); + return state.client + .getStringDetails(FlagEvaluationState.FLAG_KEY, "default") + .getValue(); } @Benchmark diff --git a/src/test/java/dev/openfeature/sdk/benchmark/state/FlagEvaluationState.java b/src/test/java/dev/openfeature/sdk/benchmark/state/FlagEvaluationState.java index 30acf864..53eb7376 100644 --- a/src/test/java/dev/openfeature/sdk/benchmark/state/FlagEvaluationState.java +++ b/src/test/java/dev/openfeature/sdk/benchmark/state/FlagEvaluationState.java @@ -5,8 +5,8 @@ import dev.openfeature.sdk.ImmutableMetadata; import dev.openfeature.sdk.OpenFeatureAPI; import dev.openfeature.sdk.providers.memory.Flag; import dev.openfeature.sdk.providers.memory.InMemoryProvider; -import org.openjdk.jmh.annotations.*; import java.util.Map; +import org.openjdk.jmh.annotations.*; @State(Scope.Benchmark) public class FlagEvaluationState { @@ -18,17 +18,16 @@ public class FlagEvaluationState { @Setup(Level.Trial) public void setup() { - provider = new InMemoryProvider( - Map.of( - FLAG_KEY, - Flag.builder() - .variant("a", "a-value") - .variant("b", "b-value") - .defaultVariant("b") - .flagMetadata(ImmutableMetadata.builder().addString("meta", "data").build()) - .build() - ) - ); + provider = new InMemoryProvider(Map.of( + FLAG_KEY, + Flag.builder() + .variant("a", "a-value") + .variant("b", "b-value") + .defaultVariant("b") + .flagMetadata(ImmutableMetadata.builder() + .addString("meta", "data") + .build()) + .build())); OpenFeatureAPI.getInstance().setProviderAndWait(DOMAIN, provider); client = OpenFeatureAPI.getInstance().getClient(DOMAIN); } diff --git a/src/test/java/dev/openfeature/sdk/benchmark/state/HooksState.java b/src/test/java/dev/openfeature/sdk/benchmark/state/HooksState.java index 736c3cac..cd1993af 100644 --- a/src/test/java/dev/openfeature/sdk/benchmark/state/HooksState.java +++ b/src/test/java/dev/openfeature/sdk/benchmark/state/HooksState.java @@ -24,17 +24,16 @@ public class HooksState { @Setup(Level.Trial) public void setup() { - provider = new InMemoryProvider( - Map.of( - FLAG_KEY, - Flag.builder() - .variant("a", "a-value") - .variant("b", "b-value") - .defaultVariant("b") - .flagMetadata(ImmutableMetadata.builder().addString("meta", "data").build()) - .build() - ) - ); + provider = new InMemoryProvider(Map.of( + FLAG_KEY, + Flag.builder() + .variant("a", "a-value") + .variant("b", "b-value") + .defaultVariant("b") + .flagMetadata(ImmutableMetadata.builder() + .addString("meta", "data") + .build()) + .build())); OpenFeatureAPI.getInstance().setProviderAndWait(DOMAIN, provider); client = OpenFeatureAPI.getInstance().getClient(DOMAIN); client.addHooks(new StringHook() {}, new Hook() {});