No, I have nothing particular in mind for that.

Just to let you know - and not to put any pressure on - I am waiting for this 
page before we do a release. I think it is pretty important, especially with 
the detailed results you are producing.

Ralph

> On May 7, 2016, at 9:33 AM, Remko Popma <remko.po...@gmail.com> wrote:
> 
> Ralph, 
> 
> Started to work on a benchmark to compare Log4j2's File, RandomAccessFile, 
> MemoryMappedFile, Console and Rewrite appenders.
> Is there any particular scenario you want to test with Rewrite appenders?
> 
> Remko 
> 
> On Mon, May 2, 2016 at 11:51 PM, Remko Popma <remko.po...@gmail.com 
> <mailto:remko.po...@gmail.com>> wrote:
> I will flesh things out further in this ticket: 
> https://issues.apache.org/jira/browse/LOG4J2-1179 
> <https://issues.apache.org/jira/browse/LOG4J2-1179>
> 
> 
> On Mon, May 2, 2016 at 1:42 AM, Ralph Goers <ralph.go...@dslextreme.com 
> <mailto:ralph.go...@dslextreme.com>> wrote:
> This all sounds really good!
> 
> Yes, the filter comparison isn’t as clear as it should be. Yes, it is how 
> long it takes to deny the events in nanoseconds. The results were generated 
> by the FilterPerformanceComparison test class.  At the time I tested with 2 
> Filters - a Marker filter and the MDC filter.  If you look at BasicMarker in 
> SLF4J you will notice that the hasReferences method is synchronized. In 
> multi-threaded cases this can cause huge performance issues if you have a 
> Marker with references to other markers (I personally experienced this).  
> Also, the referenceList is a Vector, so the contains methods can throw 
> ConcurrentModificationExceptions if Markers are modified during execution, 
> even though the add and remove methods are synchronized the contains method 
> is not.
> 
> The test is currently set up to compare the MDC/ThreadContext Filters during 
> the build. However, I am not sure it is correct. I don’t actually see it 
> setting the value in the thread context, so it wouldn’t be denying the events.
> 
> Ralph
> 
>> On May 1, 2016, at 12:44 AM, Remko Popma <remko.po...@gmail.com 
>> <mailto:remko.po...@gmail.com>> wrote:
>> 
>> I've started to work on this.
>> 
>> Question: 
>> the current page has a section comparing the performance Log4j 2 Filters to 
>> Logback Filters. Can you point me to the test that generated these results? 
>> What is being tested? I am guessing this is how long it takes to call 
>> logger.log(level, msg) when the filter DENIES the event, is this correct? Is 
>> the unit for the result numbers nanosecond/operation?
>> 
>> I'm thinking to convert the above filter test to a JMH benchmark. This would 
>> allow people to quickly verify the results on their own machine.
>> 
>> I need to think a bit on the items to put on the performance page (and to 
>> create benchmarks for).
>> 
>> * One theme will be a comparison of Log4j 2 to other logging libraries like 
>> Logback/Log4j1/JUL. One thing to measure is synchronized logging throughput. 
>> I'll use this chart 
>> <https://issues.apache.org/jira/browse/LOG4J2-1297?focusedCommentId=15256490&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15256490>
>>  for the performance page and use a simpler graph on the garbage-free manual 
>> page.
>> * Comparing File/RandomAccessFile/MemoryMappedFile appenders
>> * Documenting the performance of TCP/UDP appenders
>> * Compare parameterized logging to string concatenation
>> * Perhaps investigate/document the overhead of using the adapter/bridge 
>> modules (Log4j1-api, commons-logging, slf4j, JUL adapter)?
>> * Lock-free async logging versus blocking async logging (just a paragraph 
>> with link to the async logging manual page)
>> * Any Layouts to compare?
>> 
>> I plan to do most of the performance testing with JMH. The response time 
>> test I'm using to test garbage-free latency gives a more nuanced picture but 
>> is more work to execute, gather results, analyse etc.
>> 
>> I'll flesh this out more over the coming week. Feedback welcome as always.
>> 
>> Remko
>> 
>> 
>> On Wed, Apr 27, 2016 at 10:09 AM, Ralph Goers <ralph.go...@dslextreme.com 
>> <mailto:ralph.go...@dslextreme.com>> wrote:
>> Either in the manual or a link above it
>> 
>> Sent from my iPhone
>> 
>> On Apr 26, 2016, at 4:41 PM, Remko Popma <remko.po...@gmail.com 
>> <mailto:remko.po...@gmail.com>> wrote:
>> 
>>> Will do. Was on my TODO-eventually list but I'll move it up. :-)
>>> Shall we included it in the manual then?
>>> 
>>> On Wed, Apr 27, 2016 at 6:23 AM, Ralph Goers <ralph.go...@dslextreme.com 
>>> <mailto:ralph.go...@dslextreme.com>> wrote:
>>> Remko,
>>> 
>>> The performance page hasn’t been updated in quite some time.  It really 
>>> could use some of your nice graphs.  Also, it isn’t linked from the main 
>>> menu. The only way I know of to find it is by clicking a link embedded in 
>>> the About page.  Do you think you could enhance that page?   It would be 
>>> great to see a variation of the chart you made for garbage free logging, 
>>> although I am just thinking of a few charts comparing Log4j 1, Log4j 2, 
>>> Logback and JUL in various scenarios.  Something similar to 
>>> https://www.loggly.com/blog/benchmarking-java-logging-frameworks/ 
>>> <https://www.loggly.com/blog/benchmarking-java-logging-frameworks/> would 
>>> be nice, but with similar configurations instead of relying on defaults.
>>> 
>>>  I am still aware that we may need to make improvements to the 
>>> SocketAppender. I still intend to create a version that uses Netty, 
>>> 
>>> Ralph
>>> 
>> 
> 
> 
> 

Reply via email to