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

ASF GitHub Bot commented on MNG-7899:
-------------------------------------

sebastien-doyon commented on code in PR #1270:
URL: https://github.com/apache/maven/pull/1270#discussion_r1340453474


##########
maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java:
##########
@@ -495,19 +495,6 @@ void logging(CliRequest cliRequest) {
         cliRequest.quiet = !cliRequest.verbose && 
commandLine.hasOption(CLIManager.QUIET);
         cliRequest.showErrors = cliRequest.verbose || 
commandLine.hasOption(CLIManager.ERRORS);
 
-        slf4jLoggerFactory = LoggerFactory.getILoggerFactory();

Review Comment:
   Well, the MessageUtils.setColorEnabled must be called before calling 
slf4jConfiguration.setRootLoggerLevel witch load for the first time the 
MavenSimpleLogger class. Since this modified class use now static constants, 
its is necessary that the colour support is set right before loading the 
MavenSimpleLogger class.





> Various memory usage improvements
> ---------------------------------
>
>                 Key: MNG-7899
>                 URL: https://issues.apache.org/jira/browse/MNG-7899
>             Project: Maven
>          Issue Type: Improvement
>          Components: Design, Patterns & Best Practices, Embedding, 
> General, Logging
>    Affects Versions: 4.0.0-alpha-2
>            Reporter: sebastien
>            Priority: Major
>
> Some optimisations can be applied to the code to reduce the use of temporary 
> objects.
> Typical improvements identified are:
>  * reduce scope of temporary objects creation to avoid creating when not 
> needed. Example :
> {code:java}
> public String toString() {        
>     StringBuilder sb = new StringBuilder(512);        
>     if (isEmpty()) {            
>         return "empty";        
>     }        
>     for (MetadataGraphVertex v : vertices) {
>     .....{code}
> can be replaced by 
> {code:java}
> public String toString() {        
>     if (isEmpty()) {            
>         return "empty";
>     }        
>     StringBuilder sb = new StringBuilder(512);
>     for (MetadataGraphVertex v : vertices) {
>     .....{code}
>  * Reuse StringBuilder objects in loops by setting its length to zero
>  * Use the StringBuilder.append() with index to avoid String.substring(). 
> Example:
>  
> {code:java}
> int idx = resourceName.lastIndexOf('/');
> buffer.append(idx < 0 ? resourceName : resourceName.substring(idx + 1)); 
> {code}
> can be replaced by 
>  
> {code:java}
> int idx = resourceName.lastIndexOf('/');
> if (idx < 0) {
>     buffer.append(resourceName);
> } else {
>     buffer.append(resourceName, idx + 1, resourceName.length());              
>       } {code}
>  
>  
>  * Replace dynamic string creation static constants when possible
>  * Avoid creating temporary strings with + operator when the final 
> destination can be used instead, like PrintStream.print() method
>  * Avoir using StringBuilder.append() method and util method MessageUtils.a() 
> when the final destination can be used instead, like PrintStream.print() 
> method
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to