Por que meu sistema está tão lento quando tenho tanta memória RAM?

8

Então, eu tenho um computador com 3,45 GB de RAM de acordo com o meu SO (XP). Eu tenho 2 GB de RAM virtual.

Minha empresa leva o Excel aos seus limites de referência a outras planilhas que consomem muitos recursos. Muitas vezes, quando está executando cálculos, salvando etc., o programa parece travar por algumas vezes até 10 minutos.

Ao olhar para ver qual é o problema, noto que o processador geralmente está rodando entre 8 e 12%, mas a RAM geralmente tem mais de 250.000 KB. Isso faz com que meu computador funcione lentamente, o que faria sentido para mim se eu tivesse apenas 512 ou talvez um Gigabyte de RAM. Eu sei que 250.000 são um pouco de memória para serem usados ​​no sistema operacional, mas com um total de 6 GB, eu esperaria um desempenho muito melhor.

Existe uma explicação sobre por que isso seria tão lento?

editar: devo esclarecer. Estou procurando mais do conceito por trás disso, não apenas uma solução para o meu computador rodando lentamente (isso deveria ser um exemplo). Eu tinha a percepção de que seria capaz de usar quase toda a minha RAM antes de perceber mudanças de velocidade sérias que afetariam todo o sistema.

Zombian
fonte
Qual processador você tem? Além disso, 4 GB de RAM não é muito. Média, na melhor das hipóteses, mas é a mínima recomendação que eu faria a alguém hoje.
Darth Android
Dificilmente é "mediano na melhor das hipóteses" para um sistema executando o XP de 32 bits.
Joe Internet
11
@ Joe A relação com a capacidade máxima do sistema operacional é irrelevante - apenas a relação com o número de aplicativos que o usuário comum usa atualmente e a quantidade de memória que ocupa. É verdade que adicionar mais não terá efeito até que ele atualize para um sistema operacional de 64 bits.
Darth Android
IMO, você não pode remover o contexto hw da "média". O OP está executando o Windows XP, que possui uma RAM mínima recomendada de 128M, com um mínimo suportado de 64M. Portanto, aproximadamente 55x o mínimo suportado provavelmente está acima da média.
Joe Internet

Respostas:

11

Algumas dessas planilhas referenciadas podem estar em uma LAN? Em caso afirmativo, que tipo de conexão você tem com os arquivos na LAN (100mbit, Gigabit, wireless, etc)?

O Excel é muito "falador". Especialmente quando você lida com planilhas de referência e dados espalhados por vários recursos, pode ser necessária muita comunicação para o aplicativo enviar e receber as informações necessárias. Se a maioria dos arquivos estiver em compartilhamentos e unidades de rede, isso pode explicar pelo menos um pouco da lentidão que você está enfrentando.

Além disso, independentemente da quantidade de memória que você estiver usando, você provavelmente encontrará o excel.exe geralmente não consome tanta memória quanto espera. Existem outros processos em execução no seu computador que não são necessários? Muitos ícones da barra de tarefas (ao lado do relógio) que você não faz ideia de como eles chegaram lá ou para que servem?

Finalmente, muitas empresas alavancam o Excel muito além de suas melhores funções, como parece que sua empresa (por que, oh, por que eles não usam um banco de dados quando precisam de um banco de dados e deixam o Excel para as funções simples de registro e processamento de dados ??? ?), Descobri que comparando a velocidade do Excel em nossas máquinas mais antigas / mais lentas (desktops IBM 8215 e 9645 de 4 anos) e máquinas mais recentes / mais rápidas (desktops com 6 meses de idade, 3269, 9964), e não há diferença significativa .

Dependendo de como as macros e o código que conectam as planilhas são gravados, pode haver limites essencialmente rígidos para a rapidez com que a planilha pode coletar e processar os dados necessários.

Tudo o que você pode fazer é identificar e mitigar todos os pontos possíveis de lentidão possível e esperar o melhor.

music2myear
fonte
Uau, você acertou em cheio! Acabei de descobrir isso com a ajuda do post anterior e vi essa resposta depois. E sim, eu concordo com o banco de dados. Foi-me dito que o motivo era "porque não queremos pagar um DBA". Em vez disso, eles me pagam para passar três horas por dia mexendo nos polegares, esperando pelo Excel. Tenho certeza de que parte do problema poderia ser o VBA, já que também sou autodidata, mas o que estou percebendo é provavelmente mais um problema de LAN. Obrigado!
Zombian
4
Você é muito bem-vindo. A boa notícia é que pode haver maneiras relativamente eficientes de fazer as coisas no Excel. Uma tarefa comum é encontrar o número de linhas de dados. Algumas pessoas pesquisam no máximo predefinido todas as linhas de dados, assumindo que outras formas correm o risco de relatar a última linha quando encontrarem a primeira célula vazia, sem perceber que existem maneiras mais rápidas do que verificar manualmente um intervalo inteiro que não falha no primeira célula vazia. Outra boa prática na codificação do Excel é carregar tabelas inteiras em matrizes, o que as mantém locais na memória. Coisas pequenas como essa se somam e ajudam a acelerar as coisas.
music2myear
11
Passe essas 3 horas por dia aprendendo SQL e teoria de banco de dados e como melhorar suas habilidades em Excel VBA. Embora ter um DBA dedicado seja bom para coisas muito difíceis ou muito grandes, não é tão difícil começar algo como a edição do SQL Server Express.
Joe Internet
11
@ Joe: Ou acesso (o que seria mais amigável para a empresa, porque eles provavelmente todos já o tem instalado, mas muito mais fácil do Excel migrar para SQL dia Server)
BlueRaja - Danny Pflughoeft
Não consigo pensar em um único benefício que o Access traria para essa situação, além da capacidade de desenhar botões em formulários. Se você realmente precisa disso, o Visual Studio Express ainda é uma escolha melhor.
Joe Internet
6

