Benefícios do software de 32 bits em ambientes de 64 bits
- Menor consumo de memória, especialmente em aplicações pesadas com ponteiros, 64 bits versus 32 bits pode facilmente dobrar os requisitos de memória.
- Os arquivos de objetos também são menores.
- Compatibilidade com ambientes de 32 bits.
- Os vazamentos de memória têm limite máximo de 2 GB, 3 GB ou 4 GB e não sobrecarregam todo o sistema.
Desvantagens do software de 32 bits em ambientes de 64 bits
- Limite de memória de 2 GB, 3 GB ou 4 GB por processo. (Apenas por processo, em suma, vários processos de 32 bits podem usar a memória do sistema totalmente disponível).
- Não usar registros adicionais e extensões de conjunto de instruções, dependendo do x64. Isso é altamente compilador e específico da CPU.
- Pode exigir versões de 32 bits de todas (na maioria das distribuições do Linux) ou de bibliotecas e ambientes de tempo de execução incomuns (na maioria das versões do Windows). Se uma versão de 32 bits de uma biblioteca compartilhada for carregada exclusivamente para o seu aplicativo, e isso conta para o seu espaço ocupado. Nenhuma diferença se você estiver ligando estaticamente.
Outros aspectos
- Os drivers geralmente não são um problema. Apenas as bibliotecas de espaço do usuário devem diferir entre 32 bits e 64 bits, não a API dos módulos do kernel.
- Cuidado com diferentes larguras padrão para tipos de dados inteiros, testes adicionais são necessários.
- A arquitetura de CPU de 64 bits pode nem mesmo suportar 32 bits.
- Certas técnicas como ASLR e outras, dependendo de um espaço de endereçamento muito maior do que a memória física, não funcionam bem (ou a todos) em um modo de execução de 32 bits.
A menos que compare uma arquitetura de CPU, um sistema operacional e uma biblioteca de bibliotecas muito específica, não poderei entrar em mais detalhes.