Resolvi fazer uma mudança radical e testar: 64bits ou 32bits, qual é o melhor? Há melhora de performance, vantagens ou justificativas para ser!? Sempre usei a arquitetura 32bits, salvo em duas estações Sparc que haviam lá no CPD, mas que não conta para o caso, já que operavam como servidores de dados e não como desktop.
Meu computador atual possui um processador AMD Athlon 3000+ 64 com 2GB de RAM e sempre usei SO de 32 bits, Debian, Windows XP, Ubuntu,…. Já até fiz alguns testes com o Ubuntu AMD64 alguns meses atrás – acho que na versão 6.10 – mas foi realmente só um teste para saber se a máquina ia funcionar mesmo, mas nada muito técnico ou sério, desta vez resolvi testar de verdade e vamos ver por quanto tempo fica assim.
O que fiz não tem nada de muito conceitual e baseio-me puramente no meu uso diário, então não espere ver gráficos, tabelas ou programas de benchmark. De primeira impressão deixo a saída do /proc/cpuinfo que me deixou muito desapontado.
Saída do cat /proc/cpuinfo em 32bits
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 44
model name : AMD Athlon(tm) 64 Processor 3000+
stepping : 2
cpu MHz : 1999.479
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm ts fid vid ttp tm stc
bogomips : 4001.03
clflush size : 64
Saída do cat /proc/cpuinfo em 64bits:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 44
model name : AMD Athlon(tm) 64 Processor 3000+
stepping : 2
cpu MHz : 1999.433
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up rep_good pni lahf_lm
bogomips : 4000.93
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
Perceba que as diferenças são insignificantes e desprezíveis. A velocidade e o número de bogomips são ligeiramente menores com o Kernel em 64bits.
Problemas – Java
Sun Java 64bits[4] até existe, mas não tem plugin para firefox/mozilla/netscape o resultado é que você terá que “engolir o chá que além de gelado desce amargo” para algumas páginas – O IcedTea[2]. Embora o projeto de criar uma JVM opensource baseado no OpenJDK[3], mas usando apenas código realmente free seja plausível e promissora, o plugin para o firefox (gcjwebplugin) ainda não consegue fazer o maldito teclado virtual do meu HomeBanking funcionar. Obs: No site de download isso é informado e inclusive sugere usar a versão de 32bits do plugin, mas não diz como.
Problemas – Gear
O gear[1], biblioteca da Google que permite usar algumas webapps como se fossem aplicações locais só funciona para 32 bits. Então quem usa o WordPress em seus blogs, por exemplo, não poderão usufruir deste recurso.
Multimídia
Não sei afirmar se com outras pessoas este item será problemático, mas como eu configurei o repositório do Mediubuntu[5], e instalei o Mplayer e outros itens de lá, qualquer “porcaria” que jogo na máquina ele reproduz sem problemas.
Outras aplicações
O demais que uso no dia-a-dia funciona na boa: Skype, Prism, VirtualBox, aMule, OpenOffice.org, Wine etc.
Links
[1] http://gears.google.com/
[2] http://www.iced-tea.org/wiki/Main_Page
[3] http://openjdk.java.net/
[4] http://www.java.com/pt_BR/download/linux_manual.jsp?locale=pt_BR&host=www.java.com:80
[5] http://www.medibuntu.org/
O maior erro dos usuários que migram para a arquitetura de 64 bits está justamente no fato de achar que melhora o desempenho. Na prática, os 64 bits só se tornam viáveis apenas em aplicações que exijam o uso de bastante memória (acima de 4 GB), além de fornecer uma insignificante melhoria devido ao uso de registradores extendidos para 64 bits. E só! Assim que necessitarmos rodar sistemas que requeiram mais de 4 GB de RAM é que valerá à pena migrar… &;-D
O Ubuntu 32bits é compilado para i486, logo não tem acesso a instruções mmx sse sse2 etc, estas intruções fazem um diferença gritante em aplicações multimidia com reprodução de video, exmplo:
rede um mplayer copilado em 386 486 586 e rode um e 686
o 686 da um banho de performaçe,
O Ubuntu 64bits já e tem acesso a estas intruções como em um compilação 686 logo em uma distro que compila 32bits em 386 486 586 mudar para 64bits faz diferença em aplicativos como mplayer xine etc
@XES ,
Dei uma olhada no config do meu kernel e de fato ele não foi compilado com a extensão MMX. Veja abaixo:
wbraga@welingtondesktop:~$ grep -i mmx /boot/config-2.6.31-21-generic
# CONFIG_M586MMX is not set
Entretanto eu costumo assistir vídeos no desktop com certa frequência e ainda assim não tinha notado queda de performance no sistema por conta disso (talvez porque esta frequência não fosse tão grande).
Em uma busca recente no site da AMD – por conta deste seu comentário – eu encontrei um artigo entitulado “Myths and facts about 64-bit Linux” (Mitos e verdades sobre o Linux 64bits)[1] , e neste artigo os autores resumem um teste realizado em 3 condições diferentes com uma mesma CPU 64bits (sistema totalmente 64bits; sistema totalmente 32bits e uma salada em os dois modos).
O teste é antigo, mais até do que este mesmo post. A conclusão que chegaram é que o sistema rodando totalmente em 64bits apresenta uma sensível melhora de performance (cerca de 10%). Com aplicações multimídia tais como Povray, memcoder e Oggenc eles notaram vantagens que variaram de 5% à 25%, o que é uma melhoria significativa.
Claro que são testes do fabricante e que querem “vender o seu peixe”. Na prática mesmo, com as aplicações de uso diário não deve ser bem assim, mas não custa nada fazermos os nossos testes e chegarmos as nossas próprias conclusões. Como na época eu não dava tanta atenção à aplicações multimídia pode ser ai que eu tenha “pecado” nos meus testes.
Tão logo o novo Ubuntu seja lançado (menos de duas semanas) eu vou baixar ambas as versões e instalá-las em partições separadas para realizar uma nova comparação e conforme o resultado, pode valer a pena migrar para os 64bits, definitivamente.
É esperar para ver.
[1] Przywara, A; Herrmann, A; Oruba, P. Myths and facts about 64-bit Linux. <http://blogs.amd.com/developer/2008/03/06/myths-and-facts-about-64-bit-linux/>. Acessado em 10-03-2010.