La prueba de fuego para cualquier desarrollador Java es montar su aplicación en productivo, momento en el que todos los problemas que no nos hubiéramos imaginado comienzan a salir. Los problemas de rendimiento y escalabilidad son inevitables cuando no somos cuidadosos en la medición, ajuste y monitoreo de nuestra aplicación. El resultado puede ser fatal, desde ausencia de servicio hasta perdida o afectación en los datos.
Te voy a recomendar 3 libros que te dan los fundamentos y conceptos en el rendimiento de una aplicación y como medirlos. Estas lecturas son indispensables para todos los que se presumen expertos y desean conocer las tripas al momento de la verdad.
Java Performance: The Definitive Guide, Scott Oaks
Uno de los libros más actualizados al cubrir las versiones más recientes de Java. Te enseña las herramientas, procesos, opciones y muy importante como evadir las fallas más comunes de rendimiento. Muestra cómo usar las herramientas Flight Recorder y Java Mission Control que te dan mucha información sobre tu aplicación. Conocerás los fundamentos del mítico recolector de basura y como realmente funciona.
Systems Performance: Enterprise and the Cloud, Brendan Gregg
Aunque tu aplicación sea la más eficiente y óptima siempre llegará el punto en el que el sistema o servidor en donde reside afecte de forma importante el rendimiento. Es necesario estudiar la relación entre el sistema operativo y la aplicación y como ajustar tu servidor para el trabajo más óptimo. Conocer sobre llamadas de sistema, memoria, CPU, IO, cachete permitirá crear aplicaciones de alto rendimiento.
Java Performance and Scalability: A Quantitative Approach, Henry H. Liu
Este libro se enfoca en la escalabilidad de los programas, el hardware y la máquina virtual de java, como configurar java para obtener el mejor rendimiento y escalabilidad. Introduce metodologías, practicas, herramientas y configuraciones. Tiene ejemplos por lo que podrás tener una comprensión más práctica de los temas.