[ 
https://issues.apache.org/jira/browse/LOG4J2-1683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15662309#comment-15662309
 ] 

Remko Popma commented on LOG4J2-1683:
-------------------------------------

 Can I ask why?  None of the methods declared by SortedMap are actually used in 
this class,  so it is probably something else you looking for.  Is your 
intention to guarantee that all iteration is sorted over the keys?

> (GC) Avoid allocating temporary objects in MapMessage
> -----------------------------------------------------
>
>                 Key: LOG4J2-1683
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1683
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 2.7
>            Reporter: Remko Popma
>
> Make MapMessage garbage-free.
> While working on LOG4J2-1677, I found that MapFilter itself can avoid 
> allocating temporary objects, but when filtering a MapMessage, the message 
> allocates a java/util/Collections$UnmodifiableMap:
> {code}
>       at java.util.Collections.unmodifiableMap(Collections.java:1318)
>       at 
> org.apache.logging.log4j.message.MapMessage.getData(MapMessage.java:102)
>       at 
> org.apache.logging.log4j.core.filter.MapFilter.filter(MapFilter.java:70)
> {code}
> Apart from the filtering, logging a MapMessage allocates a StringBuilder and 
> an iterator over the TreeMap:
> {code}
>       at java.lang.StringBuilder.<init>(StringBuilder.java:85)
>       at 
> org.apache.logging.log4j.message.MapMessage.asString(MapMessage.java:189)
>       at 
> org.apache.logging.log4j.message.MapMessage.asString(MapMessage.java:172)
>       at 
> org.apache.logging.log4j.message.MapMessage.getFormattedMessage(MapMessage.java:229)
>       at 
> org.apache.logging.log4j.core.async.RingBufferLogEvent.setMessage(RingBufferLogEvent.java:127)
> {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

Reply via email to