Aplicativos de 32 bits em um sistema operacional de 64 bits

4

Além dos limites de tamanho de memória de 4 GB, qual é a penalidade para executar aplicativos de 32 bits em um sistema operacional em execução de 64 bits? Por exemplo. um aplicativo de 32 bits requer que seu espaço de endereçamento seja alocado dentro dos primeiros 4 GB ou o SO e o processador abstraem isso do aplicativo?

Tem havido muita pressão por aplicativos de 64 bits na comunidade de software, onde nem sempre prevejo os aplicativos que requerem uma quantidade tão grande de memória (por exemplo, o Firefox), por isso estou apenas curioso sobre os benefícios e armadilhas de executar aplicativos de 32 bits em uma plataforma de 64 bits.

    
por senfo 05.09.2009 / 14:58

4 respostas

4

Faça um google para "russinovich pushing limits" e você encontrará uma série de artigos escritos pelo autor do conjunto de ferramentas sysinternals para Windows em vários aspectos do uso da memória pelo Windows.

Não tenho certeza se existem muitas desvantagens significativas na execução de aplicativos de 32 bits em um sistema operacional de 64 bits. Os maiores bônus para rodar 64 em 64 são endereçamento de memória e ... esse é um grande problema.

Até mesmo a versão mais recente do OS X tem como padrão 32 bits (você acertou 6 e 4 na inicialização para iniciar o kernel de 64 bits, mas não conseguirá que todas as extensões do kernel funcionem corretamente, como eu recordei). OS X tem sido um sistema operacional "misto" por um bom tempo.

As únicas desvantagens que eu ouvi que afetam as pessoas com sistemas operacionais de 64 bits envolvem drivers (alguns drivers de 32 bits não funcionam corretamente) e máquinas mais antigas não gostam de um sistema operacional de 64 bits se o processador não suportar. muitas máquinas antigas lá fora.

    
por 05.09.2009 / 15:26
3

Cabe ao desenvolvedor garantir que ele funcione corretamente, já que algumas coisas que precisam de ganchos no sistema operacional de 64 bits precisam ser contabilizadas. No entanto, muitos aplicativos funcionam muito bem em um sistema operacional de 64 bits.

Como princípio geral, se a memória do seu servidor for de 4 GB ou superior, o caminho a percorrer é de 64 bits. Até mesmo o IIS é recomendado pela Microsoft para executar o sistema operacional de 64 bits com pools de aplicativos de 32 bits (ou o IIS como um todo no modo de 32 bits no WS03).

Aplicativos de 64 bits têm mais sobrecarga de memória, o que é uma das principais coisas que impedem uma migração completa para 64 bits. Além disso, alguns aplicativos não funcionam tão bem em 64 bits. Por exemplo, o ASP.NET é melhor em pools de aplicativos de 32 bits em um servidor da Web.

No que diz respeito a qualquer limite na memória que possa usar, isso não é uma preocupação. O sistema operacional de 64 bits quebra esses limites e o benefício dos aplicativos de 32 bits.

    
por 05.09.2009 / 16:08
1

Se o seu aplicativo nunca usar mais de 4 GB de memória, não há vantagem real em ter uma versão de 64 bits. Dito isso, a maioria das pessoas com O / S de 64 bits quer uma versão de 64 bits de tudo ... mesmo que não seja necessário.

    
por 05.09.2009 / 16:52
1

O SO abstrai de onde a memória vem, não precisa ser fisicamente os primeiros 4Gbs.

Uma outra penalidade de executar o aplicativo de 32 bits em um sistema operacional de 64 bits é que esse aplicativo precisa carregar um monte de DLLs de 32 bits e aumentar o uso da memória em sua máquina.

dlls - pelo menos a seção de código - são compartilhadas entre todos os aplicativos que usam essa dll na maioria dos casos. Seus aplicativos de 64 bits em execução, bem como os próprios componentes do Windows, carregarão e compartilharão os 64 dlls padrão. Quando você inicia o primeiro aplicativo de 32 bits, ele precisa carregar a versão de 32 bits dessas DLLs.

    
por 07.09.2009 / 00:55