[
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.