Compilando java em Windows e rodando em Unix. Tem diferenca?

Ola a todos.

Uma duvida.
Tenho um programinha java que faz a leitura de um arquivo grandão (+/- 700 MB) e transforma em varios pequenos

Acontece que ele foi compilado na versão 1.4 no Windows, porém, esta sendo executado em um servidor UNIX com 4 processadores.

A grande questão aqui é que no Windows (desktop!) o processamento é mais rápido do que no UNIX!! E a monitoracao me disse que é usado somente 1 processador. Curioso né?

Será que preciso compilar este programa num JDK no Unix?!?

Obrigado pela ajuda!

Não vai fazer diferença nenhuma.

Se seu programa não usa threads, vai usar apenas um processador*.

  • Estou simplificando um pouco, porque o Garbage Collector e o Just-In-Time Compiler rodam em threads separadas, e podem vir a usar os outros processadores, assim como o sistema operacional, que vai efetuar a leitura e gravação.

Babol, alguns fatores deve ser analisados.

  • O computador pode ter 300 processadores, se vc não criar threads, o processo só irá consumir somente um.
  • O bytecode gerado no Windows não deverá ter diferença do gerado no Unix.
  • Se sua aplicação utilizar recursos visuais, isto pode afetar o desempenho. Servidores normalmente são
    projetados para dispensar mais recursos em processos que rodam em background, como banco
    de dados e outras aplicações. Já vi Word rodar mais rápido num XP que em máquina mais potente utilizando
    Windows Server, mas quando o assunto era banco de dados, a diferença era gritante. Se sua aplicação utilizar
    recurso visual, tente fazer um teste utilizando somente classes não visuais do Java.

Inté.

Servidores costumam dar prioridade para processos em segundo plano

se a sua aplicação estiver rodando em primeiro plano, ela certamente será mais devagar