Uploaded image for project: 'Google Code-in'
  1. Google Code-in
  2. GCI-246

Use Long.valueOf(long) instead of the inefficient new Long(long) constructor

    XMLWordPrintable

    Details

    • Complexity:
      Low

      Description

      On this line https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/api/db/hibernate/HibernateLocationDAO.java#L348

      replace new Long(tags.size()) with Long.valueOf(tags.size())

       

      Background Information:

      Using new Long(long) is guaranteed to always result in a new object whereas Long.valueOf(long) 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 LongIntegerShortCharacter, and Byte.

        Gliffy Diagrams

          Attachments

            Activity

              People

              Assignee:
              samuel34 Samuel Male
              Reporter:
              dkayiwa Daniel Kayiwa
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: