Uso do Java 32-bits x 64-bits

31 views
Skip to first unread message

Edilmar Alves

unread,
Oct 29, 2009, 11:25:47 AM10/29/09
to jug...@googlegroups.com
Bom dia,

Estou comprando uma maquina para desenvolvimento que é 64-bits.
Contudo, tenho aplicacoes rodando em desktop/Swing e web/Tomcat de
empresas cujos PCs nao sao 64-bits.

No caso das aplicacoes Swing, tenho as seguintes situacoes:
- servidor e cliente 32-bits
- servidor 64-bits e cliente 32-bits... para quem usa via Terminal
Server roda JRE 64 e os clientes que acessam a pasta compartilhada do
servidor para rodar o sistema localmente na estacao tem JRE 32
Neste caso, eu terei que continuar usando JDK 32 na minha maquina para
gerar as aplicacoes pelo NetBeans, certo?
Estou pensando em instalar os 2 JDKs (64 e 32) para poder gerar 2
aplicacoes, conforme o alvo...

--
sds,
Edilmar Alves
Analista de Sistemas
InterSite Informática Ltda
www.intersite.com.br
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Use Linux/Java!!!
Use um navegador de verdade... Mozilla/Firefox!
e um cliente de e-mail decente... Mozilla/Thunderbird!
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

João Bosco Monteiro

unread,
Oct 29, 2009, 12:35:33 PM10/29/09
to jug...@googlegroups.com
Olá Edilmar,

Esses dias eu me fiz a mesma pergunta.

Não entendi essa parte "os clientes que acessam a pasta compartilhada do

servidor para rodar o sistema localmente na estacao tem JRE 32"

Os clientes usam bibliotecas compartilhadas do servidor? Bom, de qualquer forma, vc não precisa de uma jdk 32 para gerar as aplicações no Netbeans não. No final das contas, o código gerado é bytecode que nada tem a ver com a arquitetura da máquina. A JRE, seja 64 ou 32 bits é que se encarregará de traduzir os bytecodes para instruções de 32/64 bits de acordo com a arquitetura.

O Netbeans 64-bts funciona legal? O Eclipse 64 até pouco tempo atrás era muito ruim o que me obrigava a utilizar o Eclipse 32 com JDK32, num SO 64 bits.



2009/10/29 Edilmar Alves <edilma...@intersite.com.br>

Márcio Raphael

unread,
Oct 29, 2009, 12:38:41 PM10/29/09
to jug...@googlegroups.com
Edilmar,
 
eu até hoje não vi nada de diferente de uma versão de processador pra outra.. a máquina virtual do Java é quem faz o trabalho, tornando o sistema multiplataforma! Acredito que o máximo a ser feito é um tratamento especial para tratar diretórios de diferentes sistemas operacionais, se você precisar.
 
Abraços!

2009/10/29 João Bosco Monteiro <joaobm...@gmail.com>


www.sistemaseweb.com.br
____________________________________
Mostre seu trabalho, seu perfil, suas idéias na Internet!

Seja visível de forma profissional e interativa onde todos veem! Seja atuante na maior rede de comunicação do mundo.

Edilmar Alves

unread,
Oct 29, 2009, 1:57:07 PM10/29/09
to jug...@googlegroups.com
O meu sistema desktop usa uma pasta compartilhada no servidor. Por ex., se for um servidor Windows, uma pasta F:.
Entao, na estacao o cara da 2 cliques no arquivo f:\pastacompart\meusistema.bat para executar a aplicacao, usando o
JRE instalado localmente. Sendo assim, a aplicacao nao roda no servidor 64 e sim na estacao 32.

Mas como voces disseram, que o bytecode é generico, nao tem problema algum entao... achei que haveria algum
bytecode otimizado para 64 bits.

Márcio Raphael escreveu:

Humberto Pereira

unread,
Oct 29, 2009, 6:43:51 PM10/29/09
to jug...@googlegroups.com
"Compile once, Run everywhere". Esse eh o lema do java desde que nasceu.

2009/10/29 Edilmar Alves <edilma...@intersite.com.br>:

Edilmar Alves

unread,
Oct 30, 2009, 10:44:28 AM10/30/09
to jug...@googlegroups.com
Mas voce concorda comigo que, se o bytecode para 64 fosse mais otimizado que para 32,
seria uma grande "sacada" da SUN? Neste caso seria algo como...
"Compile once for 32, run anywhere,
but compile once for 64, run 2 times faster for 64-bit servers!!!".

Humberto Pereira escreveu:

Márcio Raphael

unread,
Oct 30, 2009, 10:19:26 AM10/30/09
to jug...@googlegroups.com
Olá Edilmar,

a grande sacada da SUN foi desenvolver uma linguagem que tornasse os sistemas, nela desenvolvidos, multiplataformas! Seria contraditório se existisse essa diferença que vc está citando. Acredito que cabe ao sistema operacional efetuar essa otimização e gerenciar a memória e o processamento. E a nós desenvolver sistemas sem se preocupar com isso!

Se deseja programar usando um SO 64 Bits, aconselho usar o Linux 64 Bits, pq o windows, independente da versão, é um fracasso pra 64 bits.

Abraços

2009/10/30 Edilmar Alves <edilma...@intersite.com.br>



--
____________________________________
Atenciosamente,
Prof. Márcio Rigues

(67) 9298-9778

Rodrigo G. M. Catto

unread,
Oct 30, 2009, 10:21:09 AM10/30/09
to jug...@googlegroups.com
Bom dia,

    Edilmar, essa sua frase esta correta, mas está errada. O que o nosso colega Humberto está falando faz todo o sentido.

    A transcrição do código fonte para o bytecode continua a mesma... O que muda é quem "interpreta" (a JVM) , que é implementada em 32bits ou 64bits e dependente do SO.

    Eu acho que a Sun ao implementar ao JVM para 64bits utilizou de artifícios de arquitetura de hardware, para que não precisasse mexer no processo de transcrição e assim continuar com a ideia de que roda em qualquer lugar. Mas nenhuma sombra de dúvida de que na JVM 64bits deve ter uma performance melhor do que na JVM 32bits, porem não acredito que seja 2 vezes mais rápido.

[]'s
Rodrigo G. M. Catto

2009/10/30 Edilmar Alves <edilma...@intersite.com.br>



--
Frase aleatória do e-mail:
Ogden Nash  - "The trouble with a kitten is that when it grows up, it's always a cat."

Edilmar Alves

unread,
Oct 30, 2009, 11:44:46 AM10/30/09
to jug...@googlegroups.com
Entendo. Realmente ha uma otimizacao pela VM de 64 bits.
Pois tenho esta situacao em um servidor onde o sistema Swing ficou mais rapido, sem eu mexer nada no sistema,
sendo que o servidor de 32 bits era muito bom tambem. No caso desta empresa, ambos os servidores de 32 e 64
sao Windows Server. Mas eu desenvolvo usando Linux Fedora e funciona 100% no "alvo" Windows, sem alteracao.

Rodrigo G. M. Catto escreveu:

Humberto Pereira

unread,
Oct 30, 2009, 11:40:43 AM10/30/09
to jug...@googlegroups.com
O bytecode nao eh otimizado, mas a JVM gera codigo otimizado p/ cada
arquitetura a partir do bytecode. Eh o famoso JIT (compilador Just In
Time - http://pt.wikipedia.org/wiki/JIT).

Entao, se a sua arquitetura permite ter um ganho de desempenho com
otimizacoes especificas p/ ela, provavelmente sua JVM se aproveita
disso sim, mas isso eh feito com o codigo rodando na arquitetura alvo,
e nao durante a compilacao do codigo-fonte.

[]s
Begnini

2009/10/30 Edilmar Alves <edilma...@intersite.com.br>:

Thiago Moretto

unread,
Oct 30, 2009, 3:22:15 PM10/30/09
to jug...@googlegroups.com
A JVM é compilada e otimizada para 64-bits, não quer dizer que ela tem
algoritmos

2009/10/30 Humberto Pereira <beg...@gmail.com>:

Thiago Moretto

unread,
Oct 30, 2009, 3:29:54 PM10/30/09
to jug...@googlegroups.com
Terminando o e-mail...

A JVM é compilada e otimizada para 64-bits, não quer dizer que ela
possui algoritmos que otimizam código para arquiteturas 64-bits, teria
que verificar isso. Não sei responder.

Não é por que o tamanho da palavra é o dobro que velocidade também
será. O compilador tem que ser poderoso o suficiente conseguir
aproveitar melhor esses 64-bits e escalonar o máximo de instruções a
cada "fetch" do processador, aumentando o paralelismo. O JIT consegue
fazer isso muito bem quando sua aplicação tem pouca dependência de
dados.

Poucas aplicações realmente consegue tirar um bom proveito do
"64-bits", ainda. Geralmente aplicações matemáticas e cientificas que
tiram um bom proveito disso. Mas isso esta mudando...

2009/10/30 Thiago Moretto <thiago....@gmail.com>:

Humberto Pereira

unread,
Oct 30, 2009, 4:34:37 PM10/30/09
to jug...@googlegroups.com
A grande vantagem de 64 bits hj eh acesso a memoria. Eu desenvolvo
aplicacoes que chegam a usar mais de 10 GB de RAM e eh impossivel
roda-las em maquinas 32 bits.

2009/10/30 Thiago Moretto <thiago....@gmail.com>:
Reply all
Reply to author
Forward
0 new messages