Github user leventov commented on the issue:
https://github.com/apache/logging-log4j2/pull/87
<h3>Throughput comparison</h3>
First number is the number of threads, "150" is the message size.
Before this PR
```
1 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 988106.677 ± 44561.265 ops/s
2 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 1378707.634 ± 45234.050 ops/s
3 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 1507720.952 ± 42527.798 ops/s
4 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 1615561.064 ± 10197.025 ops/s
1 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 1406710.542 ± 53654.749 ops/s
2 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 2032867.062 ± 33273.059 ops/s
3 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 2182597.197 ± 19446.011 ops/s
4 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 2128503.272 ± 40132.820 ops/s
```
With this PR
```
1 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 848596.439 ± 29081.144 ops/s
2 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 1302047.611 ± 21627.635 ops/s
3 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 10 1702653.587 ± 36385.194 ops/s
4 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.end2endMMap
150 thrpt 15 1880038.309 ± 35208.682 ops/s
1 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 1283001.528 ± 40095.635 ops/s
2 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 1803333.701 ± 27412.900 ops/s
3 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 2506996.207 ± 40209.437 ops/s
4 - o.a.l.l.p.j.Log4j2AppenderComparisonBenchmark.appenderMMap
150 thrpt 10 2723771.920 ± 103479.124 ops/s
```
On the same MacBook with 4 cores.
You can see that with 1 or 2 threads older version is faster, but it's the
limit of it's scalability, and with 3 or 4 threads the wait-free version takes
over.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---