Profiling consiste em um mecanismo de analise detalhada de alguns aspectos especificos de sua aplicacao, como o consumo de memoria ou performance. O profiling e' feito atraves de ferramentas de profiling, cujo funcionamento mais comum consiste na extracao de informacoes de seu programa durante a execucao para a posterior exibicao de um relatorio, por muitas vezes bastante rico e complexo.
Estive analisando nesses dias algumas ferramentas de profiling para .NET. Neste post, destaco duas:
- CLR Profiler: ferramenta free da propria Microsoft. Infelizmente, ela e' focada apenas em profiling de memoria, mostrando como se deu a alocacao do heap durante a execucao do programa. E' possivel identificar facilmente os metodos que estao consumindo mais memoria, atraves de um grafo de chamadas (call graph) montado pela ferramenta. Acho que essa e' uma ferramenta obrigatoria para a "caixa de ferramentas" de qualquer desenvolvedor, principalmente pelo fato de ser free e permitir uma analise bem legal de quanto o seu programa anda "guloso". Mais detalhes no Patterns & Practices:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenethowto13.asp- AutomatedQA AQTime .NET Edition: na minha opiniao, essa e' a mais completa ferramenta de profiling existente. Ela permite a especificacao de diferentes tipos de profiling (memoria, performance, independencia de plataforma, etc.) e definicao do escopo da aplicacao a ser submetida ao profiling. Seus relatorios sao extremamente ricos, permitindo rapidamente identificar o gargalo de uma aplicacao. Ela acompanha exemplos na forma de tutoriais, que sao bastante amigaveis e, entra outras funcionalidades, se integra como um add-in ao VS.NET. O profiling pode ser feito tanto para aplicacoes WinForms, aplicacoes ASP.NET como servicos. Infelizmente, essa ferramenta e' paga, mas voce pode baixar seu demo (que deixa de executar depois de um certo tempo) em
http://www.automatedqa.com/downloads/aqnet.asp.
Bom profiling!
[]s
-- AFurtado