[
https://issues.apache.org/jira/browse/LOG4J2-1430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matt Sicker updated LOG4J2-1430:
--------------------------------
Description:
[Conversant Disruptor|https://github.com/conversant/disruptor] works as an
implementation of BlockingQueue that is much faster than ArrayBlockingQueue. I
did some benchmarks earlier and found it to be a bit faster:
h3. ArrayBlockingQueue
{code}
Benchmark Mode Samples
Score Error Units
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params thrpt 20
1101267.173 ± 17583.204 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params thrpt 20
1128269.255 ± 12188.910 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param thrpt 20
1525470.805 ± 56515.933 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params thrpt 20
1789434.196 ± 42733.475 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params thrpt 20
1803276.278 ± 34938.176 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params thrpt 20
1468550.776 ± 26402.286 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params thrpt 20
1322304.349 ± 22417.997 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params thrpt 20
1179756.489 ± 16502.276 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params thrpt 20
1324660.677 ± 18893.944 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params thrpt 20
1309365.962 ± 19602.489 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params thrpt 20
1422144.180 ± 20815.042 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple thrpt 20
1247862.372 ± 18300.764 ops/s
{code}
h3. DisruptorBlockingQueue
{code}
Benchmark Mode Samples
Score Error Units
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params thrpt 20
3704735.586 ± 59766.253 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params thrpt 20
3622175.410 ± 31975.353 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param thrpt 20
6862480.428 ± 121473.276 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params thrpt 20
6193288.988 ± 93545.144 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params thrpt 20
5715621.712 ± 131878.581 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params thrpt 20
5745187.005 ± 213854.016 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params thrpt 20
5307137.396 ± 88135.709 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params thrpt 20
4953015.419 ± 72100.403 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params thrpt 20
4833836.418 ± 52919.314 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params thrpt 20
4353791.507 ± 79047.812 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params thrpt 20
4136761.624 ± 67804.253 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple thrpt 20
6719456.722 ± 187433.301 ops/s
{code}
was:For example, [this disruptor
implementation|https://github.com/conversant/disruptor] works as an
implementation of BlockingQueue that is much faster than ArrayBlockingQueue.
> Add optional support for Conversant DisruptorBlockingQueue in AsyncAppender
> ---------------------------------------------------------------------------
>
> Key: LOG4J2-1430
> URL: https://issues.apache.org/jira/browse/LOG4J2-1430
> Project: Log4j 2
> Issue Type: New Feature
> Components: Appenders
> Affects Versions: 2.6.1
> Reporter: Matt Sicker
> Assignee: Matt Sicker
>
> [Conversant Disruptor|https://github.com/conversant/disruptor] works as an
> implementation of BlockingQueue that is much faster than ArrayBlockingQueue.
> I did some benchmarks earlier and found it to be a bit faster:
> h3. ArrayBlockingQueue
> {code}
> Benchmark Mode Samples
> Score Error Units
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params thrpt 20
> 1101267.173 ± 17583.204 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params thrpt 20
> 1128269.255 ± 12188.910 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param thrpt 20
> 1525470.805 ± 56515.933 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params thrpt 20
> 1789434.196 ± 42733.475 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params thrpt 20
> 1803276.278 ± 34938.176 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params thrpt 20
> 1468550.776 ± 26402.286 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params thrpt 20
> 1322304.349 ± 22417.997 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params thrpt 20
> 1179756.489 ± 16502.276 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params thrpt 20
> 1324660.677 ± 18893.944 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params thrpt 20
> 1309365.962 ± 19602.489 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params thrpt 20
> 1422144.180 ± 20815.042 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple thrpt 20
> 1247862.372 ± 18300.764 ops/s
> {code}
> h3. DisruptorBlockingQueue
> {code}
> Benchmark Mode Samples
> Score Error Units
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params thrpt 20
> 3704735.586 ± 59766.253 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params thrpt 20
> 3622175.410 ± 31975.353 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param thrpt 20
> 6862480.428 ± 121473.276 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params thrpt 20
> 6193288.988 ± 93545.144 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params thrpt 20
> 5715621.712 ± 131878.581 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params thrpt 20
> 5745187.005 ± 213854.016 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params thrpt 20
> 5307137.396 ± 88135.709 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params thrpt 20
> 4953015.419 ± 72100.403 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params thrpt 20
> 4833836.418 ± 52919.314 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params thrpt 20
> 4353791.507 ± 79047.812 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params thrpt 20
> 4136761.624 ± 67804.253 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple thrpt 20
> 6719456.722 ± 187433.301 ops/s
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]