Quais são alguns bons Profilers .NET?

votos
374

O que profilers você usou quando se trabalha com programas de .net, e que você especialmente recomendar?

Publicado 06/08/2008 em 21:14
fonte usuário
Em outras línguas...                            


30 respostas

votos
285

Eu tenho usado JetBrains dotTrace e Redgate ANTS extensivamente. Eles são bastante semelhantes em características e preço. Ambos oferecem perfil de desempenho útil e perfil de memória muito básico.

dotTrace integra com ReSharper, que é realmente conveniente, como você pode traçar o perfil do desempenho de um teste de unidade com um clique a partir do IDE. No entanto, dotTrace muitas vezes parece dar resultados falsos (por exemplo, dizendo que um método levou vários anos para ser executado)

Eu prefiro a maneira que as formigas apresenta os resultados de perfis. Ele mostra o código fonte e à esquerda de cada linha diz-lhe quanto tempo levou para ser executado. dotTrace só tem uma visão de árvore.

Profiler EQATEC é bastante simples e requer que você compilar versões instrumentados especiais de seus conjuntos que podem ser executados no profiler EQATEC. É, no entanto, livre.

No geral eu prefiro ANTS para perfil de desempenho, embora se você usar ReSharper, em seguida, a integração de dotTrace é uma característica do assassino e significa que ele bate ANTS em usabilidade.

A livre Microsoft CLR Profiler ( framework .Net 2.0 / .Net Framework 4.0 ) é tudo que você precisa para profiling de memória .NET.

2011 Update:

O perfil de memória Scitech tem bastante UI básico, mas muita informação útil, incluindo algumas informações sobre memória não gerenciada que dotTrace e ANTS falta - você pode achar que é útil se você estiver fazendo interoperabilidade COM, mas eu ainda tenho que encontrar qualquer perfil que faz COM problemas de memória fácil de diagnosticar - você geralmente tem que sair windbg.exe.

O profiler ANTS veio em nos trancos e barrancos nos últimos anos, e seu perfil de memória tem algumas características realmente úteis que agora empurrou-o à frente de dotTrace como um pacote na minha opinião. Tenho a sorte de ter licenças para ambos, mas se você estiver indo para comprar um profiler .NET Para tanto o desempenho e memória, torná-lo formigas.

Respondeu 19/09/2008 em 09:29
fonte usuário

votos
88

Outros têm coberto perfil de desempenho, mas com relação ao perfil de memória Atualmente estou avaliando tanto a Scitech .NET Memória Profiler 3.1 e ANTS Memória Profiler 5.1 (versões atuais de setembro de 2009). Eu tentei o JetBrains um um ou dois anos atrás e não foi tão bom quanto ANTS (para profiling de memória), então eu não ter incomodado neste momento. Após a leitura dos sites parece que ele não tem a mesma memória de perfil características como os outros dois.

Ambas as formigas e o profiler de memória Scitech têm características que o outro não, de modo que é melhor dependerá de suas preferências. De um modo geral, a Scitech fornece informações mais detalhadas, enquanto as formigas é realmente incrível de identificar o objeto vazamento. No geral, eu prefiro a um ANTS, porque é tão rápido na identificação de possíveis vazamentos.

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

Características comuns de formigas e Scitech NET Profiler Memória

  • recurso de análise em tempo real
  • Excelente como fazer vídeos em seus sites
  • Fácil de usar
  • Razoavelmente alto desempenho (obviamente mais lento do que sem o profiler em anexo, mas não tanto que você se tornar frustrado)
  • Mostrar instâncias de objetos de vazamento
  • Basicamente ambos fazem o trabalho muito bem

ANTS

  • Filtros de um clique para encontrar falhas comuns incluindo: objetos mantido vivo apenas por manipuladores de eventos, objectos que são eliminados, mas ainda vivem e objetos que só estão sendo mantido vivo por uma referência de um objeto descartado. Esta é provavelmente a característica do assassino de ANTS - encontrar vazamentos é incrivelmente rápido por causa disso. Na minha experiência, a maioria dos vazamentos são causados por manipuladores de eventos não sendo desprendeu e formigas apenas o leva direto para esses objetos. Impressionante.
  • Objecto gráfico de retenção. Enquanto a mesma informação está disponível em Scitech, é muito mais fácil de interpretar em formigas.
  • Mostra o tamanho com as crianças, além de tamanho do próprio (mas apenas quando uma instância é selecionada, infelizmente, não está na lista geral de classe) objeto.
  • Melhor integração com Visual Studio (botão direito do mouse no gráfico para ir para arquivo)

