Remko Popma created LOG4J2-1595: ----------------------------------- Summary: (GC) Avoid allocating temporary objects in Filter implementations Key: LOG4J2-1595 URL: https://issues.apache.org/jira/browse/LOG4J2-1595 Project: Log4j 2 Issue Type: New Feature Components: Filters Affects Versions: 2.6.2 Reporter: Remko Popma Assignee: Remko Popma Fix For: 2.7
Review current Filter implementation classes and change them to be garbage-free where feasible. Document on the web site which filters are garbage free and which are not. h4. Current status * BurstFilter (allocates, non-trivial to change) * CompositeFilter (adding & removing elements produces garbage for thread safety, no allocation in steady state) * DynamicThresholdFilter (garbage free) * LevelRangeFilter (can be garbage free after overriding unrolled vararg methods) * MapFilter (creates iterator for each event to loop over the map. Easy to change by constructing MapFilter with an ArrayContextData instead of a Map, and overriding unrolled vararg methods) * MarkerFilter (can be garbage free after overriding unrolled vararg methods) * RegexFilter (not garbagefree due to JDK regex library) * ScriptFilter (not garbagefree: creates new Binding object for each event) * StructuredDataFilter (TBD) * ThreadContextMapFilter (creates iterator for each event to loop over the map. Easy to change by constructing ThreadContextMapFilter with an ArrayContextData instead of a Map, and overriding unrolled vararg methods) * ThresholdFilter (can be garbage free after overriding unrolled vararg methods) -- 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