You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Remko Popma (JIRA)" <ji...@apache.org> on 2016/02/13 06:06:18 UTC

[jira] [Created] (LOG4J2-1271) ParameterizedMessage optimization

Remko Popma created LOG4J2-1271:
-----------------------------------

             Summary: ParameterizedMessage optimization
                 Key: LOG4J2-1271
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1271
             Project: Log4j 2
          Issue Type: Improvement
          Components: API
    Affects Versions: 2.5
            Reporter: Remko Popma
            Assignee: Remko Popma


ParameterizedMessage creates unnecessary objects and does other unnecessary work in its constructor.
On the other hand, it does not create the full formatted string it will eventually need to return from {{getFormattedMessage()}}.

I propose the following changes:
* Don't call {{argumentsToStrings}} in the constructor. Converting the parameter Object[] array to a String[] array should only be done when necessary: when this ParameterizedMessage is serialized.
* Don't copy the parameter Object[] array to a new array. Instead clone the array when the {{getParameters()}} method is called.
* In the constructor, build the fully formatted message. This combines the work done by {{formatStringArgs(String, String[])}} and {{argumentsToStrings(Object[])}} and avoids the issue mentioned in LOG4J2-763.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org