Scitech NET Profiler Memória

  • Mostra rastreamento de pilha quando o objeto foi alocado. Isto é realmente útil para objetos que são alocados em muitos lugares diferentes. Com ANTS é difícil determinar exatamente onde o objeto vazado foi criado.
  • Mostra contagem de objetos descartáveis ​​que não foram eliminados. Apesar de não ser indicativo de uma fuga, ele se identifica oportunidades para corrigir esse problema e melhorar o desempenho do aplicativo, como resultado da coleta de lixo mais rápido.
  • opções de filtragem mais detalhada (várias colunas podem ser filtrados de forma independente).
  • Apresenta informações sobre o total de objetos criados (incluindo aqueles lixo coletado). ANTS só mostra estatísticas objeto 'ao vivo'. Isto torna mais fácil para analisar e ajustar o desempenho geral do aplicativo (por exemplo. Identificar onde lotes de objetos sendo criados desnecessariamente que não são necessariamente vazamento).

Em resumo, acho que ANTS ajuda a encontrar o que está vazando mais rápido, enquanto Scitech oferece um pouco mais detalhadamente sobre o seu desempenho de memória aplicação geral e objetos individuais quando você sabe o que olhar (eg. Rastreamento de pilha na criação). Se o rastreamento de pilha e rastreamento de objetos descartáveis ​​undisposed foi adicionado em ANTS Eu não vejo a necessidade de usar qualquer outra coisa.

Respondeu 25/09/2009 em 04:16
fonte usuário

votos
45

Eu descobri recentemente EQATEC Profiler http://www.eqatec.com/tools/profiler . Ele funciona com a maioria das versões .NET e em um monte de plataformas. É fácil de usar e partes de que é livre, mesmo para uso comercial.

Respondeu 29/08/2008 em 10:46
fonte usuário

votos
31

[ Full Disclosure ]

Embora não seja ainda tão cheio de recursos como alguns dos outros perfis de memória .NET listadas aqui, há uma nova entrada no mercado chamado JustTrace . É feito por Telerik e é objetivo principal é fazer rastreamento / profiling mais fácil e rápido de fazer para todos os tipos de aplicativos (web / Silverlight / desktop).

Se você já encontrou perfis e otimização de intimidar ou lenta com outras ferramentas, em seguida, JustTrace pode valer a pena um olhar.

Respondeu 22/08/2011 em 16:42
fonte usuário

votos
25

Não se esqueça nProf - um prefectly bom profiler, gratuito.

Respondeu 06/08/2008 em 21:19
fonte usuário

votos
14

Eu descobri dotTrace Profiler por JetBrains ser uma excelente ferramenta de análise para .NET e seu modo ASP.NET é a qualidade.

Respondeu 04/03/2009 em 23:23
fonte usuário

votos
12

ANTS Profiler . Eu não usei muitos, mas eu realmente não tenho quaisquer reclamações sobre formigas. A visualização é realmente útil.

Respondeu 06/08/2008 em 21:19
fonte usuário

votos
11

Se você está procurando algo rápido, fácil e gratuito, http://code.google.com/p/slimtune/ parece fazer o trabalho muito bem.

Respondeu 29/12/2010 em 21:04
fonte usuário

votos
11

AutomatedQA AQTime para o sincronismo e SciTech MemProfiler para a memória.

Respondeu 29/08/2008 em 10:49
fonte usuário

votos
9

Eu tenho trabalhado com JetBrains dotTrace para WinForms e Console Apps (não testado em ASP.net ainda), e ele funciona muito bem:

Eles recentemente também acrescentou uma "licença pessoal" que é significativamente mais barato do que o corporativo. Ainda assim, se alguém sabe alguns livres mais baratos ou até mesmo, eu gostaria de ouvir bem :-)

