This is an automated email from the ASF dual-hosted git repository.

vy pushed a commit to branch message-param-formatter-rewrite
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to 
refs/heads/message-param-formatter-rewrite by this push:
     new 765d1d6c78 Fix `ParameterFormatterBenchmark`
765d1d6c78 is described below

commit 765d1d6c78412025ebd4faa3519b7afd0ea0906c
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Mon Jul 31 16:57:21 2023 +0200

    Fix `ParameterFormatterBenchmark`
---
 .../log4j/message/ParameterFormatterBenchmark.java | 136 ++++++++-------------
 1 file changed, 52 insertions(+), 84 deletions(-)

diff --git 
a/log4j-perf/src/main/java/org/apache/logging/log4j/message/ParameterFormatterBenchmark.java
 
b/log4j-perf/src/main/java/org/apache/logging/log4j/message/ParameterFormatterBenchmark.java
index 9c52d03a49..669507d344 100644
--- 
a/log4j-perf/src/main/java/org/apache/logging/log4j/message/ParameterFormatterBenchmark.java
+++ 
b/log4j-perf/src/main/java/org/apache/logging/log4j/message/ParameterFormatterBenchmark.java
@@ -16,7 +16,13 @@
  */
 package org.apache.logging.log4j.message;
 
+import java.util.concurrent.TimeUnit;
 
+import 
org.apache.logging.log4j.message.ParameterFormatter.MessagePatternAnalysis;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
 import org.openjdk.jmh.annotations.Scope;
 import org.openjdk.jmh.annotations.State;
 
@@ -36,93 +42,55 @@ import org.openjdk.jmh.annotations.State;
 //
 @State(Scope.Benchmark)
 public class ParameterFormatterBenchmark {
-    private static final Object[] ARGS = { "arg1", "arg2", "arg3", "arg4", 
"arg5", "arg6", "arg7", "arg8",
-            "arg9", "arg10",};
+
+    private static final Object[] ARGS = {"arg1", "arg2", "arg3", "arg4", 
"arg5", "arg6", "arg7", "arg8", "arg9", "arg10"};
 
     @State(Scope.Thread)
     public static class ThreadState {
-        StringBuilder buffer = new StringBuilder(2048);
-        int[] indices = new int[255];
-        char[] copy = new char[4096];
+        
+        private final MessagePatternAnalysis analysis = new 
MessagePatternAnalysis();
+        
+        private final StringBuilder buffer = new StringBuilder(2048);
+        
+        public ThreadState() {
+            analysis.placeholderCharIndices = new int[9];
+        }
+        
+    }
+
+    @Benchmark
+    @BenchmarkMode(Mode.SampleTime)
+    @OutputTimeUnit(TimeUnit.NANOSECONDS)
+    public int latency3ParamsVy(final ThreadState state) {
+        return latencyParamsVy(state, "p1={}, p2={}, p3={}");
+    }
+
+    @Benchmark
+    @BenchmarkMode(Mode.SampleTime)
+    @OutputTimeUnit(TimeUnit.NANOSECONDS)
+    public int latency5ParamsVy(final ThreadState state) {
+        return latencyParamsVy(state, "p1={}, p2={}, p3={}, p4={}, p5={}");
+    }
+
+    @Benchmark
+    @BenchmarkMode(Mode.SampleTime)
+    @OutputTimeUnit(TimeUnit.NANOSECONDS)
+    public int latency7ParamsVy(final ThreadState state) {
+        return latencyParamsVy(state, "p1={}, p2={}, p3={}, p4={}, p5={}, 
p6={}, p7={}");
+    }
+
+    @Benchmark
+    @BenchmarkMode(Mode.SampleTime)
+    @OutputTimeUnit(TimeUnit.NANOSECONDS)
+    public int latency9ParamsVy(final ThreadState state) {
+        return latencyParamsVy(state, "p1={}, p2={}, p3={}, p4={}, p5={}, 
p6={}, p7={}, p8={}, p9={}");
+    }
+
+    private static int latencyParamsVy(final ThreadState state, final String 
pattern) {
+        state.buffer.setLength(0);
+        ParameterFormatter.analyzePattern(pattern, state.analysis);
+        ParameterFormatter.formatMessage(state.buffer, pattern, ARGS, 
state.analysis.placeholderCount, state.analysis);
+        return state.buffer.length();
     }
 
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency3ParamsV2(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}", state.indices);
-//        ParameterFormatter.formatMessage2(state.buffer, "p1={}, p2={}, 
p3={}", ARGS, count, state.indices);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency5ParamsV2(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}, p4={}, p5={}", state.indices);
-//        ParameterFormatter.formatMessage2(state.buffer, "p1={}, p2={}, 
p3={}, p4={}, p5={}", ARGS, count, state.indices);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency7ParamsV2(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}, p4={}, p5={}, p6={}, p7={}", state.indices);
-//        ParameterFormatter.formatMessage2(state.buffer, "p1={}, p2={}, 
p3={}, p4={}, p5={}, p6={}, p7={}", ARGS, count, state.indices);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency9ParamsV2(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}, p4={}, p5={}, p6={}, p7={}, p8={}, p9={}", state.indices);
-//        ParameterFormatter.formatMessage2(state.buffer, "p1={}, p2={}, 
p3={}, p4={}, p5={}, p6={}, p7={}, p8={}, p9={}", ARGS, count, state.indices);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency3Params(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}");
-//        ParameterFormatter.formatMessage(state.buffer, "p1={}, p2={}, 
p3={}", ARGS, count);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency5Params(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}, p4={}, p5={}");
-//        ParameterFormatter.formatMessage(state.buffer, "p1={}, p2={}, p3={}, 
p4={}, p5={}", ARGS, count);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency7Params(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}, p4={}, p5={}, p6={}, p7={}");
-//        ParameterFormatter.formatMessage(state.buffer, "p1={}, p2={}, p3={}, 
p4={}, p5={}, p6={}, p7={}", ARGS, count);
-//        return state.buffer.length();
-//    }
-//
-//    @Benchmark
-//    @BenchmarkMode(Mode.SampleTime)
-//    @OutputTimeUnit(TimeUnit.NANOSECONDS)
-//    public int latency9Params(final ThreadState state) {
-//        state.buffer.setLength(0);
-//        final int count = ParameterFormatter.analyzePattern("p1={}, p2={}, 
p3={}, p4={}, p5={}, p6={}, p7={}, p8={}, p9={}");
-//        ParameterFormatter.formatMessage(state.buffer, "p1={}, p2={}, p3={}, 
p4={}, p5={}, p6={}, p7={}, p8={}, p9={}", ARGS, count);
-//        return state.buffer.length();
-//    }
 }

Reply via email to