[ https://issues.apache.org/jira/browse/LOG4J2-3672?focusedWorklogId=888476&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-888476 ]
ASF GitHub Bot logged work on LOG4J2-3672: ------------------------------------------ Author: ASF GitHub Bot Created on: 02/Nov/23 16:27 Start Date: 02/Nov/23 16:27 Worklog Time Spent: 10m Work Description: tristantarrant commented on PR #1848: URL: https://github.com/apache/logging-log4j2/pull/1848#issuecomment-1791067565 I apologize: I included the wrong layout. This one triggers the call: ```xml <PatternLayout pattern="%d{dd/MMM/yyyy:HH:mm:ss Z} %-5p %m%throwable%n"/> ``` Removing the `Z` will "fix" it, but then the timestamp will not have the Common Log Format (as described here https://httpd.apache.org/docs/2.4/logs.html) which is what we need. Issue Time Tracking ------------------- Worklog Id: (was: 888476) Time Spent: 2h 20m (was: 2h 10m) > Avoid invoking DateFormatSymbols.getZoneStrings() in FastDateParser > ------------------------------------------------------------------- > > Key: LOG4J2-3672 > URL: https://issues.apache.org/jira/browse/LOG4J2-3672 > Project: Log4j 2 > Issue Type: Bug > Reporter: Tristan Tarrant > Priority: Major > Attachments: stacktrace.png > > Time Spent: 2h 20m > Remaining Estimate: 0h > > {{FastDateParser}} uses {{DateFormatSymbols.getZoneStrings()}} to construct a > table of all possible timezone names to be used in parsing date patterns in > pattern layouts. > Unfortunately the above call (and the equivalent call used by the JDK's > {{SimpleDateFormat)}} causes initialization and caching of all timezones, > resulting in a ~3MB heap overhead on x86_64. The following table summarizes > the cost of triggering the caching of all timezones, including the number of > instances of some related types and the amount of extra heap required. > > || ||LocalDateTime||LocalDate||ZoneInfo||ZoneOffset||Heap delta|| > |Baseline (no TZ calls)|180|0|0| | | > |Single timezone|180|0|0|0|298| > |DateFormatSymbols.getZoneStrings()|57076|32212|602|1455|3760106| > |TimeZone.getAvailableIds() + TimeZone.getName()|36678|21674|632|1155|3024946| > |TimeZone.getAvalableIDs()|180|0|632|0|452578| > By avoiding constructions of such tables, and relying only on > {{{}FastDateParser{}}}'s support for RFC-822 and GMT-style timezone names, we > can avoid allocating the extra heap. > -- This message was sent by Atlassian Jira (v8.20.10#820010)