Como o Excel 2010 usa a RAM?

1

Usando o Excel 2010 de 32 bits, tenho apenas 2G de RAM disponível, mesmo que eu tenha 16G disponíveis no meu PC.

Minha pergunta é:

Se eu abrir uma segunda instância do Excel (não uma segunda pasta de trabalho, mas reabrir todo o programa novamente), cada um usa 2G de RAM ou compartilha 2G de RAM?

    
por PeterH 22.02.2018 / 17:47

1 resposta

2

Os 2 GB que um processo pode usar no Windows de 32 bits não é "RAM". É o espaço de endereço virtual e é simplesmente o limite superior; a maioria das instâncias da maioria dos programas usará apenas uma fração disso.

No entanto, cada instância do Excel que está em seu próprio processo (como mostrado na coluna "Processos" do Gerenciador de Tarefas no Win7, "Detalhes" no Win10) tem a capacidade de usar até 2 GB de espaço de endereço virtual.

Se você abrir várias planilhas dentro do mesmo processo Excel.exe, essas não instâncias separadas, e todo esse trabalho será feito dentro do mesmo espaço de endereço do processo (2 GB no máximo virtual).

A relação do espaço de endereço virtual para a RAM é muito "soft". Criando um processo - que, como todos os processos em execução no Windows de 32 bits, pode usar até 2 GB de V.A.S. (mas a maioria não irá) - não usa inerentemente qualquer quantidade específica de RAM, além de uma pequena quantidade (sob um megabyte)) para estruturas de dados do kernel não paginável que gerenciam o processo.

RAM é alocada para processos sob demanda. Normalmente, apenas cerca de um décimo a um quarto do espaço de endereço virtual de um processo (que, novamente, não será de 2 GB por; será o que for necessário para o código e os dados do processo) ocupará a RAM. Quanto depende de quanto de seus v.a.s. está acessando ativamente e em quanto RAM está disponível. Quanto mais RAM estiver disponível, mais memória RAM será permitida a cada processo ocupado - ou seja, quanto mais espaço de endereço virtual de cada processo estiver "residente" na RAM a qualquer momento. O uso de RAM observado de um processo, e do próprio Windows, depende muito das circunstâncias: quanto de RAM a máquina tem, e quão ocupados são os outros processos.

Como todos os outros executáveis no Windows, se você executar mais de uma instância de um processo, as partes do código que foram trazidas para a RAM de cada instância estarão acessíveis para os outros. Assim, enquanto cada um viverá em seu próprio espaço de endereço virtual, eles não ocuparão vários conjuntos de RAM para seu código; o código é compartilhado na RAM. Por outro lado, os dados específicos de cada instância ocupam o espaço de endereço virtual e a RAM separadamente para cada processo.

O limite de "2 GB" no espaço de endereço virtual descrito em todos os itens acima pode ser de 4 GB, se for um aplicativo de 32 bits "sensível a grandes endereços" e em execução no Windows de 64 bits.

    
por 22.02.2018 / 18:07