You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2016/09/04 18:38:34 UTC
[18/36] logging-log4j2 git commit: Add no-op benchmark variants for
BlockingQueue implementations of AsyncAppender
Add no-op benchmark variants for BlockingQueue implementations of AsyncAppender
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4514fe72
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4514fe72
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4514fe72
Branch: refs/heads/master
Commit: 4514fe72186ef61cc524544e0c9472150b724020
Parents: 604306c
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Jun 17 22:38:12 2016 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Jun 17 22:38:12 2016 -0500
----------------------------------------------------------------------
.../perf/jmh/AsyncAppenderLog4j2Benchmark.java | 40 ++++++++++++++++++--
.../perf5AsyncApndDsrptrNoLoc-noOpAppender.xml | 32 ++++++++++++++++
.../perf5AsyncApndNoLoc-noOpAppender.xml | 1 +
.../perf5AsyncApndXferQNoLoc-noOpAppender.xml | 32 ++++++++++++++++
4 files changed, 102 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4514fe72/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AsyncAppenderLog4j2Benchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AsyncAppenderLog4j2Benchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AsyncAppenderLog4j2Benchmark.java
index 732f7a2..74483f2 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AsyncAppenderLog4j2Benchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AsyncAppenderLog4j2Benchmark.java
@@ -33,7 +33,17 @@ import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
-import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.*;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.eight;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.eleven;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.five;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.four;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.nine;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.one;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.seven;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.six;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.ten;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.three;
+import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.two;
/**
* Tests Log4j2 Async Appender performance.
@@ -50,12 +60,36 @@ import static org.apache.logging.log4j.perf.util.BenchmarkMessageParams.*;
// java -jar log4j-perf/target/benchmarks.jar -help
//
@State(Scope.Benchmark)
-public class AsyncAppenderLog4j2Benchmark {
+public abstract class AsyncAppenderLog4j2Benchmark {
Logger logger;
+ abstract String getConfigFileName();
+
+ public static class ArrayBlockingQueue extends AsyncAppenderLog4j2Benchmark {
+ @Override
+ String getConfigFileName() {
+ return "perf5AsyncApndNoLoc-noOpAppender.xml";
+ }
+ }
+
+ public static class DisruptorBlockingQueue extends AsyncAppenderLog4j2Benchmark {
+ @Override
+ String getConfigFileName() {
+ return "perf5AsyncApndDsrptrNoLoc-noOpAppender.xml";
+ }
+ }
+
+ public static class LinkedTransferQueue extends AsyncAppenderLog4j2Benchmark {
+
+ @Override
+ String getConfigFileName() {
+ return "perf5AsyncApndXferQNoLoc-noOpAppender.xml";
+ }
+ }
+
@Setup(Level.Trial)
public void up() {
- System.setProperty("log4j.configurationFile", "perf5AsyncApndNoLoc-noOpAppender.xml");
+ System.setProperty("log4j.configurationFile", getConfigFileName());
logger = LogManager.getLogger(getClass());
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4514fe72/log4j-perf/src/main/resources/perf5AsyncApndDsrptrNoLoc-noOpAppender.xml
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/resources/perf5AsyncApndDsrptrNoLoc-noOpAppender.xml b/log4j-perf/src/main/resources/perf5AsyncApndDsrptrNoLoc-noOpAppender.xml
new file mode 100644
index 0000000..cc8d450
--- /dev/null
+++ b/log4j-perf/src/main/resources/perf5AsyncApndDsrptrNoLoc-noOpAppender.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache license, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the license for the specific language governing permissions and
+ limitations under the license.
+ -->
+<Configuration status="OFF">
+ <Appenders>
+ <CountingNoOp name="NoOp">
+ </CountingNoOp>
+ <Async name="Async" blocking="true" bufferSize="262144">
+ <appender-ref ref="NoOp"/>
+ <DisruptorBlockingQueue/>
+ </Async>
+ </Appenders>
+ <Loggers>
+ <Root level="info" includeLocation="false">
+ <appender-ref ref="Async"/>
+ </Root>
+ </Loggers>
+</Configuration>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4514fe72/log4j-perf/src/main/resources/perf5AsyncApndNoLoc-noOpAppender.xml
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/resources/perf5AsyncApndNoLoc-noOpAppender.xml b/log4j-perf/src/main/resources/perf5AsyncApndNoLoc-noOpAppender.xml
index a183691..0d062b1 100644
--- a/log4j-perf/src/main/resources/perf5AsyncApndNoLoc-noOpAppender.xml
+++ b/log4j-perf/src/main/resources/perf5AsyncApndNoLoc-noOpAppender.xml
@@ -21,6 +21,7 @@
</CountingNoOp>
<Async name="Async" blocking="true" bufferSize="262144">
<appender-ref ref="NoOp"/>
+ <ArrayBlockingQueue/>
</Async>
</Appenders>
<Loggers>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4514fe72/log4j-perf/src/main/resources/perf5AsyncApndXferQNoLoc-noOpAppender.xml
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/resources/perf5AsyncApndXferQNoLoc-noOpAppender.xml b/log4j-perf/src/main/resources/perf5AsyncApndXferQNoLoc-noOpAppender.xml
new file mode 100644
index 0000000..e1c7639
--- /dev/null
+++ b/log4j-perf/src/main/resources/perf5AsyncApndXferQNoLoc-noOpAppender.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache license, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the license for the specific language governing permissions and
+ limitations under the license.
+ -->
+<Configuration status="OFF">
+ <Appenders>
+ <CountingNoOp name="NoOp">
+ </CountingNoOp>
+ <Async name="Async" blocking="true" bufferSize="262144">
+ <appender-ref ref="NoOp"/>
+ <LinkedTransferQueue/>
+ </Async>
+ </Appenders>
+ <Loggers>
+ <Root level="info" includeLocation="false">
+ <appender-ref ref="Async"/>
+ </Root>
+ </Loggers>
+</Configuration>