Java performance guidelines

Java™ performance on AIX® can be improved in several ways.

  • Use the StringBuffer function instead of string concatenations when doing excessive string manipulations to avoid unnecessarily creating objects that eventually must undergo garbage collection.
  • Avoid excessive writing to the Java console to reduce the cost of string manipulations, text formatting, and output.
  • Avoid the costs of object creation and manipulation by using primitive types for variables when necessary.
  • Cache frequently-used objects to reduce the amount of garbage collection needed, and avoid the need to re-create the objects.
  • Group native operations to reduce the number of Java Native Interface (JNI) calls when possible.
  • Use synchronized methods only when necessary to limit the multitasking in the JVM and operating system.
  • Avoid invoking the garbage collector unless necessary. If you must invoke it, do so only during idle time or some noncritical phase.
  • Use the int type instead of the long type whenever possible, because 32-bit operations are executed faster than 64-bit operations.
  • Declare methods as final whenever possible. Final methods are handled better by the JVM.
  • Use the static final key word when creating constants in order to reduce the number of times the variables need to be initialized.
  • Avoid unnecessary "casts" and "instanceof" references, because casting in Java is done at run time.
  • Avoid the use of vectors whenever possible when an array will suffice.
  • Add and delete items from the end of the vector.
  • Avoid allocating objects within loops.
  • Use buffer I/O and tune the buffer size.
  • Use connection pools and cached-prepared statements for database access.
  • Use connection pools to the database and reuse connections rather than repeatedly opening and closing connections.
  • Maximize and minimize thread creation and destruction cycles.
  • Minimize the contention for shared resources.
  • Minimize the creation of short-lived objects.
  • Avoid remote method calls.
  • Use callbacks to avoid blocking remote method calls.
  • Avoid creating an object only used for accessing a method.
  • Keep synchronized methods out of loops.
  • Store string and char data as Unicode in the database.
  • Reorder CLASSPATH so that the most frequently used libraries occur first.