Entender os métodos de coleta de desempenho do criador de perfil

Este documento descreve os métodos de coleta de dados utilizadas pelas ferramentas no Criador de Perfil de Desempenho do Visual Studio.

amostragem

A amostragem coleta dados estatísticos sobre o trabalho executado por um aplicativo durante a criação de perfil e é um bom ponto de partida para encontrar áreas para acelerar seu aplicativo. Em intervalos especificados, o método de Amostragem coleta informações sobre as funções que estão em execução em seu aplicativo. A coleta de dados é feita coletando informações sobre o aplicativo em um intervalo regular ou frequência de amostragem, como cada milissegundo. Os dados coletados são analisados para criar um modelo de onde o tempo foi gasto no aplicativo. Se você precisar de medidas precisas dos tempos de chamada ou estiver procurando problemas de desempenho em um aplicativo pela primeira vez, talvez queira usar a amostragem.

A amostragem tem menos precisão no número de chamadas, mas é de baixo custo para o criador de perfil e tem pouco efeito sobre a execução do aplicativo que está sendo perfilado. As ferramentas no Criador de Perfil de Desempenho que utilizam o método de amostragem incluem a ferramenta Uso da CPU.

Depois de concluir a coleta de dados, a ferramenta Uso da CPU analisa os dados capturados e exibe o relatório.

Rastreamento

O rastreamento fornece informações melhores sobre a frequência com que um método foi executado. Se você precisar de medidas precisas de números de chamada, use rastreamento. O rastreamento pode ter um impacto maior no desempenho do código durante a coleta, mas a amostragem tem apenas uma pequena sobrecarga. Além disso, o rastreamento pode ser mais lento para ser analisado porque leva mais tempo para exibir os dados após a coleta.

Instrumentação

A criação de perfil de instrumentação coleta informações detalhadas sobre o trabalho executado por um aplicativo durante uma execução de criação de perfil. A coleta de dados é feita por ferramentas que injetam código em um arquivo binário que faz a captura de informações de tempo ou usa ganchos de retorno de chamada para coletar e emitir informações exatas de tempo e contagem de chamadas enquanto um aplicativo é executado. O método de instrumentação tem uma alta sobrecarga quando comparado a abordagens baseadas em amostragem. As ferramentas no Criador de Perfil de Desempenho que usam instrumentação incluem as ferramentas de Instrumentação e a ferramenta de Alocação de Objeto do .NET.

Amostragem versus instrumentação

O valor da amostragem é que ela tem menos sobrecarga e, por esse motivo, é mais provável que seja estatisticamente representativa do aplicativo em execução na produção. O valor da criação de perfil de instrumentação é que você pode obter contagens exatas de chamadas sobre quantas vezes suas funções foram chamadas. Isso fornece informações muito mais detalhadas do que a amostragem normal, o que pode distorcer o tempo gasto em alguns cenários. Por exemplo, funções sem muito desempenho, mas chamadas com frequência, aparecerão mais do que em um cenário do mundo real.

Com a instrumentação, cada chamada de função selecionada em seu aplicativo é anotada e instrumentada para que, quando for invocada, ela seja adicionada ao rastreamento juntamente com informações sobre o chamador. Com a amostragem, a execução da pilha de chamadas atual é sondada da CPU em um intervalo e, em seguida, cada quadro é adicionado ao rastreamento.