Qual é a melhor ferramenta para controlar o uso de memória de um processo durante um longo período de tempo no Windows?
-
01-07-2019 - |
Pergunta
O que é a melhor ferramenta disponível para monitorar o uso de memória do meu. Serviço C # / janelas líquidas durante um longo período de tempo. Tanto quanto eu sei, ferramentas como perfmon pode monitorar o uso de memória durante um curto período de tempo, mas não graficamente por um longo período de tempo. Eu preciso de dados de tendências ao longo de dias, não segundos.
Para ser claro, eu quero monitorar o uso de memória em um nível fino de detalhe durante um longo tempo, e ter o show gráfico tanto todo o período de tempo eo nível de detalhe. Eu preciso de um pequeno intervalo de amostragem, e um gráfico grande.
Solução
Perfmon na minha opinião é uma das melhores ferramentas para fazer isso, mas certifique-se de configurar corretamente a amostragem intervalo de acordo com o tempo que você deseja monitorar.
Por exemplo, se você deseja monitorar um processo:
- durante 1 hora: eu utilizar intervalos de 1 segundo (isto irá gerar 60 * 60 amostras)
- durante 1 dia: eu utilizar intervalos de 30 segundos (o que vai gerar 2 * 60 * 24 amostras)
- por 1 semana: Gostaria de usar intervalos de 1 minuto (isto irá gerar 60 * 24 * 7 amostras)
Com estes intervalos de amostragem Perfmon deve ter nenhum problema gerando uma saída gráfica agradável de seus contadores.
Outras dicas
Bem, eu utilizado perfmon, exportados os resultados para um arquivo CSV e usado excel para as estatísticas depois. Isso funcionou muito bem da última vez que eu precisava para monitorar um processo
Brincando com o Gerenciamento do computador (supondo que você está executando o Windows aqui) e parece que você pode fazê-lo monitorar um processo ao longo do tempo. Ir para o gerenciamento do computador -> logs de desempenho e alertas e olhar para os logs contador / rastreamento. clique direito sobre registos de contador e adicionar um novo registro. Agora clique objeto em Adicionar e selecione memória. Agora, clique em Adicionar contadores e alterar o "Objeto de desempenho" para Processo e selecione o seu processo.
Como bom como monitorar a memória é, por si só, você provavelmente está pensando em memória de perfis para identificar vazamentos ou objetos obsoletos - http :. //memprofiler.com/ é uma boa escolha aqui, mas há uma abundância de outros
Se você quer fazer algo muito específico, não tenha medo de escrever sua própria logger baseado em WMI funcionando em um temporizador - você poderia chegar a este e-mail que você processar estatísticas, avisar quando ela cresce muito rápido ou muito alta, enviá-lo como XML para gráficos, etc.
Se você estiver familiarizado com o Python, é muito fácil escrever um script para isso.
Activestate Python (que é gratuito) expõe as partes relevantes do Win32 API através do win32process módulo.
Você também pode verificar todos win32 módulos relacionados ou uso gotAPI para navegar as bibliotecas padrão do Python.
Eu recomendaria usar a ferramenta de memória Validador .Net de software verificar . Esta ferramenta me ajudou a resolver muitos problemas diferentes relacionados ao gerenciamento de memória em aplicativos .Net eu tenho que trabalhar com.
Eu uso com mais frequência a versão C ++, mas eles são bastante semelhantes e ao fato de que você pode realmente ver em tempo real o tipo de objetos que estão sendo alocados será inestimável para você.
Eu usei ProcessMonitor se você precisa de algo mais poderoso do que perfmon.