You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2022/03/14 12:27:15 UTC
[logging-log4j2] 02/16: LOG4J2-3393 Create JTL benchmark main() for easy testing.
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch LOG4J2-3393
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit cdade7459c359397a3c861997d7f39a1c9cf1f2d
Author: Volkan Yazici <vo...@yazi.ci>
AuthorDate: Mon Feb 7 10:54:30 2022 +0100
LOG4J2-3393 Create JTL benchmark main() for easy testing.
---
.../template/json/JsonTemplateLayoutBenchmark.java | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutBenchmark.java
index 1099625..dce0690 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutBenchmark.java
@@ -21,6 +21,7 @@ import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.layout.ByteBufferDestination;
import org.openjdk.jmh.annotations.Benchmark;
+import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.List;
@@ -182,4 +183,29 @@ public class JsonTemplateLayoutBenchmark {
return position;
}
+ public static void main(String[] args) throws IOException {
+ System.out.format("Ready?");
+ System.in.read();
+ JsonTemplateLayoutBenchmarkState state = new JsonTemplateLayoutBenchmarkState();
+ int retryCount = 10_000;
+ measureEcs(state, retryCount);
+ measureJtl(state, retryCount);
+ }
+
+ private static void measureJtl(JsonTemplateLayoutBenchmarkState state, int retryCount) {
+ long startInstantNanos = System.nanoTime();
+ for (int i = 0; i < retryCount; i++) {
+ liteJsonTemplateLayout4EcsLayout(state);
+ }
+ System.out.format("%.3fs%n", (System.nanoTime() - startInstantNanos) / 1e9);
+ }
+
+ private static void measureEcs(JsonTemplateLayoutBenchmarkState state, int retryCount) {
+ long startInstantNanos = System.nanoTime();
+ for (int i = 0; i < retryCount; i++) {
+ liteEcsLayout(state);
+ }
+ System.out.format("%.3fs%n", (System.nanoTime() - startInstantNanos) / 1e9);
+ }
+
}