Java 10: Mejorar Rendimiento con Compartición de Datos de Clase de Aplicación (CDS)
JEP 310 - Compartición de Datos de Clase de Aplicación
Cuando la JVM inicia, carga las clases en memoria como paso preliminar. En caso de que haya múltiples JARs con múltiples clases, aparece un retraso evidente para la primera solicitud. En arquitectura serverless, tal retraso puede demorar el tiempo de arranque, que es una operación crítica en dicha arquitectura. El concepto de compartición de datos de clase de aplicación ayuda a reducir el tiempo de inicio de una aplicación. Java tiene una característica existente CDS (Class-Data Sharing). Con la compartición de datos de clase de aplicación, Java 10 permite poner clases de aplicación en un archivo compartido. Esto reduce el inicio y la huella de la aplicación al compartir metadatos de clase comunes entre múltiples procesos Java.
Proceso
La compartición de datos de clase de aplicación es un proceso de 3 pasos.
Crear una lista de Clases para archivar - Crear una lista
welcome.lstde una claseGreeting.javaenwelcome.jarusando Java Launcher.
$java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
Crear archivo AppCDS - Archivar una lista de clases para usar en la compartición de datos de clase de aplicación.
$java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
Usar archivo AppCDS - Usar archivo AppCDS al usar java launcher.
$java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting
Java
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Aserciones en Java: Guía práctica para detectar bugs y asegurar fiabilidad del código
- Entendiendo Java Vector: Uso, Características y Comparación con ArrayList
- Java 10: Mejorar Rendimiento con Compartición de Datos de Clase de Aplicación (CDS)