Respondeu 06/08/2008 em 21:17
fonte usuário

votos
7

Não se esqueça da Scitech incrível profiler de memória .net

É ótimo para rastrear por que seu aplicativo .net está ficando sem memória.

Respondeu 15/10/2008 em 23:25
fonte usuário

votos
5

Gostaria de acrescentar que a capacidade de dotTrace para sessões de memória e de traço desempenho diff é absolutamente inestimável (ANTS também pode ter um recurso diff memória, mas eu não ver um diff desempenho).

Ser capaz de executar uma sessão de perfis antes e depois de uma correção de bug ou melhoria, e depois comparar os resultados é incrivelmente valioso, especialmente com um aplicativo .NET legado gigantesco (como no meu caso), onde o desempenho nunca foi uma prioridade e onde encontrar pontos de estrangulamento pode ser muito tedioso. Fazendo um antes e depois diff permite que você veja a mudança na contagem de chamadas para cada método ea mudança na duração de cada método .

Isso é útil não só durante as mudanças de código, mas também se você tiver um aplicativo que usa um banco de dados diferente, digamos, para cada cliente / cliente. Se um cliente reclama da lentidão, você pode executar uma sessão de criação de perfil usando seu banco de dados e comparar os resultados com um banco de dados de "fast" para determinar quais as operações estão contribuindo para a lentidão. Claro que existem muitas ferramentas de desempenho do lado do banco de dados, mas às vezes eu realmente ajuda a ver as métricas de desempenho do lado do aplicativo (uma vez que é mais perto do que o usuário está realmente vendo).

Bottom line: dotTrace funciona muito bem, e as diferenças é inestimável.

Respondeu 08/04/2009 em 00:29
fonte usuário

votos
4

AQTime é razoável, mas tem um pouco de uma curva de aprendizagem e não é tão fácil de usar como o construído em um no Team Suite

Respondeu 04/03/2009 em 23:19
fonte usuário

votos
3

A versão atual do SharpDevelop (3.1.1) tem um bom profiler integrado. É muito rápido, e se integra muito bem no SharpDevelop IDE e seu corredor NUnit. Os resultados são exibidos em um estilo da árvore / Lista flexível (usar LINQ para criar a sua própria selecção). Doubleclicking o método exibido salta directamente para o código-fonte.

Respondeu 08/02/2010 em 14:15
fonte usuário

votos
3

No passado, eu usei o profiler que vem com o Visual Studio Team System .

Respondeu 31/08/2008 em 06:12
fonte usuário

votos
2

Eu gostaria de adicionar YourKit java e .net profiler, eu adoro isso para Java, não tentei versão .NET embora.

Respondeu 15/06/2010 em 10:56
fonte usuário

votos
2

A última versão do ANTS profiler de memória (eu acho que é 5) simplesmente rocks !!! Eu estava assombrando um vazamento usando WinDbg e SOS, uma vez que provou ser a melhor maneira antes, então eu tentei ANTS e consegui-lo em minutos. Realmente uma maravilhosa peça de software.

Respondeu 07/07/2009 em 23:07
fonte usuário

votos
2

Eu duvido que o profiler que vem com o Visual Studio Team System é a melhor profiler, mas eu encontrei-o para ser bom o suficiente em muitas ocasiões. O que especificamente você precisa além do que VS ofertas?

EDIT: Infelizmente, só está disponível em VS Team System, mas se você tem acesso a que vale a pena conferir.

Respondeu 04/03/2009 em 23:20
fonte usuário

votos
2

Ainda não tentei isso sozinho, mas talvez dotTrace ? A sua aplicação ReSharper é certamente uma boa. Talvez dotTrace é também :)

Respondeu 04/03/2009 em 23:19
fonte usuário

votos
2

Eu já trabalhei com profiler do RedGate no passado. Fez o trabalho para mim.

Respondeu 06/08/2008 em 21:17
fonte usuário

votos
1

Se o licenciamento é um problema que você poderia tentar WINDBG para perfilamento de memória

Respondeu 02/02/2012 em 16:36
fonte usuário

votos
1

Tenho vindo a testar JustTrace de Telerik recentemente e, embora seja bem longe de um produto acabado os caras estão indo na direção certa.

