O Que São Alguns Good.NET Perfis?

que perfis usou ao trabalhar com os programas. net, e que recomendaria em particular?

Author: ricree, 2008-08-07

30 answers

Já useiJetBrains dotTrace eRedgate ANTS extensivamente. Eles são bastante semelhantes em características e preço. Ambos oferecem um perfil de desempenho útil e um perfil de memória bastante básico.

O DotTrace integra-se com o Resharper, o que é muito conveniente, uma vez que pode traçar o perfil do desempenho de um teste de unidade com um clique da IDE. No entanto, o dotTrace muitas vezes parece dar resultados espúrios (por exemplo, dizendo que um método levou vários anos a ser executado)

Prefiro a forma como as formigas apresentam os resultados dos perfis. Mostra-lhe o código fonte e à esquerda de cada linha diz-lhe quanto tempo demorou a correr. dotTrace só tem uma vista em árvore.

O eqatec profiler é bastante básico e requer que você compile versões instrumentadas especiais de suas assembleias que podem então ser executadas no eqatec profiler. É, no entanto, livre.

No geral, Prefiro formigas para o perfil de desempenho, embora se você usar Resharper, então a integração de dotTrace é uma característica assassina e significa que bate as formigas na usabilidade.

The free Microsoft CLR Profiler (}. Net framework 2.0 / .Net Framework 4.0 ) é tudo o que você precisa para o perfil de memória.net.

2011 actualizar:

