Análise de Performance Visual Studio (Alternativo ao Yourkit)

Objetivo

Este documento tem por objetivo mostrar a utilização do Performance Profiler do Visual Studio para analisar performance da aplicação. Tal procedimento é um alternativo ao Yourkit.

Passos

Primeiramente é necessário abrir a solution do produto.

Após abrir a solution acessar o menu Analyse | Performance Profiler...

Será aberta uma nova aba, a partir dela acessar Change Target | Executable. Feito isso clique em Start.

 

Selecione a opção Instrumentation e clique em Next. Após isso será exibido os projetos da aplicação, deixe selecionado One or more avaliable projects e clique em Next.

 

Agora informe o caminho do que quer analisar RM.exe ou RM.Host.exe no campo Executable path e clique em Next. Deixe marcado o item Lanch profiling after the wizard finishes e clique em Finish.

 

Feito isso, a solution será compilada e após isso o profiler irá iniciar o exe que selecionou para executar, no nosso caso foi o RM.Host.exe. 

Após ele iniciar será necessário executar o RM.exe e executar o processo que deseja avaliar a performance.

 

Após executar o processo que deseja avaliar, clique em Stop profiling. Após parar o profiler será aberta a tela do diagnóstico conforme abaixo.

Para verificar as chamadas que foram feitas clique na caixa de seleção Current View | Call Tree

É apresentada algumas colunas por padrão, sendo as mais relevantes as mencionadas abaixo:

Entretanto é possível incluir as colunas Elapsed Inclusive Time (%)Elapsd Exclusive Time (%) em milissegundos para uma melhor análise. Para isso bastar clicar com botão direito em cima das colunas e ir em Add/Remove Columns e selecione conforme abaixo as colunas Elapsed Inclusive Time Elapsed Exclusive Time e clique em OK.

 

Feito isso a visão ficará da seguinte forma:

A partir daí é abrir a árvore e efetuar a análise.

Exemplo

Segue a seguinte árvore que salva o log em uma tabela, onde é gerado o autoinc pelo método GetIdLogNota().

Fazendo análise é verificado que foi executado 9 vezes e gastou o tempo total de 610,04 milissegundos.