[ https://issues.apache.org/jira/browse/LOG4J2-1430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15339770#comment-15339770 ]
Matt Sicker commented on LOG4J2-1430: ------------------------------------- I've rerun the AsyncAppender benchmarks. Specs: 4 threads, 4-core 2.7 GHz Intel Core i7. {noformat} Benchmark (configFileName) Mode Samples Score Error Units o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1206845.073 ± 32553.206 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 3540280.706 ± 142095.468 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 3721962.221 ± 265353.892 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 3211162.495 ± 64729.301 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1153345.166 ± 13144.671 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 3408585.363 ± 44104.092 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 3579712.530 ± 257860.511 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 3172050.033 ± 28729.288 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1314547.903 ± 13798.123 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 6367206.729 ± 24910.719 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 7627619.055 ± 38062.874 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 5495479.783 ± 43059.188 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1733486.606 ± 61734.478 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 5920363.934 ± 42182.740 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 6678693.818 ± 31373.839 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 4917474.007 ± 200825.228 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1265648.334 ± 27079.677 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 5308803.910 ± 378505.356 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 6539553.090 ± 177574.592 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 4609151.476 ± 108555.837 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1292712.115 ± 44903.210 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 4905343.490 ± 84729.064 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 6067199.645 ± 74495.874 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 4457522.896 ± 25518.207 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1225613.756 ± 14661.952 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 4646320.584 ± 105446.125 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 5121846.498 ± 249702.467 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 4253456.611 ± 128742.328 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1258539.457 ± 28386.367 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 4409586.991 ± 311831.674 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 5484760.055 ± 111687.688 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 3843838.446 ± 57626.978 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1349756.153 ± 36750.141 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 4238115.386 ± 175533.446 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 4849398.916 ± 75327.693 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 3898326.787 ± 55680.200 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1356061.837 ± 24627.270 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 4073197.956 ± 30465.904 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 4633998.411 ± 72966.371 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 3618730.696 ± 52408.085 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1122352.399 ± 30281.259 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 3324498.475 ± 207361.244 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 3751204.111 ± 467556.500 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 3355028.955 ± 73455.171 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndNoLoc-noOpAppender.xml thrpt 20 1133597.159 ± 16817.020 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 20 6367044.731 ± 435715.161 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 20 6761526.363 ± 87207.625 ops/s o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndXferQNoLoc-noOpAppender.xml thrpt 20 5282794.529 ± 259637.289 ops/s {noformat} > 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 > Fix For: 2.7 > > Attachments: AsyncAppenderPerf01.txt, > log4j2-1430-jctools-tmp-patch.txt > > > [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. AsyncAppender/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. AsyncAppender/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} > h3. AsyncLogger > {code} > Benchmark Mode Samples > Score Error Units > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput10Params thrpt 20 > 5075883.371 ± 180465.316 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput11Params thrpt 20 > 4867362.030 ± 193909.465 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput1Param thrpt 20 > 10294733.024 ± 226536.965 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput2Params thrpt 20 > 9021650.667 ± 351102.255 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput3Params thrpt 20 > 8079337.905 ± 115824.975 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput4Params thrpt 20 > 7347356.788 ± 66598.738 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput5Params thrpt 20 > 6930636.174 ± 150072.908 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput6Params thrpt 20 > 6309567.300 ± 293709.787 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput7Params thrpt 20 > 6051997.196 ± 268405.087 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput8Params thrpt 20 > 5273376.623 ± 99168.461 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughput9Params thrpt 20 > 5091137.594 ± 150617.444 ops/s > o.a.l.l.p.j.AsyncLoggersBenchmark.throughputSimple thrpt 20 > 11136623.731 ± 400350.272 ops/s > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org