O analista de memória Scitech tem uma IU bastante básica, mas muitas informações úteis, incluindo algumas informações sobre memória não gerenciada que falta dotTrace e formigas - você pode achar útil se você estiver fazendo COM interop, mas eu ainda não encontrou nenhum profiler que torne as questões de memória COM fáceis de diagnosticar-você geralmente tem que sair windbg.exe. {[[2]} O analisador de formigas entrou em saltos e limites nos últimos anos, e seu profiler de memória tem algumas características verdadeiramente úteis que agora empurrou-o à frente do dotTrace como um pacote em minha estimativa. Eu sou sortudo o suficiente para ter licenças para ambos, mas se você vai comprar um.NET profiler para o desempenho e memória, torná-lo formigas.
 285
Author: Matt Howells, 2012-01-04 09:27:44

Outros cobriram o perfil de desempenho, mas no que diz respeito ao perfil de memória Atualmente estou avaliando tanto o perfil de memória Scitech. net 3.1 e ANTS Memory Profiler 5.1 (versões atuais em setembro de 2009). Eu tentei o JetBrains um um um ano ou dois há e não era tão bom como formigas (para o perfil de memória) assim que eu não me incomodou desta vez. A partir da leitura dos sites da web parece que não tem as mesmas características de perfil de 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. De um modo geral, 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 com base na minha experiência:

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

  • elemento de análise em tempo Real
  • Excelente como fazer vídeos nos seus sites.
  • fácil de usar
  • 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 including: objects kept alive only by event handlers, objects that are disposed but still live and objects that are only being kept alive by a reference from a disposed object. 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 em Scitech, é muito mais fácil interpretar em formigas.
  • mostra o tamanho com as crianças, para além do tamanho do próprio objecto (mas apenas quando uma instância é seleccionada, infelizmente, não 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 lotes de lugar. Com formigas é difícil determinar exatamente onde o objeto vazado foi criado.
  • mostra a contagem de objectos descartáveis que não foram eliminados. 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ções sobre o total de objectos criados (incluindo os recolha do lixo). 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. identifique onde lotes de objetos que estão 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 stack trace and tracking of undisposed descartable objects was added to ANTS I wouldn't see the need to use anything else.

 88
Author: Ben Robbins, 2009-09-25 03:16:32

[Divulgação Completa]

Embora ainda não esteja tão completo como alguns dos outros profilers de memória.net listados aqui, há uma nova entrada no mercado Chamada JustTrace. É feito pela Telerik e seu principal objetivo é tornar o rastreamento/perfil mais fácil e mais rápido de fazer para todos os tipos de aplicativos (web/Silverlight/desktop).

Se alguma vez encontrou perfis e otimização intimidantes ou lentos com outras ferramentas, então Justrace pode valer a pena olhar.
 31
Author: Todd, 2017-05-23 12:02:27

Não se esqueça nProf - um profiler pré-adequado, de livre uso.

 25
Author: Greg Hurlman, 2010-07-23 14:40:59

Ants Profiler . Não tenho usado muitas, mas não tenho queixas sobre formigas. A visualização é realmente útil.

 12
Author: palmsey, 2008-08-06 20:19:00

AutomatedQA AQTime para o tempo e Scitech MemProfiler para a memória.

 11
Author: Lars Truijens, 2008-08-29 09:49:56
Se estás à procura de algo rápido, fácil e livre, http://code.google.com/p/slimtune parece fazer bem o trabalho.
 11
Author: Taudris, 2010-12-29 20:04:40

Estive a trabalhar com JetBrains dotTrace para WinForms e aplicações de consola (não testadas em ASP.net ainda assim), e funciona muito bem:

[[1]} Eles recentemente também adicionaram uma "licença pessoal" que é significativamente mais barato do que o corporativo. Ainda assim, se mais alguém conhece alguns mais baratos ou até gratuitos, eu gostaria de ouvir também: -)
 9
Author: Michael Stum, 2011-11-28 13:41:47
Não te esqueças do fantástico Analista de Memórias da scitech. net. É óptimo para descobrir porque é que a tua aplicação.Net está a ficar sem memória.
 7
Author: Sam Saffron, 2008-10-15 22:25:20

Eu acrescentaria que a capacidade do dotTrace para diff memory and performance trace sessions é absolutamente inestimável (as formigas também podem ter uma funcionalidade de diferenças de memória, mas eu não vi uma diferença de desempenho).

Sendo capaz de executar uma sessão de criação de perfil antes e depois de uma correção de bug ou acessório, em seguida, comparar os resultados é extremamente importante, especialmente com um mamute legado .NET aplicação (como no meu caso), onde o desempenho nunca foi uma prioridade e onde encontrar gargalos poderia ser Muito entediante. Fazer uma diferença antes e depois permite-lhe ver a alteração na contagem de chamadas para cada método e a alteração na duração de cada método.

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

Resumindo: o dotTrace funciona muito bem, e o diff é inestimável.

 5
Author: shaunmartin, 2009-04-07 23:29:35

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 uma suíte de equipe

 4
Author: Jeff Moser, 2009-03-04 22:19:44
No passado, usei o perfil que envia com o sistema Visual Studio Team.
 3
Author: Ant, 2008-08-31 05:12:31

A versão actual de SharpDevelop (3.1.1) tem um óptimo perfil integrado. É bastante rápido, e se integra muito bem no SharpDevelop IDE e seu NUnit runner. Os resultados são apresentados num estilo de árvore/lista flexível (use o LINQ para criar a sua própria selecção). A duplicação do método apresentado salta directamente para o código-fonte.

 3
Author: David Schmitt, 2010-06-21 11:10:50
Trabalhei com o analista do RedGate no passado. Fiz o trabalho por mim.
 2
Author: Kev, 2008-08-06 20:17:06
Ainda não experimentei, mas talvez dotTrace? A sua aplicação de refilmagem é certamente boa. Talvez o dotTrace também seja:)
 2
Author: Svish, 2009-03-04 22:19:50
Duvido que o profiler que vem com o sistema Visual Studio seja o melhor profiler, mas já o achei bom o suficiente em muitas ocasiões. O que precisa especificamente para além das ofertas VS?

Editar: infelizmente só está disponível no sistema de equipa VS, mas se tiver acesso a isso, vale a pena verificar.

 2
Author: Brian Rasmussen, 2009-03-04 22:30:36

A última versão de ANTS memory profiler (eu acho que é 5) simplesmente rochas!!! Eu estava assombrando uma fuga usando WinDbg e SOS desde que provou ser a melhor maneira antes, então eu tentei formigas e consegui em minutos. Realmente uma maravilhosa peça de software.

 2
Author: pablo, 2009-07-07 22:07:10

