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.
---

Reply via email to