Arquivo

Archive for the ‘Performance Explorer’ Category

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.

clip_image001

Para utilizar o assistente do Performance, clique em Launch Performance Wizard na janela Peformance Exporer.

clip_image002

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.

clip_image003

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.

%d bloggers like this: