Lo que algunos deben saber son punteros para la optimización del código fundamental en Java

– En cuanto a E / S, java.util.Scanner es lento. Está bien para la entrada típica del usuario, aunque si lo está utilizando para analizar archivos de texto grandes, tiene problemas. Intente usar algunas de las clases de E / S con buffer para este propósito (o si funciona en su situación particular, lea todo el archivo) y tokenizadores para procesar.

– Las cadenas son inmutables, así que tenga cuidado de cómo las maneja.

– Las excepciones son lentas, así que cansarse de ellas.

– Como Jason Barrett Prado mencionó, GC puede tener un gran efecto en el rendimiento. Una regla general que he escuchado es que aproximadamente el diez por ciento de su tiempo de ejecución se gastará en ello, aunque realmente depende del programa. Para combatir esto, intente no crear muchos objetos pequeños temporales (intente extraer la asignación de los bucles, etc.). También puede cambiar el tipo de algoritmo GC que ejecuta la JVM. Para más trabajos intensivos de memoria o GC, generalmente enciendo el algoritmo de barrido concurrente.

– Para trabajos de gran memoria, también ayuda a aumentar el tamaño del almacenamiento dinámico (la asignación se vuelve difícil cuando no hay mucho espacio en el almacenamiento dinámico).

– Realmente ayuda si tienes alguna idea de lo que están haciendo las clases de colección / utilidad (al menos a un alto nivel) detrás de escena. Personalmente, los uso mucho y tienen un gran impacto en el rendimiento. También tenga en cuenta las cosas sincronizadas en estas clases.

– Los perfiladores siempre son agradables.

Y, finalmente, surgió una búsqueda rápida con esta lista, que me parece bastante legítima:
http://www.javacommerce.com/disp…

Entre otras cosas, menciona todo lo relacionado con la concatenación de cadenas (‘use StringBuffer’).

  • Lo más obvio: no use str + = anotherStr o str = str + anotherStr . En su lugar, use StringBuilder (o StringBuffer).
  • No use excepciones para el control de flujo normal, cuando lo haría.

Echa un vistazo a esto:
http: //www.javaperformancetuning

los consejos son bastante antiguos (aunque la mayoría son válidos) pero el boletín es interesante