[ 
https://issues.apache.org/jira/browse/DIRSHARED-62?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12875658#action_12875658
 ] 

Emmanuel Lecharny commented on DIRSHARED-62:
--------------------------------------------

I'm afraid we won't be able to do anything about it, as this code is generated. 
We would have to fix the generator :/

> Improve antlr generated code [shared-ldap]
> ------------------------------------------
>
>                 Key: DIRSHARED-62
>                 URL: https://issues.apache.org/jira/browse/DIRSHARED-62
>             Project: Directory Shared
>          Issue Type: Improvement
>         Environment: All
>            Reporter: Felix Knecht
>
> The generated code by antlr could be improved regarding performance. Listed 
> classes below use the construct new Integer(...) a lot of times in their 
> constructor. If these classes are created many times it's an improvement to 
> have Integer.valueOf(...). Looking at the generated classes almost all values 
> for new Integer are in a range of [-128,128] what matches the criterias for 
> more performance [1].
> Classes:
> /shared-ldap/target/generated-sources/antlr/org/apache/directory/shared/ldap/aci/AntlrACIItemCheckerLexer.java
> /shared-ldap/target/generated-sources/antlr/org/apache/directory/shared/ldap/aci/AntlrACIItemLexer.java
> /shared-ldap/target/generated-sources/antlr/org/apache/directory/shared/ldap/subtree/AntlrSubtreeSpecificationCheckerLexer.java
> /shared-ldap/target/generated-sources/antlr/org/apache/directory/shared/ldap/subtree/AntlrSubtreeSpecificationLexer.java
> /shared-ldap/target/generated-sources/antlr/org/apache/directory/shared/ldap/trigger/AntlrTriggerSpecificationLexer.java
> [1] http://findbugs.sourceforge.net/bugDescriptions.html#DM_NUMBER_CTOR
>  Using new Integer(int) is guaranteed to always result in a new object 
> whereas Integer.valueOf(int) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Values between -128 and 127 are guaranteed to have corresponding cached 
> instances and using valueOf is approximately 3.5 times faster than using 
> constructor. For values outside the constant range the performance of both 
> styles is the same.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Long, Integer, 
> Short, Character, and Byte. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to