Você precisa de mais memória ram para executar programas de 32 bits no windows de 64 bits?

A maioria dos de hoje computadores com uma versão de 64 bits do Windows, e muitas vezes uma quantidade mínima de RAM. Isto põe em causa quão bem esses sistemas executam. Isto é especialmente verdadeiro quando os usuários desejam ter o seu software de 32 bits legado sobre estes novos computadores.

O que levanta uma questão interessante. Você precisar de mais ou menos memória RAM para executar uma aplicação de 32 bits em um versão do Windows de 64 bits? Esta semana, Bruce Epper descobre.Como RAM quanto você realmente precisa?Como RAM quanto você realmente precisa?RAM é como a memória de curto prazo. Quanto mais você multitask, mais você precisa. Saiba quanto o seu computador tem, como tirar o máximo proveito dela, ou como obter mais.consulte Mais informação

Um leitor pergunta:

É verdade que a execução de aplicativos de 32 bits em um 64-bit consome sistema de janelas 1,5 vezes mais memória comparado a executar o aplicativo de 32 bits em um sistema operacional Windows de 32 bits?

Responder de Bruce:

Temos discutido anteriormente vantagens e desvantagens de manter tudo de 64 bits através da placa e alguns dos efeitos de “mistura e combinação”. Hoje nós estamos indo para examinar como aplicativos de 32 bits executados em versões de 64 bits do Windows.Como de Desempenho do Windows é afetado por Hardware & ProgramasComo de Desempenho do Windows é afetado por Hardware & ProgramasEm teoria, software de 32 bits poderia superar sua contraparte de 64 bits, dependendo da configuração do hardware. Parece complicado? Estamos aqui para fazer sentido e ajudá-lo a obter o melhor desempenho do seu sistema.consulte Mais informação

Um sistema operacional de 64 bits do Windows não pode executar um programa do Windows de 32 bits sem alguma ajuda adicional. Eles são muito diferentes: a partir de ponteiros e tipos de dados, de como as chamadas do sistema (como os programas utilizam os recursos do sistema operacional subjacente). Você precisa de alguma maneira de torná-los compatíveis.

entendimento WoW64

O Windows usa o subsistema WoW64 (Windows32 em Windows64) para compensar as diferenças. Ele efetivamente funciona como um 32-bit Windows mini-emulador em sistemas x64 e um emulador de pleno direito em sistemas Itanium (IA64).

sistemas IA64 requerem um emulador completo devido às diferenças nas instruções do processador e tamanhos de página de memória (4K em x86 e x64, 8K no IA64). Uma vez que os processadores x64 têm todas as instruções dos processadores x86 e usa o mesmo tamanho de página de memória, ele não tem a necessidade de um emulador completo.

Em ambos os casos, WoW64 fornece uma interface entre o kernel do Windows de 64 bits e a versão do ntdll.dll 32-bit (este contém uma lista das funções do núcleo do kernel do Windows), interceptando chamadas do kernel e alterá-los para que eles possam ser processados ​​por as funções de 64 bits nativas fornecidas pelo kernel do Windows.

Existem 3 arquivos DLL usados ​​em sistemas x64 / IA64 para conseguir isso: wow64cpu.dll, Wow64win.dll e wow64.dll. Suas funções são para abstrair as características do processador e fornecer thunks (nós vamos chegar a eles mais tarde) Em win32k.sys que fornece a funcionalidade “janela” e ntoskrnl.exe que contém o executivo, kernel, gerenciador de memória, scheduler processo (para não ser confundido com o Agendador de Tarefas acessível a partir do Painel de Controle), e outros elementos centrais do sistema operacional.

carregados-DLLs

A conversão é uma sub-rotina (pensar neles como uma série de instruções que executam uma única tarefa) que permite que um programa para executar uma sub-rotina ou função comum no sistema.

Neste caso, ele extrai os argumentos da pilha de chamadas do programa de 32 bits, converte-os com os seus homólogos de 64 bits, e faz a chamada de sistema de 64 bits. Após o retorno da chamada, ele irá converter os resultados de 64 bits de volta para 32-bits e empurrá-los de volta para pilha de chamadas do programa para o chamador de usar.

Todos thunking é feito no modo de usuário (que tem permissões limitadas) por duas razões. Primeiro, ele minimiza os efeitos de erros no código que poderia resultar em uma falha de segurança, corrupção de dados, ou uma falha do sistema se estiver rodando em modo kernel.

Em segundo lugar, ele reduz o impacto no desempenho que teria se em execução no modo kernel (o modo usado pelas partes essenciais do sistema operacional) devido à sobrecarga envolvida ao alternar entre o modo de usuário e modo kernel e para trás.

Voltando para sistemas Itanium, há algumas outras diferenças importantes a serem observados. sistemas IA64 usar dois arquivos adicionais. IA32exec.bin é o emulador de software x86 e Wowia32x.dll fornece a interface entre WoW64 eo emulador software.

