Ferramentas de Análise de memória do. NET [duplicado]

possível duplicado:
Quais são os bons perfis da. NET?

Estou à procura de ferramentas de análise de memória.net CLR.

a minha exigência principal é que ele vai jogar bem com IIS e aplicativos autônomos CLR. Idealmente, eu gostaria de ver quais objetos são alocados, onde eles são alocados e que tamanho eles são?

Alguém tem boas experiências com uma ferramenta em particular que gostaria de recomendar?

Author: Community, 2008-12-30

9 answers

Estou actualmente a avaliar o perfil de memória Scitech. net 3.1 e o perfil de memória das formigas 5.1. Experimentei os JetBrains há um ano ou dois e não era tão bom como as formigas por isso não me incomodei desta vez. Ao ler os sites, parece que não é tão bom para a memória como os outros dois.

Tanto as formigas quanto o analista de memória Scitech têm características que o outro não tem, então o que é melhor vai depender de suas preferências. Geralmente falando, o Scitech One fornece informações mais detalhadas, enquanto as formigas um é realmente incrível em identificar o objeto vazando. No geral, eu prefiro as formigas um porque é tão rápido em identificar possíveis vazamentos.

Aqui estão os principais prós e contras de cada um pela minha experiência:

Características comuns de formigas e Scitech. net perfil de memória

  • elemento de análise em tempo Real
  • Excelente como-para vídeos em seus sites
  • fácil de utilizar
  • razoavelmente performante (obviamente mais lento do que sem o profiler ligado, mas não tanto você se torna frustrado)
  • mostra instâncias de fugas de objectos
  • Basicamente ambos fazem o trabalho muito bem.

FORMIGAS

  • filtros de um clique para encontrar fugas comuns incluindo: objectos mantidos vivos apenas por tratadores de eventos, objectos que são eliminados mas ainda vivos e objectos que só estão a ser mantidos vivos por uma referência de um objecto eliminado. Esta é provavelmente a característica assassina de formigas-encontrar vazamentos é incrivelmente rápido por causa disso. Na minha experiência, a maioria das fugas são causadas por tratadores de eventos não sendo desengonçado e formigas apenas leva você Direto para esses objetos. Incrivel.
  • gráfico de retenção de objectos. Enquanto a mesma informação está disponível no Scitech, é muito mais fácil de interpretar em formigas.
  • mostra o tamanho com as crianças para além do tamanho do próprio objecto (mas só quando uma instância é seleccionada infelizmente, não está na lista geral de classes).
  • Melhor integração ao Visual Studio (clique com o botão direito no gráfico para saltar para o ficheiro)

Scitech. net Profiler de memória

  • mostra o traço da pilha quando o objecto foi atribuído. Este é realmente útil para objetos que são alocados em muitos lugares diferentes. Com formigas é difícil determinar exatamente onde o objeto vazado foi criado.
  • mostra a contagem de objectos descartáveis que não eram eliminado. Embora não indicativo de uma fuga, ele identifica oportunidades para corrigir este problema e melhorar o desempenho da sua aplicação como resultado de uma coleta de lixo mais rápida.
  • opções de filtragem mais detalhadas (várias colunas podem ser filtradas independentemente).
  • apresenta informação sobre o total de objectos criados (incluindo o lixo recolhido). As formigas só mostram estatísticas de objectos ao vivo. Isto torna mais fácil analisar e sintonizar o desempenho global da aplicação (por exemplo. identificar onde lotes de objetos sendo criados desnecessariamente que não estão necessariamente vazando).

Em resumo, acho que as formigas ajudam a encontrar o que está vazando mais rápido enquanto a Scitech fornece um pouco mais de detalhes sobre o seu desempenho geral de memória de aplicação e objetos individuais, uma vez que você sabe o que olhar (por exemplo. stack trace on creation). Se a pilha de trace e rastreamento de objetos descartáveis não contestados foi adicionado a formigas eu não veria a necessidade de usar qualquer outra coisa.

 45
Author: Ben Robbins, 2011-11-11 18:13:31

Estranho queclr Profiler ainda não é mencionado aqui. É grátis e funciona bem.

Cuidado com as múltiplas versões antigas disponíveis no próprio site da Microsoft. A partir de Novembro de 2011, a última versão parece ser esta: última versão (ligação alternativa)

 31
Author: Craig Stuntz, 2012-05-22 22:01:39
Se te sentes mesmo desesperado, podes usar o WinDbg. com a Biblioteca do Filho da greve (SOS.DLL) que navega com o framework. Net.
 8
Author: X-Cubed, 2009-09-25 02:59:56

Grande fã de desenhador de JetBrains EU

 6
Author: annakata, 2008-12-30 09:26:49

O Analista de memória do. Net ajudou-me muito no meu projecto anterior. Não é grátis, mas é muito bom.

O perfil de memória da NET é um poderoso ferramenta para encontrar fugas de memória e optimizar a utilização da memória em programas escritos em C#, VB.NET ou qualquer outra língua. net.

 5
Author: jfs, 2008-12-30 09:23:37

Eu segundoAs formigas traçam perfis .

Além de mostrar tudo o que precisa, irá desenhar um gráfico simples onde poderá ver o que leva mais tempo a ser executado, e o que come a memória. Quando você clicar em graphp ele irá mostrar-lhe a linha correspondente em seu código.

E eu gosto de barras de progresso lentas afogadas em linhas de código que levam muito tempo a ser executadas.
 5
Author: dmajkic, 2008-12-30 11:25:15

Estou a usar o perfil das formigas. É uma ferramenta muito boa com muitas opções de detalhamento de perfis e joga bem com aplicativos autônomos, servidor de desenvolvimento e IIS.

 4
Author: Diadistis, 2008-12-30 09:47:07
Uma vez que todos estão listando as ferramentas disponíveis, pensei em apontar para a lista completa de profilers para. NET: http://sharptoolbox.com/categories/profilers-debuggers Você encontrará aí as ferramentas sugeridas aqui e todas as outras, cada uma com uma breve descrição do que propõe.
 4
Author: Fabrice, 2009-10-23 09:12:25

Tenho usado Aqtime com grande sucesso ao longo dos anos. Eu tentei formigas e outros, mas voltei para Aqtime como eu também fazer um monte de desenvolvimento em código não gerido.

 1
Author: no_one, 2009-01-03 12:03:45