Pessoal tenho um sistema em java gerado pelo Genexus onde é criado um .jar, até aí normal, quando eu inicio o sistema ele consome 20Mb de memória, ótimo, porém ao entrar e sair das telas esta memória vai aumentando (mesmo entrando e saindo da mesma tela) em locais de muita movimentação o consumo de memória está sendo muito alto, já tentei algo do tipo:
java -Xmx40 %1 umnu0000
mas sem sucesso, alguém tem alguma sugestão?
Obs.: Todos os clientes rodam via citrix no server, logo é comprometedor alocar muita memória para os clintes.
Acho que você pode começar tentando otimizar o seu código para que ele consuma menos memória.
Uma das desvantagens do Java é exatamente essa, o consumo de memória, mas, graças ao gerenciamento dinâmico de memória, dificilmente ocorrem vazamentos de memória.
Uma coisa chata do Java 5.0 é que ela tem um recurso de compartilhar entre diversas instâncias de vários programas Java uma parte da memória consumida (procure um arquivo classes.jsa no JRE), mas acho (não tenho certeza; procure por "Class Data Sharing: http://java.sun.com/j2se/1.5.0/docs/guide/vm/class-data-sharing.html e leia o artigo direito) que isso é por usuário, ou seja, se você vai rodar um sistema com diversos clientes em “thin clients” você talvez não vá obter o benefício do compartilhamento da memória.