Respondeu 02/09/2011 em 14:05
fonte usuário

votos
1

O profiler NuMega True Time vive em DevPartner estúdio por Micro Focus. Ele fornece linha e método de nível de detalhe para aplicativos .NET que requerem apenas PDBs, nenhuma fonte necessária (mas ajuda.) Ele pode discriminar entre rotinas de algoritmos pesados contra aqueles com longa I / O aguarda usando o nosso modo kernel proprietária por thread motorista sincronismo. Versão 10.5 vem com o novo suporte de 64 processo em 4 de fevereiro de 2011. Shameless plug: Eu trabalho na linha de produtos DevPartner. Seguir-se na http://www.DevPartner.com para a notícia do lançamento 10.5.

Disclaimer: Eu sou o Gerente de Produto para DevPartner a Micro Focus.

Respondeu 31/01/2011 em 04:16
fonte usuário

votos
1

Para mim SpeedTrace é a melhor ferramenta no mercado, porque não só ajudá-lo a encontrar gargalos dentro de suas aplicações. Ela também ajuda você em cenários de solução de problemas para descobrir por que seu aplicativo foi deixar de funcionar, a sua configuração não foi instalado, o aplicativo desligou, o desempenho do aplicativo é, por vezes, pobre, dependendo da entrada de dados, por exemplo, para identificar transações db lentas.

Respondeu 07/08/2010 em 12:31
fonte usuário

votos
1

Devo trazer uma ferramenta incrível para o seu anúncio que eu usei algum tempo atrás. AVICode Interceptor Estúdio . Na minha empresa anterior usamos essa ferramenta maravilhosa para traçar o perfil do webapplication ( Isto é suposto ser a maior aplicação web no mundo e o maior projeto de TI civil já fez ). A equipe de desempenho fez maravilhas com a ajuda desta magnífica ferramenta. É uma dor para configurá-lo, mas isso é uma atividade de uma vez e eu diria que vale a pena o tempo. Verificação geral desta página para mais detalhes.

Obrigado, James

Respondeu 16/03/2010 em 22:07
fonte usuário

votos
1

Intel® VTune ™ Performance Analyzer para amostragem rápida

Respondeu 19/09/2008 em 09:48
fonte usuário

votos
1

Lamentável a maioria dos profilers Tentei falharam quando usado com chamadas de cauda, ​​principalmente formigas. Eu só acabar escrevendo meu próprio. Existe uma implementação simples em CodeProject que você pode usar como base.

Respondeu 19/09/2008 em 09:38
fonte usuário

votos
0

Se você estiver em ASP.NET MVC, você pode tentar MVCMiniProfiler (http://benjii.me/2011/07/using-the-mvc-mini-profiler-with-entity-framework/)

Respondeu 13/03/2012 em 15:41
fonte usuário

votos
0

Selecionamos YourKit Profiler para .NET na minha empresa, uma vez que foi o melhor valor (preço de recurso contra). Para uma pequena empresa que quer ter licenciamento flexível (licenças flutuante) foi uma escolha perfeita - ANTS foi desenvolvedor assento medalhão no momento.

Além disso, ele forneceu-nos a capacidade de anexar ao processo em execução que não era possível com dotTrace. Cuidado, porém, que fixação não é a melhor opção como tudo .NET irá desacelerar, mas esta era a única maneira de perfil aplicativos .NET iniciados por outros processos. Apresentam sábios, formigas e dotTrace eram melhores - mas no final YourKit era bom o suficiente.

Respondeu 09/01/2012 em 17:12
fonte usuário

votos
0

Eu encontrei muitos problemas em um aplicativo C # grande usando este .

Normalmente, o problema ocorre durante a inicialização ou desligamento como plugins são carregados, e estruturas de dados grandes estão sendo criadas, destruídas, serializado ou desserializado. Muitas vezes eles são criados e inicializados mais de uma vez, e manipuladores de mudança são adicionados várias vezes, agravando ainda mais o problema.

Em casos como este, o programa pode ser tão lento que apenas 2 amostras são suficientes para identificar os locais de método / função / chamada propriedade culpados.

Respondeu 05/06/2009 em 16:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more