Eu gostaria de adicionar yourkit java e. Net profiler, eu adoro para Java, mas não tentei a versão. net.

 2
Author: Redlab, 2010-06-15 09:56:31
Infelizmente, a maioria dos profilers que tentei falhou quando usado com chamadas de cauda, principalmente formigas. Acabo por escrever a minha própria. Há uma implementação simples no CodeProject que você pode usar como base.
 1
Author: leppie, 2008-09-19 08:38:59
 1
Author: utility73, 2008-09-19 08:48:46
Tenho de levar uma ferramenta fantástica ao teu conhecimento, que já usei há algum tempo. AVICode Interceptor Studio . Na minha empresa anterior utilizámos esta maravilhosa ferramenta para traçar o perfil da webapplication ([[4]}esta é supostamente a maior aplicação web do mundo e o maior projecto de TI civil já feito ). A equipe de performance fez maravilhas com a ajuda desta ferramenta magnífica. É uma dor configurá - lo, mas isso é uma atividade única e eu diria que é valeu a pena. Obter Esta Página para mais detalhes. Obrigado., James
 1
Author: James Poulose, 2010-03-16 21:07:33
Para mim o SpeedTrace é a melhor ferramenta do mercado, porque não só ajuda você a encontrar estrangulamentos dentro de suas aplicações. Ele também ajuda você em cenários de solução de problemas para descobrir por que sua aplicação estava caindo, sua configuração não instalou, sua aplicação desligou, seu desempenho da aplicação às vezes é pobre, dependendo da entrada de dados, por exemplo, para identificar transações lentas db.
 1
Author: Dirk, 2010-08-07 11:31:45
Estive a testar o JustTrace da Telerik recentemente e apesar de estar muito longe de um produto acabado, os rapazes estão a ir na direcção certa.
 1
Author: Ivan Petrov, 2011-09-02 13:05:29

Se o Licenciamento é um problema, pode tentar o WINDBG para o perfil de memória

 1
Author: Vibes, 2012-02-02 17:55:45
O NuMega True Time profiler vive em DevPartner Studio por Micro Focus. Ele fornece detalhes de nível de linha e método para aplicativos.NET que requerem apenas PDBs, sem necessidade de fonte (mas ele ajuda. Ele pode discriminar entre rotinas algorítmicamente pesadas versus aquelas com longos I / O waits usando o nosso driver proprietário por thread kernel modo timing. Versão 10.5 navios com novo suporte de 64 processos em 4 de fevereiro de 2011. Shameless plug: eu trabalho na linha de produtos DevPartner. Acompanhamento em http://www.DevPartner.com para notícias do lançamento do 10.5.

Aviso: sou o Gestor de produtos da DevPartner na Micro Focus.

 1
Author: Matt Schuetze, 2012-02-13 16:23:14

Encontrei muitos problemas numa grande aplicação C# usando isto.

Normalmente o problema ocorre durante a inicialização ou o desligamento à medida que os plugins estão sendo carregados, e grandes estruturas de dados estão sendo criadas, destruídas, serializadas ou deserializadas. Muitas vezes eles são criados e inicializados mais de uma vez, e os 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 identifique os locais de chamadas do método culpado / função / propriedade.

 0
Author: Mike Dunlavey, 2017-05-23 11:47:01

Seleccionámos o teu Perfil para o. NET na minha empresa, pois era o melhor valor (preço vs. recurso). Para uma pequena empresa que quer ter licenciamento flexível (licenças flutuantes) era uma escolha perfeita - formigas era o medalhão do assento do desenvolvedor na época.

Além disso, deu-nos a capacidade de nos ligarmos ao processo em execução, o que não foi possível com o dotTrace. Cuidado embora que anexar não é a melhor opção como tudo. net vai abrandar, mas esta foi a única maneira de as aplicações profile. net começaram por outros processos. Feature wise, ANTS and dotTrace were better-but in the end YourKit was good enough.
 0
Author: Slobodan Savkovic, 2012-01-09 16:12:17

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

 0
Author: eka808, 2012-03-13 14:41:04