Performance improvement for LogbackMDCAdapter
---------------------------------------------

                 Key: LBCLASSIC-254
                 URL: http://jira.qos.ch/browse/LBCLASSIC-254
             Project: logback-classic
          Issue Type: Improvement
          Components: Other
    Affects Versions: 0.9.28
            Reporter: Michael Franz
            Assignee: Logback dev list
         Attachments: LogbackMDCAdapter.java

During performance analysis of our application the LogbackMDCAdapter showed up 
as a performance hotspot. This is because the application does relatively often 
replaces multiple entries in the MDC at ones, e.g. 6 removes/writes without any 
intermediate log statement. Also actual log messages that come through 
filtering before creating the LoggingEvent are relatively rare in production 
environments.

I have reworked the implementation to improve the performance. The main idea is 
to defer cloning the internal Map as long possible. This patch increased 
overall application performance by about 10% in that test.
Other application types were MDC changes are small and many LoggingEvent 
objects are created (calls to getPropertyMap()) should not be affected 
significantly.

Note: I haven't check if my patch would reintroduce the #LBCLASSIC-183, but my 
subclasses of InheritableThreadLocal does not override the initialValue() 
method, so it could work.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev

Reply via email to