Demonstra Passo a passo: Aplicativos de criação de perfil

Esta explicação passo a passo demonstra como criar o perfil de um aplicativo para identificar problemas de desempenho.

Esta explicação passo a passo, você navegará por meio do processo de criar o perfil de um aplicativo gerenciado e a utilização de amostragem e instrumentação para isolar e identificar problemas de desempenho no aplicativo.

Nesta explicação passo a passo, você irá executar estas etapas:

  • O perfil de um aplicativo usando o método de amostragem.

  • Analisar amostras de resultados de perfil para localizar e corrigir um problema de desempenho.

  • O perfil de um aplicativo usando o método de instrumentação.

  • Analisar perfil instrumentado e resultados para localizar e corrigir um problema de desempenho.

Pré-requisitos

Para trabalhar com as informações fornecidas pelo perfil, é melhor ter informações de símbolo disponíveis de depuração.

Criação de perfil usando o método de amostragem

Amostragem é um método de perfilação pelo qual o processo em questão é monitorado periodicamente para determinar a função ativa. Os dados resultantes fornecem um contador de freqüência da função em questão que estava na parte superior da Pilha de Chamadas quando o processo foi amostrado.

Para criar o perfil de um aplicativo usando o método de amostragem

  1. Abrir Visual Studio com privilégios de administrador. Executando como administrador é necessário para a criação de perfil.

  2. Abra a solução de PeopleTrax.

    A solução de PeopleTrax agora preenche o Solution Explorer.

  3. Defina a configuração de configuração do projeto Release.

    Você deve usar uma versão de compilação para detectar problemas de desempenho em seu aplicativo. Uma versão de compilação é recomendado para a criação de perfil porque uma compilação de depuração tem informações adicionais compiladas em ela que podem afetar negativamente o desempenho e não ilustrar os problemas de desempenho com precisão.

  4. Sobre o Analyze menu, clique em Iniciar o Assistente de desempenho.

    O Performance Wizard aparece.

  5. Certifique-se de (Recomendado) de amostragem de CPU está selecionada e clique em próximo.

  6. Em qual aplicativo você deseja como destino para criação de perfil, selecione PeopleTrax e, em seguida, clique em próximo.

    Visual Studioconstrói o projeto e começa a criar o perfil da aplicação. O PeopleTrax janela do aplicativo é exibida.

  7. Clique em obter pessoas.

  8. Clique em Exportar dados.

    O bloco de notas abre e exibe um novo arquivo que contém os dados exportados do PeopleTrax.

  9. Feche o bloco de notas e feche PeopleTrax aplicativo.

    O profiler gera um arquivo de dados (*.vsp) a criação de perfil, lista o nome de arquivo na seção Reports da janela do Explorer de desempenho e carrega automaticamente o Resumo o modo de exibição do arquivo de dados na janela principal do Visual Studio.

Para analisar os resultados de criação de perfil amostra

  1. O modo de exibição de resumo exibe uma linha de tempo com a utilização da CPU no decorrer da criação de perfil executa, o Hot Path lista que representa a ramificação da árvore de chamada do aplicativo que foi mais ativo e uma lista da Funções fazendo mais trabalho Individual que mostra as funções que foram amostradas mais intensamente durante a execução de código no corpo de sua própria função.

    Examine o Hot Path lista e observe que o método PeopleNS.People.GetNames é a função de PeopleTrax mais próxima ao final da lista. Sua posição faz um bom candidato para análise. Clique no nome da função para exibir detalhes do GetNames na Detalhes da função modo de exibição.

  2. O Detalhes da função modo de exibição contém duas janelas. A janela de distribuição de custo fornece uma exibição gráfica do trabalho feito pela função, o trabalho feito pelas funções que ela chamou e a contribuição de funções que chamaram a função para o número de instâncias que foram amostradas. Você pode alterar a função que é o foco do modo de exibição clicando em um nome de função. Por exemplo, clique em PeopleNS.People.GetPeople para fazer GetPeople a função selecionada.

    O o modo de exibição de código de função janela mostra o código-fonte para a função se ela estiver disponível e realça as linhas mais caras na função selecionada. Quando GetNames estiver selecionada, você pode ver que esta função lê uma seqüência de caracteres de recursos de aplicativo e, em seguida, usa um StringReader para adicionar cada linha na seqüência de caracteres para um ArrayList. Não há nenhuma maneira óbvia para otimizar essa função.

  3. Como o PeopleNS.People.GetPeople é o chamador apenas de GetNames, clique em GetPeople na janela de distribuição de custos para examinar seu código. Esse método retorna um ArrayList de objetos de personinformationns.personinformation dos nomes de pessoas e empresas produzidas pela GetNames. No entanto, o GetNames é chamado duas vezes sempre que um objeto PersonInformation é criado. Você pode ver que o método pode ser facilmente otimizado através da criação de listas de apenas uma vez no início do método e indexação nessas listas durante o loop de criação de PersonInformation.

  4. Uma versão alternativa de GetPeople é fornecida com o código do aplicativo de exemplo e você pode chamar a função otimizada, adicionando um símbolo de compilação condicional para as propriedades de compilação. Na janela Solution Explorer, clique com o botão direito no projeto de pessoas e, em seguida, clique em Propriedades. Clique em Build no menu da página de propriedade e, em seguida, digite OPTIMIZED_GETPEOPLE na caixa de texto do compilação condicional do símbolo. A versão otimizada GetPeople substitui o método original na próxima compilação.

  5. Execute novamente a sessão de desempenho. Na barra de ferramentas Performance Explorer, clique em Iniciar com a criação de perfil. Clique em Obter pessoas e, em seguida, clique em Exportar dados. Feche a janela do bloco de notas que aparece e, em seguida, feche o aplicativo de Trax de pessoas.

    É gerado um novo arquivo de dados de criação de perfil e um Resumo exibir para os novos dados aparecem no Visual Studio janela principal.

  6. Para comparar dois fluxos de criação de perfil, selecione os arquivos de dados de duas no Performance Explorer, os arquivos com o botão direito e, em seguida, clique em Comparar relatórios de desempenho. Uma janela de relatório de comparação aparece no Visual Studio janela principal. O Delta coluna mostra a alteração no valor do desempenho das funções do que o anterior Baseline o valor para a posterior comparação valor. Você pode selecionar os valores para comparar a partir de coluna lista suspensa. Selecione % de Amostras inclusivas.

    Observe que os métodos GetPeople e GetNames mostram ganhos de desempenho considerável.