Video: Windows 7 32bits 4gb de memoria ram ou mais

Um processo de 32 bits vai carregar esses arquivos, bem como a versão do ntdll.dll 64-bit. Estes são os únicos binários de 64 bits que podem ser carregados em um processo de 32 bits antes do Windows 7. Windows 7 e mais tarde também têm outra DLL, apisetschema.dll, que vai ser carregado para todos os processos.



processo de explorador

Quando um processo de 32 bits é iniciado, ele irá carregar Wow64.dll que por sua vez carrega a versão de 32 bits do ntdll.dll e quaisquer DLLs de 32 bits necessários de % Systemroot% SysWOW64. A maioria destes arquivos são idênticos aos binários em um sistema de 32 bits, embora alguns foram reescritos para se comportar de forma diferente no WOW64.

Olhando para a lista de DLLs carregadas podemos ver que há 9 DLLs carregadas no processo em Win64 que não estão lá para o sistema Win32.

Agora, você pode ser tentado a olhar para os tamanhos de arquivo, adicione-os para cima e usar isso como sua base para a quantidade de memória extra está sendo usado, mas você iria acabar com resultados imprecisos. Esses arquivos, por sua natureza, são projetados para ser compartilhada componentes e, como resultado, o primeiro arquivo para exigir uma DLL carrega na memória.

programas subsequentes que exigem a mesma DLL não carregar todo o componente na memória. Eles obter um ponteiro para o componente já carregado, e alocar RAM para os elementos adicionais, que são carregados no processo.

Nossa configuração de teste

A fim de ver o que está acontecendo, eu configurei duas máquinas virtuais executando o Windows 7 Ultimate com 2 GB RAM alocados para cada um. Um deles é a versão de 32 bits e o outro é de 64 bits. Ambos passaram por exatamente o mesmo processo de instalação e patch.

Depois de ambos os sistemas foram remendado, eu desativado o arquivo de swap em ambos para obter uma melhor imagem do uso de memória RAM, garantindo não poderia ser paginada para o disco. Uma vez que foi completa 5.0.3.2 LibreOffice foi instalado.

Lo-calc

Uma cópia de Sysinternals Process Explorer foi também colocado em ambas as máquinas. Esta é a ferramenta que usei para reunir informações sobre o uso de memória. A configuração da coluna padrão foi alterado para que eu pudesse olhar para o conjunto de trabalho e WS uso privado.Process Explorer - O mais poderoso substituição Task Manager [Windows]Process Explorer - O mais poderoso substituição Task Manager [Windows]Vamos ser honestos, o Gerenciador de Tarefas do Windows não é tão grande para entender e gerenciar os processos em execução no seu computador. Mesmo no Windows 8, onde é muito melhorada, o gerenciador de tarefas não pode chegar perto do ...consulte Mais informação

Estes números conjunto de trabalho refletir a quantidade de RAM a ser utilizada pelos programas. É isso complicou um pouco mais longe, refletindo a quantidade de memória usada por bibliotecas compartilhadas mesmo se eles já foram carregados por outro processo. Devido a isso, se você adicionar a coluna inteira, é possível acabar com um total maior do que a RAM instalada. O conjunto de trabalho ainda é o melhor indicador de exatamente quanta memória é necessária para um processo.

Os processos que estamos examinando não são sozinho também. Os vários programas do BrOffice lançar outro processo, soffice.exe, que executará ainda outro processo, soffice.bin. Precisamos estar a olhar para os totais de todos os três processos para ver o uso de memória eficaz de cada programa.

Para o teste inicial, eu simplesmente abriu Writer, Calc e Impress individualmente para olhar para a quantidade de memória que consomem sem quaisquer dados que estão sendo carregados e exportados os dados do Process Explorer. Com Calc e Impress, eu tinha aberto um arquivo .xls 3,7 MB e 3,9 MB .pptx arquivo, respectivamente, e gravou o novo uso de memória. Os resultados podem ser vistos na tabela abaixo. Todos os dados estão em KB.

uso de memória

A grande surpresa ocorreu com Impress. Sem um documento que estava usando 4,1% mais memória RAM no sistema de 64 bits e de 9,9% Menos com o documento carregado. Eu desenterrei algumas outras apresentações e tiveram resultados semelhantes com todos eles. O sistema de 64 bits terminou-se usar menos do que a memória RAM do sistema de 32 bits.

Então, faça as versões de 64 bits do Windows requerem mais memória RAM do que suas contrapartes de 32 bits ao executar aplicativos de 32 bits? Em geral, sim.

Mas você precisa atualizar o seu RAM? Provavelmente não. A diferença realmente não é que enorme. Certamente não é 1,5 vezes diferente.


Artigos relacionados