O Windows XP não faz um bom trabalho ao usar mais de 1 GB de RAM. Alguns aplicativos podem usar mais, mas nenhum aplicativo único pode usar mais de 2 GB por vez, pelo menos por padrão - esse é o maior espaço de endereço virtual que um aplicativo pode ver. Há um modo que permite um espaço de endereço de 3 GB, mas que pode causar problemas de compatibilidade para muitos softwares.

Se sua máquina estiver usando apenas 0,25 GB, isso parecerá bastante estranho - a menos que a memória não seja o seu gargalo.

Se sua máquina "parece travar", acho que você está acessando muito o disco rígido. Isso pode tornar o problema de uso da memória do Windows XP relevante - o Windows 7 é muito mais agressivo ao prever o que você usará em um futuro próximo e armazená-lo em cache. O Windows XP nem sequer usa tanta memória para o cache, quanto mais tente fazer cache preditivo, portanto é muito mais provável que você "debata" o disco rígido.

Se esse for o problema, algumas opções a serem consideradas são ...

  1. Tente usar um ramdisk, para minimizar o uso do disco rígido. Coloque os documentos lá e garanta que todos os arquivos temporários também sejam armazenados lá. Existem até alguns ramdisks disponíveis que usarão RAM fora dos 4 GB que o Windows XP de 32 bits pode acessar.

  2. Use uma matriz de ataque com faixas para melhorar o desempenho do seu disco rígido.

  3. Use um disco rígido de estado sólido - mas lembre-se de que, se o seu aplicativo estiver fazendo muitas gravações, isso poderá causar desgaste excessivo para esse SSD. Além disso, o Windows XP não é otimizado para SSDs - procure atualizações para oferecer suporte ao Trim.

Basicamente, a idéia é (1) forçar seu sistema a usar RAM ou (2, 3) investir em hardware que reduza o gargalo de desempenho.

Steve314
fonte
Obrigado! Eu uso um perfil móvel e isso me fez perceber que a leitura / gravação no servidor para os arquivos nos quais estou trabalhando é provavelmente uma grande parte do problema. Além disso, bem documentado! Obrigado novamente.
Zombian 25/07
2

Parece que você está usando um sistema operacional de 32 bits (você não diz o que está definido na pergunta); nesse caso, você está limitado aos 3,45 GB de memória endereçável . O Windows simplesmente não conhece nenhuma memória acima desse limite.

Isso significa que, ao executar programas que usam muitos recursos, você estará paginando em disco a maior parte do tempo, pois o sistema operacional precisará trocar os dados da memória pelos dados do disco. Você pode tentar aumentar o tamanho do seu arquivo de paginação (assumindo que é isso que você entende por RAM virtual), mas é melhor deixar o Windows gerenciar isso.

Você precisará instalar um sistema operacional de 64 bits para obter quaisquer benefícios de desempenho da sua memória.

ChrisF
fonte
11
você quer dizer que, mesmo que eu instale uma ram de 8 GB na minha caixa de 32 bits, terei apenas 3,45 GB? e o resto nunca será usado?
Pacerier 29/07
11
@ Pacerier - algo parecido. Há um limite de 2 GB por processo e o limite é devido à natureza do sistema operacional - 2 elevado à 32ª potência é de 4 GB, portanto você não pode ir mais alto.
ChrisF 29/07
2

Eu suspeito que algo totalmente diferente das respostas atuais: Gostaria de saber se você tem a atualização "Validação de arquivo do Microsoft Office para Office 2003, 2007 Office e Office 2010" instalada.

Ele reduz o acesso à rede dos arquivos do Excel para um CRAWL. Levei cerca de 1 minuto para abrir um arquivo 21k. Assim que sair, bang !, volte ao normal.

Veja minha postagem aqui em Server Fault e o artigo associado da KB, que observa isso como "problema conhecido".

/server/286427/slow-opening-of-excel-files-on-the-network

KCotreau
fonte
Uau! Isso parece intenso! Felizmente, estou executando o Excel 2010 e também noto isso há meses (a publicação dizia que a atualização estava no início deste mês). Obrigado pelo alerta. Eu gostaria que acabasse sendo assim tão simples!
Zombian
@ Zombian OK, pelo menos você verificou. Sim, isso não afeta o Excel 2010, pois a funcionalidade problemática da atualização é incorporada, mas não é divertida como em 2003/2007. Essa atualização causou muitos administradores profissionais muito tempo e puxões de cabelo. Eu também gostaria que tivesse sido tão fácil para você.
KCotreau
1

Outras respostas mencionam coisas que podem contribuir para seus problemas, mas nenhuma delas parece mencionar que o Excel possui limites de memória internos; não utilizará toda a RAM do PC.

Aqui estão alguns dos limites que o Excel possui:

  • Excel 5: limitado a 16 MB
  • Excel 95/97/2000: limitado a 64 MB
  • Excel 2002: limitado a 128 MB
  • Excel 2003: limitado a 1 GB de conjunto de trabalho, menos para pastas de trabalho reais
  • Excel 2007: limitado ao conjunto de trabalho de 2 GB , menos para pastas de trabalho reais
  • Excel 2010: limitado a 2 GB no Excel de 32 bits, 8 terabytes ( 8000 GB ) no Excel de 64 bits

Fonte e mais informações: Excel Memory Limits , por Charles Williams, MVP do Microsoft Excel

Steven Noto
fonte