ppkarwasz commented on code in PR #3645: URL: https://github.com/apache/logging-log4j2/pull/3645#discussion_r2074830063
########## log4j-perf-test/src/main/java/org/apache/logging/log4j/message/ParameterFormatterBenchmark.java: ########## @@ -81,4 +95,38 @@ private static int latencyParams(final ThreadState state, final String pattern) ParameterFormatter.formatMessage(state.buffer, pattern, ARGS, state.analysis.placeholderCount, state.analysis); return state.buffer.length(); } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public int appendArrayToString(final ThreadState state) { + StringBuilder buffer = state.buffer; + buffer.setLength(0); + buffer.append(Arrays.toString(INT_ARRAY)); + return state.buffer.length(); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public int appendArrayStringBuilder(final ThreadState state) { + StringBuilder buffer = state.buffer; + buffer.setLength(0); + appendArray(INT_ARRAY, buffer); + return state.buffer.length(); + } + + // Copied as method is static + private static void appendArray(final int[] a, final StringBuilder str) { + int len = a.length; + if (len == 0) { + str.append("[]"); + return; + } + str.append('[').append(a[0]); + for (int i = 1; i < len; i++) { + str.append(", ").append(a[i]); + } + str.append(']'); + } Review Comment: Could you use the one in `ParameterFormatter` (you can make that one package-private)? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@logging.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org