JVM Power Boost!

28 09 2007

Vou agora propôr uma brincadeira com quem ler este post.

Quem consegue abrir e fechar mais prompts de comando do windows, usando java? Use o seguinte código:

public static void main (){
    ArrayList<Process> cmdProcess = new ArrayList<Process>();
    // Abrindo os processos:
    for(int i=0; i < 100000; i++){
        cmdProcess.add(Runtime.getRuntime().exec("cmd.exe"));
        System.out.println("Quantidade de Processos abertos: "+ i );
    }
    // Fechando os processos:
    for(Process p: cmdProcess){
        p.destroy();
    }
}

Eu consegui na minha máquina do trabalho, 3964 processos abertos até o computador estilar e parar tudo. Quanto será que a sua máquina consegue?

Agora, é possível obter muito mais. Quando for iniciar o programa, ao invés de usar a JVM com as opções padrão, use as opções: -XX:+AggressiveOpts -XX:+AggressiveHeap

Aqui, isso conseguiu rodar o programa sem problemas, o que significa que eu conseguiria abrir mais de 10000 processos, que já é bem mais próximo do limite do Windows XP (~22000)

então, mãos à obra!!


Ações

Informações

Deixe um comentário