Java 10 - Compartilhamento de dados de classe
JEP 310 - Compartilhamento de dados de classe de aplicativo
Quando a JVM é iniciada, ela carrega as classes na memória como uma etapa preliminar. Caso existam vários jars com várias classes, um lag evidente aparece para a primeira solicitação. Na arquitetura sem servidor, esse atraso pode atrasar o tempo de inicialização, que é uma operação crítica em tal arquitetura. O conceito de compartilhamento de dados de classe de aplicativo ajuda a reduzir o tempo de inicialização de um aplicativo. Java tem um recurso CDS (Class-Data Sharing) existente. Com o compartilhamento de dados de classe de aplicativo, o Java 10 permite colocar classes de aplicativo em um arquivo compartilhado. Isso reduz a inicialização e a área de cobertura do aplicativo compartilhando metadados de classe comuns em vários processos Java.
Processo
O compartilhamento de dados da classe de aplicativo é um processo de 3 etapas.
-
Crie uma lista de classes para arquivar − Crie uma lista welcome.lst de uma classe Greeting.java que está em welcome.jar usando o Java Launcher.
$java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
-
Criar arquivo AppCDS − Arquivar uma lista de classes a serem usadas para compartilhamento de dados de classe de aplicativo.
$java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
-
Usar o arquivo AppCDS − Use o arquivo AppCDS ao usar o java launcher.
$java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting
Java