Arquivo
Performance Explorer – VS2010 – Instrumentation
Dando sequencia ao artigo sobre o Performance Explorer, vou demonstrar como utilizar o método de Instrumentação.
O método de instrumentação é utilizado para verificar o delta de tempo na execução dos métodos, classes, módulos e outros.
Este método é muito útil para identificar problemas de performance do seu sistema ou até mesmo para identificar quais métodos estão sendo executado muitas vezes talvez de forma desnecessária.
Avaliaremos com Performance Explorer a aplicação criada no post anterior.
Abra o projeto e clique em Launch Performance Wizard, selecione a opção Instrumentation, e clique em Next. (Conforme já foi descrito no post anterior)
A seguinte tela irá apresentar 4 opções para ajudar você a analisar o projeto.
One or more avaliable projecs: Esta opção permite você analisar os projetos da solução atual.
An executable (.EXE files): Permite você analisar um executáveis que foram criados utilizando o .NET Framework.
An ASP.NET or JavaScript application: Permite você analisar páginas web que foram criados utilizando o .NET Framework.
A dynamica-link library (.DLL files): Permite você analisar dll´s que foram criados utilizando o .NET Framework.
Avance para a próxima etapa, e finalize a operação mantendo selecionada a opção.
A partir de este ponto o Visual Studio executar a sua aplicação ao mesmo tempo em que faz a análise de performance do seu projeto.
A tela inicialmente disponibilizada é de resumo da análise (Summary). Nesta tela pode ter algumas informações importantes para serem analisada.
No relatório principal existe uma sessão chamada Hot Path que indica
qual é a maior sequencia de chamada de métodos em profundidade, em outras palavras, qual sequencia de métodos criou a maior pilha.
Existe a sessão Functions Doing Most Individual Work, que permite que você veja quais são as funções/métodos que estão com o maior percentual de trabalho de um range específico, que no caso é a execução da aplicação por completo.
Caso você clique em algum método apresentado pelas duas sessões descritas acima, será apresentado para você à tela Function Details que explicarei no próximo artigo.
Outra sessão muito útil é o gráfico que fica na parte superior da tela. Este gráfico demonstra o percentual de utilização da CPU em relação ao tempo de execução do projeto. Se você selecionar uma área do gráfico (clicando e arrastando) e clicar em Filter by selection, o visual studio irá filtrar o Hot Path e o Funtion Doing Most Individual Work para demonstrar apenas os métodos executados dentro da seleção que você fez no gráfico.
E por enquanto é isso. Neste artigo aprendemos a utilizar o Performance Explorer, utilizando a análise Instrumentation. Conseguindo com isso verificar quais métodos estão com maior percentual de trabalho e quais pilhas de sequencia de métodos estão com o maior tamanho. Após ser feita esta análise, você já tem uma ideia de por onde você deve começar a refatorar o seu código.
No próximo post vou explicar como utilizar a Current View – Function Details
Até a próxima, e espero que o post seja útil.
Performance Explorer – VS2010 – Introdução
Nas versões Ultimate e Premium do Visual Studio 2010 possuem algumas ferramentas muito úteis para verificar o desempenho de suas aplicações.
Para acessar estas funcionalidades você precisa exibir a janela do Performance Explorer, para fazer isso clique no menu View > Other Windows > Performance Explorer.
Para utilizar o assistente do Performance, clique em Launch Performance Wizard na janela Peformance Exporer.
A partir do Wizard, você pode utilizar quatro métodos para diagnosticar diversos problemas de performance. Segue abaixo os possíveis métodos de avaliação do seu fonte.
CPU Sampling: Permite você verificar o processamento e overhead de Cpu.
Instrumentation: Permite você verificar tempo de execução de cada método assim como a quantidade de vezes que ele é chamado.
.NET Memory Allocation: Permite você verificar a alocação de memória do seu projeto.
Concurrency: Permite que você valide a execução de threads, se elas estão em espera por algum motivo.
Para começarmos os testes crie um projeto do tipo Console Application conforme o fonte abaixo.
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Loop(); Console.WriteLine("Fim"); ChamaLoop2(); Console.WriteLine("Fim2"); } public static void Loop() { Thread.Sleep(new TimeSpan(0, 0, 5)); return; } private static void ChamaLoop2() { Loop(); Loop(); } } }
Nesta aplicação existem dois métodos: Loop, que deixa a thread em espera por 5 segundos e o método ChamaLoop2 que tem duas chamadas ao método Loop.
E por enquanto é isso. Esta foi apenas uma introdução, nos próximos artigos descreverei como usar cada um dos métodos de avaliação a partir desta aplicação console.
Até a próxima.