Otimizando o JDeveloper

Estou utilizando a versão 11.1.1.5.0 generic no Linux, mas para outras plataformas as configurações são similares. O arquivo principal de configuração (jdev.conf) do JDeveloper está localizados na pasta $MW_HOME/jdeveloper/jdev/bin.

A primeira linha desse arquivo indica onde temos outras configurações: IncludeConfFile ../../ide/bin/ide.conf. O primeiro passo é abrir esse arquivo (ide.conf) e alterar os parametros Xmx e Xms. O parâmetro Xms é referente à quantidade de memória heap inicial a ser utilizada e o Xmx é a quantidade máxima. Minha máquina possui 8GB de RAM. Para o meu JDeveloper, 2GB de máximo e 1GB de mínimo é suficiente. O recomendado é 1/4 do total de memória que a máquina possua, mas você deve levar em consideração que poderá subir outros servidores e outras aplicações que irão consumir memória. Então aumentar muito esse valor, pode fazer com que a sua máquina utilize swap e, ao invés de deixar o JDeveloper mais rápido, sua máquina irá acabar ficando mais lenta. Então eu alterei minha máquina para os seguintes valores: "AddVMOption  -Xmx2048M" e "AddVMOption  -Xms1024M".

Edite o arquivo jdev.conf e modifique a linha "AddVMOption  -XX:MaxPermSize=256M" para 384M. Adicione a seguinte linha no final do arquivo: "IncludeConfFile tunning.conf". Crie um arquivo tunning.conf no diretório: $MW_HOME/jdeveloper/jdev/bin com o seguinte conteúdo:

AddVMOption  -XX:+UseConcMarkSweepGC
# Utilizado em máquinas que tem suporte
#AddVMOption  -XX:+UseLargePages
AddVMOption  -XX:+UseFastAccessorMethods
AddVMOption  -XX:+UseParNewGC
AddVMOption  -XX:+UseTLAB
AddVMOption  -XX:+AggressiveOpts
AddVMOption  -XX:+UseStringCache
AddVMOption  -XX:+UseCompressedStrings
AddVMOption  -XX:+OptimizeStringConcat

Você pode também descomentar a linha do "AddVMOption  -XX:+UseLargePages" para verificar se o seu sistema tem suporte a esse tipo de otimização. Caso você obtenhar o seguinte erro: "Java HotSpot(TM) 64-Bit Server VM warning: Failed to reserve shared memory (errno = 22).", significa que não há suporte ao UseLargePages. É só remover ou comentar novamente a linha.

Para visualizar as informações de tunning e o que cada comando desse faz, eu sugiro acessar o seguinte documento: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html.

No Ubuntu há uma outra alteração importante. No arquivo jdev.conf altere o parâmetro SetJavaHome. No meu caso está da seguinte forma: "SetJavaHome /usr/lib/jvm/java-6-sun-1.6.0.26". Utilize o link simbólico, pois ao atualizar o Java, você poderá ter problemas ao iniciar o JDeveloper. O resultado deve ser algo do tipo: "SetJavaHome /usr/lib/jvm/java-6-sun".

Pronto! JDeveloper rápido, na medida do possível 🙂

Atualização dia 21/06/2012: A opção UseCompressedStrings não existe mais na versão 7 do Java.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6