Interface: +1 Gary
On Nov 13, 2016 8:59 AM, "Ralph Goers (JIRA)" <j...@apache.org> wrote: > > [ https://issues.apache.org/jira/browse/LOG4J2-1683?page= > com.atlassian.jira.plugin.system.issuetabpanels:comment- > tabpanel&focusedCommentId=15661768#comment-15661768 ] > > Ralph Goers commented on LOG4J2-1683: > ------------------------------------- > > If you want to replace SortedMap I would request that you replace it with > an interface that extends SortedMap rather than a concrete implementation. > > > (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 > >