Findbugs reported a minor performance issue. Integer.valueOf(string);
---------------------------------------------------------------------
Key: PDFBOX-403
URL: https://issues.apache.org/jira/browse/PDFBOX-403
Project: PDFBox
Issue Type: Improvement
Components: PDModel
Environment: all
Reporter: [email protected]
Priority: Trivial
Below are the comments from Findbugs, PMD also reported the same problem, but
findbugs gives a better description of the issue.
-------------------------------------------------------------------
[M P Bx] Method invokes inefficient Number constructor; use static valueOf
instead [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.
public Integer getRotation()
{
Integer retval = null;
COSNumber value = (COSNumber)page.getDictionaryObject(
COSName.ROTATE );
if( value != null )
{
//Change this:
retval = new Integer( value.intValue() ); // to this, so the first
127 rotation numbers will be cached Integer
values:
retval = Integer.valueOf(value.intValue());
}
return retval;
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.