You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/08/23 13:37:19 UTC
[1/5] logging-log4j2 git commit: LOG4J2-1349 fixed imports
Repository: logging-log4j2
Updated Branches:
refs/heads/LOG4J2-1349-gcfree-threadcontext 167b281e8 -> b5e9a1767
LOG4J2-1349 fixed imports
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/049e6790
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/049e6790
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/049e6790
Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 049e67905d2881c5fb4c8134e2f186c34ed98c21
Parents: 167b281
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 20:54:04 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 20:54:04 2016 +0900
----------------------------------------------------------------------
.../apache/logging/log4j/core/filter/DynamicThresholdFilter.java | 4 ++--
.../org/apache/logging/log4j/core/lookup/ContextMapLookup.java | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/049e6790/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
index 3c6cdaa..8e5d9f5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
@@ -23,7 +23,6 @@ import java.util.Objects;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.ContextData;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Logger;
@@ -35,9 +34,10 @@ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
import org.apache.logging.log4j.core.impl.ContextDataFactory;
import org.apache.logging.log4j.core.impl.ContextDataInjector;
import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
-import org.apache.logging.log4j.core.impl.MutableContextData;
import org.apache.logging.log4j.core.util.KeyValuePair;
import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.spi.ContextData;
+import org.apache.logging.log4j.spi.MutableContextData;
/**
* Compare against a log level that is associated with a context value. By default the context is the
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/049e6790/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
index 57818bc..eec5ad3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
@@ -17,13 +17,13 @@
package org.apache.logging.log4j.core.lookup;
import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.ContextData;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.impl.ContextDataFactory;
import org.apache.logging.log4j.core.impl.ContextDataInjector;
import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
-import org.apache.logging.log4j.core.impl.MutableContextData;
+import org.apache.logging.log4j.spi.ContextData;
+import org.apache.logging.log4j.spi.MutableContextData;
/**
* Looks up keys from the context. By default this is the {@link ThreadContext}, but users may
[4/5] logging-log4j2 git commit: LOG4J2-1349 added benchmarks for
legacy inject (Log4jLogEvent::createMap)
Posted by rp...@apache.org.
LOG4J2-1349 added benchmarks for legacy inject (Log4jLogEvent::createMap)
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/6b433c5e
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/6b433c5e
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/6b433c5e
Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 6b433c5e6a8452b1ed77edab5d89fb035ce932c1
Parents: e6a777a
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 21:04:25 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 21:04:25 2016 +0900
----------------------------------------------------------------------
.../apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6b433c5e/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index b75e291..5157a24 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -166,12 +166,12 @@ public class ThreadContextBenchmark {
}
@Benchmark
- Map<String, String> legacyInjectWithoutProperties() {
+ public Map<String, String> legacyInjectWithoutProperties() {
return createMap(null);
}
@Benchmark
- Map<String, String> legacyInjectWithProperties() {
+ public Map<String, String> legacyInjectWithProperties() {
return createMap(propertyList);
}
[2/5] logging-log4j2 git commit: LOG4J2-1349 fixed
ArrayContextDataVsHashMapBenchmark for get and put
Posted by rp...@apache.org.
LOG4J2-1349 fixed ArrayContextDataVsHashMapBenchmark for get and put
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/44784df9
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/44784df9
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/44784df9
Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 44784df948213a72ba140d89d1249b3af6c2ed3c
Parents: 049e679
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 21:01:51 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 21:01:51 2016 +0900
----------------------------------------------------------------------
.../jmh/ArrayContextDataVsHashMapBenchmark.java | 53 ++++----------------
1 file changed, 10 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/44784df9/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
index ada45b4..eb354a5 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
@@ -205,68 +205,35 @@ public class ArrayContextDataVsHashMapBenchmark {
}
@Benchmark
- public int getValueArrayContextData() {
- String[] theKeys = keys;
- int c = count;
- int result = 0;
- for (int i = 0; i < c; i++) {
- Object val = populatedContextData.getValue(theKeys[i]);
- result += val.hashCode();// + theKeys[i].hashCode();
- }
- return result;
+ public Object getValueArrayContextData() {
+ return populatedContextData.getValue(keys[count - 1]);
}
@Benchmark
- public int getValueHashContextData() {
- String[] theKeys = keys;
- int c = count;
- int result = 0;
- for (int i = 0; i < c; i++) {
- Object val = populatedHashContextData.getValue(theKeys[i]);
- result += val.hashCode();// + theKeys[i].hashCode();
- }
- return result;
+ public Object getValueHashContextData() {
+ return populatedHashContextData.getValue(keys[count - 1]);
}
@Benchmark
- public int getValueMap() {
- String[] theKeys = keys;
- int c = count;
- int result = 0;
- for (int i = 0; i < c; i++) {
- Object val = populatedMap.get(theKeys[i]);
- result += val.hashCode();// + theKeys[i].hashCode();
- }
- return result;
+ public Object getValueMap() {
+ return populatedMap.get(keys[count - 1]);
}
@Benchmark
public int putArrayContextData() {
- String[] theKeys = keys;
- int c = count;
- for (int i = 0; i < c; i++) {
- contextData.putValue(theKeys[i], value);
- }
- return contextData.size();
+ populatedContextData.put("someKey", "someValue");
+ return populatedContextData.size();
}
@Benchmark
public int putHashContextData() {
- String[] theKeys = keys;
- int c = count;
- for (int i = 0; i < c; i++) {
- hashContextData.putValue(theKeys[i], value);
- }
+ hashContextData.put("someKey", "someValue");
return hashContextData.size();
}
@Benchmark
public int putMap() {
- String[] theKeys = keys;
- int c = count;
- for (int i = 0; i < c; i++) {
- map.put(theKeys[i], value);
- }
+ map.put("someKey", "someValue");
return map.size();
}
}
\ No newline at end of file
[5/5] logging-log4j2 git commit: LOG4J2-1349 added ThreadContext::get
benchmark
Posted by rp...@apache.org.
LOG4J2-1349 added ThreadContext::get benchmark
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b5e9a176
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b5e9a176
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b5e9a176
Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: b5e9a176726825c8208b2455d4b4a18880a0b365
Parents: 6b433c5
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 22:37:13 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 22:37:13 2016 +0900
----------------------------------------------------------------------
.../logging/log4j/perf/jmh/ThreadContextBenchmark.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b5e9a176/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index 5157a24..5b760e0 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -88,8 +88,8 @@ public class ThreadContextBenchmark {
IMPLEMENTATIONS.put(NO_GC_ARRAY_MAP, GarbageFreeSortedArrayThreadContextMap.class);
}
- //@Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
- @Param({ "Default", }) // for legecyInject benchmarks
+ @Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
+ //@Param({ "Default", }) // for legecyInject benchmarks
public String threadContextMapAlias;
@Param({"5", "50", "500"})
@@ -154,6 +154,11 @@ public class ThreadContextBenchmark {
}
@Benchmark
+ public Object get() {
+ return ThreadContext.get(keys[count - 1]);
+ }
+
+ @Benchmark
public MutableContextData injectWithoutProperties() {
reusableContextData.clear();
return injector.injectContextData(null, reusableContextData);
[3/5] logging-log4j2 git commit: LOG4J2-1349 added benchmarks for
legacy inject (Log4jLogEvent::createMap)
Posted by rp...@apache.org.
LOG4J2-1349 added benchmarks for legacy inject (Log4jLogEvent::createMap)
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/e6a777a1
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e6a777a1
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e6a777a1
Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: e6a777a190b2f10b107d83f0ed7247f6eea7d04e
Parents: 44784df
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 21:02:30 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 21:02:30 2016 +0900
----------------------------------------------------------------------
.../log4j/perf/jmh/ThreadContextBenchmark.java | 30 +++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e6a777a1/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index a8d15b8..b75e291 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -18,6 +18,7 @@
package org.apache.logging.log4j.perf.jmh;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -87,7 +88,8 @@ public class ThreadContextBenchmark {
IMPLEMENTATIONS.put(NO_GC_ARRAY_MAP, GarbageFreeSortedArrayThreadContextMap.class);
}
- @Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
+ //@Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
+ @Param({ "Default", }) // for legecyInject benchmarks
public String threadContextMapAlias;
@Param({"5", "50", "500"})
@@ -162,4 +164,30 @@ public class ThreadContextBenchmark {
reusableContextData.clear();
return injector.injectContextData(propertyList, reusableContextData);
}
+
+ @Benchmark
+ Map<String, String> legacyInjectWithoutProperties() {
+ return createMap(null);
+ }
+
+ @Benchmark
+ Map<String, String> legacyInjectWithProperties() {
+ return createMap(propertyList);
+ }
+
+ // from Log4jLogEvent::createMap
+ static Map<String, String> createMap(final List<Property> properties) {
+ final Map<String, String> contextMap = ThreadContext.getImmutableContext();
+ if (properties == null || properties.isEmpty()) {
+ return contextMap; // may be ThreadContext.EMPTY_MAP but not null
+ }
+ final Map<String, String> map = new HashMap<>(contextMap);
+
+ for (final Property prop : properties) {
+ if (!map.containsKey(prop.getName())) {
+ map.put(prop.getName(), prop.getValue());
+ }
+ }
+ return Collections.unmodifiableMap(map);
+ }
}
\ No newline at end of file