On my Mac Pro with the slower external SSD I now got: Benchmark Mode Samples Score Error Units o.a.l.l.p.j.FileAppenderBenchmark.julFile thrpt 10 73.739 ± 0.740 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j1File thrpt 10 683.129 ± 9.407 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j2File thrpt 10 991.293 ± 193.049 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j2MMF thrpt 10 3072.250 ± 63.475 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j2RAF thrpt 10 1056.256 ± 137.673 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.logbackFile thrpt 10 784.723 ± 153.226 ops/ms
and on the same machine with the faster internal SSD I got: Benchmark Mode Samples Score Error Units o.a.l.l.p.j.FileAppenderBenchmark.julFile thrpt 10 74.661 ± 0.232 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j1File thrpt 10 647.041 ± 2.994 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j2File thrpt 10 1333.887 ± 13.921 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j2MMF thrpt 10 3025.726 ± 210.414 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.log4j2RAF thrpt 10 1433.620 ± 11.194 ops/ms o.a.l.l.p.j.FileAppenderBenchmark.logbackFile thrpt 10 1026.319 ± 13.347 ops/ms I will continue to run this on a few other configurations. I think I would also like to add the async appenders/loggers to this test so that one can see all the various options. It is really quite interesting to me to see how the memory mapped appender behaves so differently from one machine to another. I don’t know under what circumstances I would recommend using it though. Ralph > On Feb 9, 2017, at 7:03 AM, Apache <ralph.go...@dslextreme.com> wrote: > > After modifying the configuration the new results on my laptop are: > > Benchmark Mode Samples Score > Error Units > o.a.l.l.p.j.FileAppenderBenchmark.julFile thrpt 10 92.580 ± > 3.698 ops/ms > o.a.l.l.p.j.FileAppenderBenchmark.log4j1File thrpt 10 828.707 ± > 55.006 ops/ms > o.a.l.l.p.j.FileAppenderBenchmark.log4j2File thrpt 10 1647.230 ± > 125.682 ops/ms > o.a.l.l.p.j.FileAppenderBenchmark.log4j2MMF thrpt 10 1465.002 ± > 1284.943 ops/ms > o.a.l.l.p.j.FileAppenderBenchmark.log4j2RAF thrpt 10 1765.340 ± > 149.707 ops/ms > o.a.l.l.p.j.FileAppenderBenchmark.logbackFile thrpt 10 1192.594 ± > 57.777 ops/ms > > I will try the other machines later and post those results. > > Ralph > > >> On Feb 9, 2017, at 5:22 AM, Apache <ralph.go...@dslextreme.com >> <mailto:ralph.go...@dslextreme.com>> wrote: >> >> Ceki replied on twitter that the immediateFlush option is now a parameter of >> the appended, not the encoder, so it looks like the confit needs to be >> changed and the test rerun. >> >> Ralph >> >> On Feb 9, 2017, at 3:08 AM, Remko Popma <remko.po...@gmail.com >> <mailto:remko.po...@gmail.com>> wrote: >> >>> FYI, The write and flush methods in BufferedOutputStream are also >>> synchronized, so we won't be able to do away with synchronization >>> completely. >>> >>> In OutputStreamManager we synchronize multiple methods but these are nested >>> calls. I thought reentrant synchronization had negligible overhead but I >>> haven't measured this myself. >>> >>> >>> Sent from my iPhone >>> >>> On Feb 9, 2017, at 2:31, Apache <ralph.go...@dslextreme.com >>> <mailto:ralph.go...@dslextreme.com>> wrote: >>> >>>> I’m pretty sure the problem we have is that a) we are synchronizing many >>>> methods and b) we are synchronizing more than just the write. >>>> Unfortunately, I can’t figure out how to reduce that based on how >>>> dispersed the code has gotten. >>>> >>>> Ralph >>>> >>>>> On Feb 8, 2017, at 10:14 AM, Apache <ralph.go...@dslextreme.com >>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>> >>>>> I tried to modify FileManager to just use a BufferedOutputStream but >>>>> discovered I couldn’t as the layouts now require the ByteBuffer. >>>>> >>>>> Ralph >>>>> >>>>>> On Feb 8, 2017, at 12:14 AM, Apache <ralph.go...@dslextreme.com >>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>> >>>>>> The append method isn’t synchronized but the writeBytes method acquires >>>>>> a lock. His code is actually a lot simpler than ours in that it just >>>>>> uses a BufferedOutputStream and he only obtains the lock when he is >>>>>> writing to it. >>>>>> >>>>>> Ralph >>>>>> >>>>>>> On Feb 6, 2017, at 5:23 PM, Matt Sicker <boa...@gmail.com >>>>>>> <mailto:boa...@gmail.com>> wrote: >>>>>>> >>>>>>> I'm not sure if I'm looking in the right place, but a major difference >>>>>>> now between Logback's appenders and Log4j's is that Logback isn't >>>>>>> synchronized on the append method. >>>>>>> >>>>>>> On 6 February 2017 at 18:18, Matt Sicker <boa...@gmail.com >>>>>>> <mailto:boa...@gmail.com>> wrote: >>>>>>> Is this something we can improve performance on by implementing a file >>>>>>> appender based on FileChannel or AsynchronousFileChannel instead of >>>>>>> OutputStream? >>>>>>> >>>>>>> On 6 February 2017 at 17:50, Apache <ralph.go...@dslextreme.com >>>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>>> Ceki has updated his numbers to include those reported on the mailing >>>>>>> list. >>>>>>> https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit#gid=0 >>>>>>> >>>>>>> <https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit#gid=0> >>>>>>> >>>>>>> I haven’t run the tests with Logback 1.2-SNAPSHOT but my numbers for my >>>>>>> two MacBooks are at >>>>>>> https://docs.google.com/spreadsheets/d/1L67IhmUVvyLBWtC6iq0TMj-j0vrbKsUKWuZV0Nlqisk/edit?usp=sharing >>>>>>> >>>>>>> <https://docs.google.com/spreadsheets/d/1L67IhmUVvyLBWtC6iq0TMj-j0vrbKsUKWuZV0Nlqisk/edit?usp=sharing>. >>>>>>> >>>>>>> >>>>>>> Ralph >>>>>>> >>>>>>>> On Feb 6, 2017, at 9:33 AM, Apache <ralph.go...@dslextreme.com >>>>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>>>> >>>>>>>> Yes, that is still the standard approach most people use and is the >>>>>>>> only way to provide a head-to-head comparison against the logging >>>>>>>> frameworks. >>>>>>>> >>>>>>>> Ralph >>>>>>>> >>>>>>>>> On Feb 6, 2017, at 8:02 AM, Matt Sicker <boa...@gmail.com >>>>>>>>> <mailto:boa...@gmail.com>> wrote: >>>>>>>>> >>>>>>>>> This is all in a synchronous appender, right? Either way, that's >>>>>>>>> rather interesting. >>>>>>>>> >>>>>>>>> On 6 February 2017 at 07:54, Apache <ralph.go...@dslextreme.com >>>>>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>>>>> Someone posted numbers on the Logback user’s list that match mine. >>>>>>>>> It shows Logback 1.1.9 was pretty terrible, 1.1.10 is somewhat better >>>>>>>>> and 1.2-SNAPSHOT is on par or slightly better than Log4j 2. >>>>>>>>> >>>>>>>>> Ralph >>>>>>>>> >>>>>>>>>> On Feb 5, 2017, at 3:25 PM, Matt Sicker <boa...@gmail.com >>>>>>>>>> <mailto:boa...@gmail.com>> wrote: >>>>>>>>>> >>>>>>>>>> I think we need some comparisons on the log4j side: file appender >>>>>>>>>> with 256k buffer size, random access file appender with 256k buffer >>>>>>>>>> size (which appears to be the default), and memory mapped file >>>>>>>>>> appender. It'd be cool to see how these compose with async logging >>>>>>>>>> enabled in both log4j and logback. >>>>>>>>>> >>>>>>>>>> On 5 February 2017 at 16:06, Apache <ralph.go...@dslextreme.com >>>>>>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>>>>>> You should run the code at https://github.com/ceki/logback-perf >>>>>>>>>> <https://github.com/ceki/logback-perf> to compare your results to >>>>>>>>>> Ceki’s. You also should capture the cpubenchmark speed of your >>>>>>>>>> processor and get the speed of your hard drive. I used Blackmagic >>>>>>>>>> speed test on my Mac. I am capturing my results in a Google >>>>>>>>>> spreadsheet. I will post the like once I have it. >>>>>>>>>> >>>>>>>>>> Ralph >>>>>>>>>> >>>>>>>>>>> On Feb 5, 2017, at 1:48 PM, Gary Gregory <garydgreg...@gmail.com >>>>>>>>>>> <mailto:garydgreg...@gmail.com>> wrote: >>>>>>>>>>> >>>>>>>>>>> If you want, I can run tests on Windows once the build works on >>>>>>>>>>> Windows again. >>>>>>>>>>> >>>>>>>>>>> Let me know what args/command line... >>>>>>>>>>> >>>>>>>>>>> Gary >>>>>>>>>>> >>>>>>>>>>> On Feb 5, 2017 11:58 AM, "Apache" <ralph.go...@dslextreme.com >>>>>>>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>>>>>>> I guess my MacBook Pro must fit in the Slow CPU/Fast Hard drive >>>>>>>>>>> category. With Logback 1.10 and -t 4 now get >>>>>>>>>>> >>>>>>>>>>> Benchmark Mode Samples >>>>>>>>>>> Score Error Units >>>>>>>>>>> o.a.l.l.p.j.FileAppenderBenchmark.julFile thrpt 20 >>>>>>>>>>> 98187.673 ± 4935.712 ops/s >>>>>>>>>>> o.a.l.l.p.j.FileAppenderBenchmark.log4j1File thrpt 20 >>>>>>>>>>> 842374.496 ± 6762.712 ops/s >>>>>>>>>>> o.a.l.l.p.j.FileAppenderBenchmark.log4j2File thrpt 20 >>>>>>>>>>> 1853062.583 ± 67032.225 ops/s >>>>>>>>>>> o.a.l.l.p.j.FileAppenderBenchmark.log4j2RAF thrpt 20 >>>>>>>>>>> 2036011.226 ± 53208.281 ops/s >>>>>>>>>>> o.a.l.l.p.j.FileAppenderBenchmark.logbackFile thrpt 20 >>>>>>>>>>> 999667.438 ± 12074.003 ops/s >>>>>>>>>>> >>>>>>>>>>> I’ll have to try this on one my VMs at work. We don’t run anything >>>>>>>>>>> directly on bare metal any more. >>>>>>>>>>> >>>>>>>>>>> Ralph >>>>>>>>>>> >>>>>>>>>>>> On Feb 5, 2017, at 9:40 AM, Apache <ralph.go...@dslextreme.com >>>>>>>>>>>> <mailto:ralph.go...@dslextreme.com>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Ceki finally fixed some of the performance problems in the >>>>>>>>>>>> FileAppender. See https://logback.qos.ch/news.html >>>>>>>>>>>> <https://logback.qos.ch/news.html> and >>>>>>>>>>>> https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit#gid=0 >>>>>>>>>>>> >>>>>>>>>>>> <https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit#gid=0>. >>>>>>>>>>>> I suspect we have a few optimizations we can make. >>>>>>>>>>>> >>>>>>>>>>>> Ralph >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Matt Sicker <boa...@gmail.com <mailto:boa...@gmail.com>> >>>>>> >>>>> >>>> >