From 8b6aeda91ded7dc9b8a796eec23740e240438359 Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Tue, 15 Apr 2025 15:17:04 +1000 Subject: [PATCH 1/2] wip --- .../InterThreadMemoizedPerformance.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/jmh/java/performance/InterThreadMemoizedPerformance.java diff --git a/src/jmh/java/performance/InterThreadMemoizedPerformance.java b/src/jmh/java/performance/InterThreadMemoizedPerformance.java new file mode 100644 index 0000000000..d2f5b86d82 --- /dev/null +++ b/src/jmh/java/performance/InterThreadMemoizedPerformance.java @@ -0,0 +1,61 @@ +package performance; + + +import graphql.util.InterThreadMemoizedSupplier; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OperationsPerInvocation; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.Threads; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.infra.Blackhole; + +import java.util.concurrent.TimeUnit; + +@State(Scope.Benchmark) +@Warmup(iterations = 2, time = 5) +@Measurement(iterations = 3) +@Fork(1) +@Threads(Threads.MAX) +public class InterThreadMemoizedPerformance { + + + @State(Scope.Benchmark) + public static class MyState { + + InterThreadMemoizedSupplier supplier; + final String value = "Hello World"; + + @Setup + public void setup() { + supplier = new InterThreadMemoizedSupplier<>(() -> { + return "Hello World"; + }); + + } + } + + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + @OperationsPerInvocation(100) + public void accessSupplier(MyState state, Blackhole blackhole) { + String result = state.supplier.get(); + blackhole.consume(result); + } + + @Benchmark + @BenchmarkMode(Mode.AverageTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public void accessFinalValue(MyState state, Blackhole blackhole) { + blackhole.consume(state.value); + } + +} From 695bf110e78e162e3a018a28b8de903cb38176d0 Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Tue, 15 Apr 2025 15:17:22 +1000 Subject: [PATCH 2/2] wip --- src/jmh/java/performance/InterThreadMemoizedPerformance.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/jmh/java/performance/InterThreadMemoizedPerformance.java b/src/jmh/java/performance/InterThreadMemoizedPerformance.java index d2f5b86d82..c75ce83491 100644 --- a/src/jmh/java/performance/InterThreadMemoizedPerformance.java +++ b/src/jmh/java/performance/InterThreadMemoizedPerformance.java @@ -45,7 +45,6 @@ public void setup() { @Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) - @OperationsPerInvocation(100) public void accessSupplier(MyState state, Blackhole blackhole) { String result = state.supplier.get(); blackhole.consume(result);