Observação: essas respostas se aplicam a CPUs de PC padrão baseadas em x86 (Intel e AMD) e Windows (normalmente configuradas para usuários finais). Outros chips de 32 ou 64 bits, outros sistemas operacionais e outras configurações do sistema operacional podem ter diferentes compensações.
De uma perspectiva técnica, um sistema operacional de 64 bits oferece:
-
Permite que processos individuais abordem mais de 4 GB de RAM cada (na prática, a maioria dos sistemas operacionais de 32 bits, mas não todos, também limitam a RAM total do sistema utilizável a menos de 4 GB, não apenas o máximo por aplicativo ).
-
Todos os ponteiros levam 8 bytes em vez de 4 bytes. O efeito sobre o uso de RAM é mínimo (porque você provavelmente não terá um aplicativo cheio de gigabytes de ponteiros), mas no pior dos casos teóricos, isso pode fazer com que o cache da CPU consiga armazenar mais de 1/2 ponteiros (tornando seja efetivamente 1/2 do tamanho). Para a maioria das aplicações, isso não é um grande problema.
-
Existem muitos registradores de CPU de propósito geral no modo de 64 bits. Registradores são a memória mais rápida em todo o seu sistema. Há apenas 8 no modo de 32 bits e 16 registradores de propósito geral no modo de 64 bits. Em aplicativos de computação científica que eu escrevi, eu vi um aumento de desempenho de até 30% recompilando no modo de 64 bits (meu aplicativo realmente poderia usar os registros extras).
-
A maioria dos sistemas operacionais de 32 bits realmente permite que aplicativos individuais usem 2 GB de RAM, mesmo que você tenha 4 GB instalados. Isso ocorre porque os outros 2 GB de espaço de endereço são reservados para o compartilhamento de dados entre aplicativos, com o sistema operacional e para a comunicação com os drivers. O Windows e o Linux permitirão que você ajuste essa troca para 3 GB para aplicativos e 1 GB para o compartilhamento, mas isso pode causar problemas para alguns aplicativos que não esperam a alteração. Eu também estou supondo que pode prejudicar uma placa gráfica que tem 1 GB de RAM (mas não tenho certeza). Um sistema operacional de 64 bits pode fornecer aplicativos individuais de 32 bits mais próximos dos 4 GB completos para uso.
Da perspectiva de um usuário:
-
A velocidade do aplicativo geralmente é mais rápida para um aplicativo de 64 bits em um sistema operacional de 64 bits em comparação com a versão de 32 bits do aplicativo em um sistema operacional de 32 bits, mas a maioria dos usuários não vê essa velocidade acima. A maioria dos aplicativos para usuários normais realmente não aproveitam os registros extras ou os benefícios são compensados por ponteiros maiores que preenchem o cache.
-
Se você tiver algum aplicativo de memória (como editores de fotos, processamento de vídeo, computação científica, etc.), se tiver (ou puder comprar) mais de 3 GB de RAM e conseguir 64- versão de bit do aplicativo, a escolha é fácil: use o sistema operacional de 64 bits.
-
Alguns hardwares não possuem drivers de 64 bits. Verifique sua placa-mãe, todos os cartões plug-in e todos os dispositivos USB antes de fazer a troca. Observe que, nos primeiros dias do Windows Vista, havia muitos problemas com drivers. Hoje em dia as coisas são geralmente melhores.
-
Se você executar tantos aplicativos ao mesmo tempo que você está ficando sem RAM (geralmente você pode dizer isso porque seu computador começa a ficar muito lento e você ouve o processamento da unidade de disco rígido), então você quer um sistema operacional de 64 bits (e RAM suficiente).
-
Você pode executar aplicativos de 32 bits (mas não drivers) no Windows de 64 bits sem problemas. A pior lentidão que medi para um aplicativo de 32 bits no Windows de 64 bits é cerca de 5% (o que significa que, se levar 60 segundos para fazer algo no Windows de 32 bits, ele levaria no máximo 60 * 1,05 = 65 segundos o mesmo aplicativo de 32 bits no Windows de 64 bits).
O que 32 bits versus 64 bits não não implica:
Em sistemas x86, 32 bits versus 64 bits diretamente refere-se ao tamanho dos ponteiros. Isso é tudo.
-
Não se refere ao tamanho do tipo C
int
. Isso é decidido pela implementação específica do compilador, e a maioria dos compiladores populares escolheint
de 32 bits em sistemas de 64 bits. -
Não diretamente refere-se ao tamanho dos registradores normais sem ponteiro. No entanto, o uso de registros aritméticos de 64 bits requer que o aplicativo e o sistema operacional também sejam executados no modo de ponteiro de 64 bits.
-
Não diretamente refere-se ao tamanho do barramento de endereço físico. Por exemplo, um sistema com linhas de cache de 64 bits e um máximo de 512GiB de memória precisa apenas de 33 bits em seu barramento de endereços (por exemplo,
log2(512*1024**3) - log2(64) = 33
). -
Não se refere ao tamanho do barramento de dados físico: está mais relacionado aos custos de fabricação (número de pinos no soquete da CPU) e aos tamanhos das linhas de cache.