Desaceleração do Windows XP, qual a culpa?

1

Eu corro o Windows XP e depois de um tempo ele parece ficar muito lento. Eu suspeito que é o consumo de memória pesada do Firefox, mas notei que vários outros programas são 'lentos' para sair quando eu reiniciar.

Existe uma maneira de medir o consumo de memória do processo all ao longo do tempo? O Process Explorer é o que eu quero, mas para todo processo, não apenas para o qual eu abro as propriedades.

No Unix-land, eu executei ps snapshots repetidamente, e observei o RSS (e ignorando descaradamente as páginas da memória compartilhada) calcular o que

  • está sendo um porco agora
  • cresceu mais (enquanto eu não estava olhando).

Preciso de cerca de 8 a 24 horas de histórico por processo, e não apenas o que cabe na tela.

Alguma idéia?

    
por ericslaw 31.07.2009 / 05:24

6 respostas

5

Algum tempo atrás eu escrevi Windows Perfmon: os dez principais contadores em meu antigo blog. O artigo é uma introdução rápida ao uso do Perfmon para determinar onde os gargalos de hardware são: processador, memória, disco ou rede (e, secundariamente, para determinar as cargas operacionais atuais nesses recursos). Eu não posso enfatizar este passo o suficiente: primeiro verifique se você sabe qual recurso de hardware é usado em excesso . Então vai caçar o porco do recurso.

Depois de determinar qual recurso é usado em excesso, você tem duas opções: adicionar mais recursos (obter uma CPU mais rápida, adicionar memória, obter um disco ou NIC mais rápido) ... ou rastrear os principais usuários desse recurso recurso, e ou matá-los ou tomar medidas para torná-los menos piggish.

A maneira mais fácil de rastrear os principais especialistas em recursos é com o Process Explorer . Certifique-se de executá-lo a partir de uma conta com Admin privs. Aqui está uma lista rápida e suja de coisas para procurar:

Boa sorte!

    
por 31.07.2009 / 08:53
3

perfmon.msc e há sysInternals ' Process Monitor , que registra.

    
por 31.07.2009 / 08:06
1

Você pode começar usando o Gerenciador de Tarefas, que lhe dará uma boa informação.

    
por 31.07.2009 / 06:15
1

Uma alternativa robusta ao Gerenciador de Tarefas integrado ( taskmgr.exe ) é Process Explorer ( procexp.exe ). O Process Explorer foi criado pela SysInternals e agora pertence e é distribuído pela Microsoft.

Quanto a amostras do seu sistema normalmente saudável em intervalos regulares para estabelecer números de linha de base, você pode criar uma tarefa agendada que use o cmdlet do PowerShell Get-Process ou um arquivo em lotes que usaria o antigo-velho-DOS tasklist.exe .

    
por 31.07.2009 / 06:31
1

você poderia usar o ps do sysinternals ou ps do cygwin ou se você conhece um desenvolvedor é trivial escrever um programa para executar cada processo e extrair certas estatísticas.

Este código deve estar em stackoverflow e os overlords podem dizer algo, mas dá uma ideia de como essa tarefa pode ser fácil:

public static string ListAllApplications()
{
    StringBuilder sb = new StringBuilder();

    foreach (Process p in Process.GetProcesses("."))
    {
        try
        {
            if (p.MainWindowTitle.Length > 0)
            {
                sb.Append("Window Title:\t" +
                    p.MainWindowTitle.ToString()
                    + Environment.NewLine);

                sb.Append("Process Name:\t" +
                    p.ProcessName.ToString()
                    + Environment.NewLine);

                sb.Append("Window Handle:\t" +
                    p.MainWindowHandle.ToString()
                    + Environment.NewLine);

                sb.Append("Memory Allocation:\t" +
                    p.PrivateMemorySize64.ToString()
                    + Environment.NewLine);

                sb.Append(Environment.NewLine);
            }
        }
        catch { }
    }

    return sb.ToString();
}
    
por 31.07.2009 / 06:34
0

Eu tenho esse problema o tempo todo. O Firefox geralmente é meu principal ofensor, mas ocasionalmente eu corro algo com vazamento de memória.

Eu sei que já foi dito antes, mas vou dizer de novo ... O Process Explorer, na verdade, tem um recurso muito útil, onde você pode personalizá-lo para fornecer algumas colunas extras de informações. Especificamente, as colunas extras nas quais você está interessado são "Histórico da CPU" e "Histórico de bytes privados". Acho que essa é a informação que você está tentando extrair do sistema. Ele mostra um gráfico de rolagem para cada processo.

    
por 31.07.2009 / 12:29