Acelere a inicialização do programa ao usar a IBM Java Virtual Machine

Meu colega de trabalho Stan encontrou uma ótima dica para acelerar a inicialização do programa ao usar a versão IBM do Java.

Adicione -Xshareclasses:name=cachenameàs suas opções de inicialização JVM, seja idea.vmoptionspara IntelliJ IDEA, eclipse.inipara Eclipse ou qualquer outro. Substitua cachenamepor qualquer programa que você esteja usando para que os caches não colidam.

Ele cria um cache persistente em seu sistema de arquivos para armazenar as classes traduzidas para o código nativo de que a JVM precisa para executar um aplicativo específico, o que torna as inicializações subsequentes muito rápidas.

Existem alguns utilitários para ajudá-lo a gerenciar suas aulas compartilhadas:

// duh
java
-Xshareclasses:listAllCaches
// destroy just one cache
java
-Xshareclasses:destroy,name=myCacheName
// destroy all caches
java
-Xshareclasses:destroy

Você pode ler mais informações e outras opções no IBM JDK Knowledge Center .

Lembre-se, porém, de que essa opção se aplica apenas ao IBM JVM. Se você experimentar no Hotspot (Oracle JVM), OpenJDK ou IcedTea, você vai se divertir muito.

Para garantir que você pode usá-lo, tente executar java -Xshareclasses:helpprimeiro. Se explodir, você não está necessariamente sem sorte! Você pode fazer download do IBM JDK para Linux ou obter o Pacote de Desenvolvimento IBM para Eclipse para Windows, pois a IBM não fornece um JDK separado para essa plataforma. O pessoal da OSX está sem sorte por enquanto.

Além disso, um aviso: se você atualizar um programa usando Xshareclasses, você realmente deve redefinir ou destruir o cache . Caso contrário, o programa pode se comportar de maneira estranha quando algumas classes em cache não forem devidamente invalidadas.