diff options
| author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2024-06-23 16:24:11 +0200 | 
|---|---|---|
| committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2024-06-23 16:24:11 +0200 | 
| commit | 47df8be6dc1e0927a7b3d690100445865dfa8675 (patch) | |
| tree | 06587663e86e296156872d331e7aa1be69624884 /core/src | |
| parent | b69b3017699b960ff5133b8ec34bff786bec0f77 (diff) | |
test: Add benchmarks.
The benchmarks can be run using 'mvn verify -Pbenchmark'.
Change-Id: I13058f52bea77aa3cb4f1967126c28e1e98d1838
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java | 34 | ||||
| -rw-r--r-- | core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java | 34 | 
2 files changed, 55 insertions, 13 deletions
| diff --git a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java new file mode 100644 index 0000000..1a1c17c --- /dev/null +++ b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterBenchmark.java @@ -0,0 +1,34 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging; + +import java.util.List; +import org.jboss.logmanager.ExtLogRecord; +import org.openjdk.jmh.annotations.*; +import org.openjdk.jmh.infra.Blackhole; + +@Warmup(iterations = 5, time = 1) +@Measurement(iterations = 10, time = 1) +@Fork(value = 1) +@State(org.openjdk.jmh.annotations.Scope.Benchmark) +public class FormatterBenchmark { + +  private ExtLogRecord simpleLogRecord; +  private ExtLogRecord structuredLogRecord; +  private Formatter formatter; + +  @Setup +  public void setup() { +    simpleLogRecord = FormatterTest.makeSimpleRecord(); +    structuredLogRecord = FormatterTest.makeStructuredRecord(); +    formatter = new Formatter(List.of(), List.of()); +  } + +  @Benchmark +  public void simpleLogRecord(Blackhole blackhole) { +    blackhole.consume(formatter.format(simpleLogRecord)); +  } + +  @Benchmark +  public void structuredLogRecord(Blackhole blackhole) { +    blackhole.consume(formatter.format(structuredLogRecord)); +  } +} diff --git a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java index 49cda39..91cc8e4 100644 --- a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java +++ b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java @@ -1,20 +1,19 @@  package eu.mulk.quarkus.googlecloud.jsonlogging; +import static org.junit.jupiter.api.Assertions.assertLinesMatch; +  import jakarta.json.Json; +import java.util.Collection; +import java.util.List;  import org.jboss.logmanager.ExtLogRecord;  import org.jboss.logmanager.Level;  import org.junit.jupiter.api.Test; -import java.util.Collection; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertLinesMatch; -  class FormatterTest {    @Test    void simpleRecord() { -    var logRecord = new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName()); +    var logRecord = makeSimpleRecord();      var formatter = new Formatter(List.of(), List.of());      var formattingResult = formatter.format(logRecord); @@ -34,6 +33,10 @@ class FormatterTest {          List.of(formattingResult));    } +  static ExtLogRecord makeSimpleRecord() { +    return new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName()); +  } +    @Test    void structuredRecord() {      var parameterProvider = @@ -55,13 +58,7 @@ class FormatterTest {            }          }; -    var logRecord = new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName()); -    logRecord.setParameters( -        new Object[] { -          (StructuredParameter) -              () -> Json.createObjectBuilder().add("one", 1).add("two", 2.0).add("yes", true), -          Label.of("a", "b") -        }); +    var logRecord = makeStructuredRecord();      var formatter = new Formatter(List.of(parameterProvider), List.of(labelProvider));      var formattingResult = formatter.format(logRecord); @@ -85,4 +82,15 @@ class FormatterTest {                  + "\\}\n"),          List.of(formattingResult));    } + +  static ExtLogRecord makeStructuredRecord() { +    var logRecord = makeSimpleRecord(); +    logRecord.setParameters( +        new Object[] { +          (StructuredParameter) +              () -> Json.createObjectBuilder().add("one", 1).add("two", 2.0).add("yes", true), +          Label.of("a", "b") +        }); +    return logRecord; +  }  } | 
