My results on Windows 10 64-bit laptop (java 1.8.0_51 64bit), i5-3317u CPU
@ 1.70GHz (dual core with hyperthreading for 4 virtual cores), SSD hard
disk:

java -jar log4j-perf/target/benchmarks.jar ".*FileAppenderBenchmark.*" -f 1
-wi 10 -i 20 -t 4 -tu ms

# Run complete. Total time: 00:03:58

Benchmark                                         Mode  Samples     Score
  Error   Units
o.a.l.l.p.j.FileAppenderBenchmark.julFile        thrpt       20    37.646 ±
  0.876  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j1File     thrpt       20   405.305 ±
  6.596  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j2File     thrpt       20   751.949 ±
 16.055  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j2MMF      thrpt       20  1250.666 ±
168.757  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j2RAF      thrpt       20   728.743 ±
 23.909  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.logbackFile    thrpt       20   676.926 ±
 19.518  ops/ms

--------------------
Logback config without immediateFlush=false:

# Run complete. Total time: 00:03:44

Benchmark                                         Mode  Samples     Score
  Error   Units
o.a.l.l.p.j.FileAppenderBenchmark.julFile        thrpt       20    37.949 ±
  1.220  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j1File     thrpt       20   404.042 ±
  8.450  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j2File     thrpt       20   690.393 ±
115.537  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j2MMF      thrpt       20  1221.681 ±
 82.205  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.log4j2RAF      thrpt       20   823.059 ±
 41.512  ops/ms
o.a.l.l.p.j.FileAppenderBenchmark.logbackFile    thrpt       20    83.352 ±
 11.911  ops/ms


On Fri, Feb 10, 2017 at 1:05 AM, Mikael Ståldal <mikael.stal...@magine.com>
wrote:

> I guess that with a memory mapped file, you leave it to the OS to do the
> best it can, and you lose any direct control over how it is actually done.
>
> On Thu, Feb 9, 2017 at 4:52 PM, Apache <ralph.go...@dslextreme.com> wrote:
>
>> 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> 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> 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> 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> 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> 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> 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> 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> wrote:
>>>
>>>> Ceki has updated his numbers to include those reported on the mailing
>>>> list. https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0
>>>> RTlHUnXedYK98catNZytYIu5D91m0/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/spread
>>>> sheets/d/1L67IhmUVvyLBWtC6iq0TMj-j0vrbKsUKWuZV0Nlqisk/edit?usp=sharing
>>>> .
>>>>
>>>> Ralph
>>>>
>>>> On Feb 6, 2017, at 9:33 AM, Apache <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> 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> 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> 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>
>>>>> wrote:
>>>>>
>>>>>> You should run the code at 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>
>>>>>> 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> 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>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Ceki finally fixed some of the performance problems in the
>>>>>>> FileAppender. See https://logback.qos.ch/news.html and
>>>>>>> https://docs.google.com/spreadsheets/d/1cpb5D7qny
>>>>>>> ye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit#gid=0. I suspect we have a
>>>>>>> few optimizations we can make.
>>>>>>>
>>>>>>> Ralph
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Matt Sicker <boa...@gmail.com>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Matt Sicker <boa...@gmail.com>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Matt Sicker <boa...@gmail.com>
>>>
>>
>>
>>
>> --
>> Matt Sicker <boa...@gmail.com>
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> [image: MagineTV]
>
> *Mikael Ståldal*
> Senior software developer
>
> *Magine TV*
> mikael.stal...@magine.com
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
>
> Privileged and/or Confidential Information may be contained in this
> message. If you are not the addressee indicated in this message
> (or responsible for delivery of the message to such a person), you may not
> copy or deliver this message to anyone. In such case,
> you should destroy this message and kindly notify the sender by reply
> email.
>

Reply via email to