Criação de perfil usando o método de instrumentação

Instrumentação é um método de criação de perfil no qual o profiler insere as funções de teste especialmente projetadas versões dos binários do perfil. As provas de coletam informações de temporização na entrada e saída das funções nos módulos instrumentados e no site de chamada todas essas funções. O processo de instrumentação é útil para investigar problemas relacionados a operações de entrada/saída, como gravar em disco e se comunicando através de uma rede. Instrumentação fornece informações mais detalhadas de amostragem, mas é mais intrusivo na execução do processo e provoca uma quantidade maior de sobrecarga. Binários instrumentados também são maiores do que o debug ou release binários e não são destinados a implantação.

Esta seção da explicação, usaremos o método de instrumentação para descobrir mais código que podemos otimizar o aplicativo de PeopleTrax que analisamos anteriormente. Usando o filtro da linha do tempo de exibição de resumo, nos concentraremos nossa análise no cenário de exportação de dados em nosso aplicativo perfilado no qual a lista de pessoas é gravada em um arquivo de bloco de notas.

Para criar o perfil de um aplicativo existente usando o método de instrumentação

  1. Se necessário, abra o aplicativo de PeopleTrax em Visual Studio.

    Certifique-se de que você está executando como administrador e se a configuração de compilação para a solução está definida como Release.

  2. No Performance Explorer, clique em instrumentação.

  3. Na barra de ferramentas Performance Explorer, clique na Iniciar com a criação de perfil.

    O profiler constrói o projeto e inicia o perfil da aplicação. Aparece a janela do aplicativo PeopleTrax.

  4. Clique em obter pessoas.

    A grade de dados de PeopleTrax é preenchida com dados.

  5. Aguarde cerca de 10 segundos e, em seguida, clique em Exportar dados.

    O bloco de notas inicia e exibe um novo arquivo que contém uma lista de pessoas de PeopleTrax. Identificar mais facilmente os dados aguardando permite exporta o procedimento de filtragem.

  6. Fechar o bloco de notase então feche PeopleTrax aplicativo.

    Visual Studiogera um relatório de sessão de desempenho (*.vsp).

Para analisar os resultados de criação de perfil instrumentados

  1. Gráfico de linha de tempo a Resumo o modo de exibição do relatório mostra a utilização de CPU do programa ao longo da duração do perfil de execução. A operação de exportação de dados deve ser o grande pico ou o limite no lado direito do gráfico. Podemos pode filtrar a sessão de desempenho para exibir e analisar os dados coletados na operação de exportação. Clique à esquerda do ponto no gráfico onde começa a operação de exportação de dados. Clique novamente para o lado direito da operação. Em seguida, clique em Filtrar por seleção na lista de links à direita da linha da tempo.

    O Hot Path árvore mostram que a Concat que é chamado pelo método de PeopleTrax.Form1.ExportData do método consome uma grande porcentagem do tempo. Porque System.String.Concat também está na parte superior a Funções com mais trabalho Individual lista, reduzindo o tempo gasto na função é um ponto de probabilidade de otimização.

  2. Clique duas vezes em System.String.Concat em uma das tabelas de resumo para obter mais informações no modo de exibição de detalhes da função.

  3. Você pode ver que o PeopleTrax.Form1.ExportData é o único método que chama Concat. Clique em PeopleTrax.Form1.ExportData na Chamando funções lista, selecione o método é como o destino do modo de exibição de detalhes da função.

  4. Examine o método na janela de visualização de código de função. Observe que não há nenhuma chamada de literal para System.String.Concat. Em vez disso, há vários usos do operando + =, que o compilador substitui com chamadas para System.String.Concat. Quaisquer modificações para uma seqüência de caracteres a.NET Framework causar uma nova seqüência de caracteres a ser alocada. A.NET Framework inclui um StringBuilder que é otimizado para concatenação de seqüência de caracteres de classe

  5. Para substituir a área do problema com o código otimizado, adicione ao projeto de PeopleTrax OPTIMIZED_EXPORTDATA como um símbolo de compilação condicional.

  6. No Solution Explorer, clique com o botão direito no projeto PeopleTrax e clique em Propriedades.

    Aparece o formulário de propriedades do projeto PeopleTrax.

  7. Clique na guia Build.

  8. No Os símbolos de compilação condicional caixa de texto, digite OPTIMIZED_EXPORTDATA.

  9. Feche o formulário de propriedade do projeto e escolha Salvar todos os quando for solicitado.

Quando você executa o aplicativo novamente, você verá marcadas melhorias no desempenho. É recomendável que você execute a sessão de criação de perfil novamente, mesmo que haja melhorias de usuário visível no desempenho. É importante analisar os dados depois de corrigir um problema porque o primeiro problema pode obscurecer algum outro problema.

Consulte também

Referência

/ /Z7, /Zi, /ZI (formato informações de depuração)

Conceitos

Guia de introdução com ferramentas de criação de perfil

Outros recursos

Visões gerais (ferramentas de criação de perfil)