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 ExtLogRecord massivelyStructuredLogRecord; private ExtLogRecord nestedLogRecord; private Formatter formatter; @Setup public void setup() { simpleLogRecord = FormatterTest.makeSimpleRecord(); structuredLogRecord = FormatterTest.makeStructuredRecord(); massivelyStructuredLogRecord = FormatterTest.makeMassivelyStructuredRecord(); nestedLogRecord = FormatterTest.makeNestedRecord(); 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)); } @Benchmark public void massivelyStructuredLogRecord(Blackhole blackhole) { var f = formatter.format(massivelyStructuredLogRecord); blackhole.consume(f); } @Benchmark public void nestedLogRecord(Blackhole blackhole) { var f = formatter.format(nestedLogRecord); blackhole.consume(f); } }