As visualizações Gráfico de Chamada de Desempenho e Detalhe do Método o ajudam a identificar as peças do seu aplicativo que consomem mais tempo. Então, você pode investigar se essas áreas de consumo de tempo podem se tornar mais eficientes. Ao analisar o código para o seu aplicativo, é útil estar ciente dos erros de codificação mais freqüentes que resultam em um desempenho ineficiente.
Computação desnecessária: Na medida em que os aplicativos se desenvolvem e os algoritmos são refinados ou na medida em que os dados são alterados, partes do código que eram necessárias nas versões anteriores podem ficar obsoletas sem serem removidas. Por causa disso, muitos programas grandes executam computações cujos resultados nunca são utilizados. Gargalos são gerados pelo tempo gasto nesse código morto.
Outras computações desnecessárias comuns são as que são feitas automaticamente ou por padrão, mesmo se não forem necessárias. Aplicativos que desnecessariamente liberam estruturas de dados durante um encerramento do programa ou abrem conexões para estações de trabalho, embora não exista um usuário para elas, são exemplos desse tipo de gargalo. Você pode criar um perfil do desempenho para localizar o tempo que é gasto no código morto. Assim que você estiver convencido de que os resultados de uma computação são inúteis, você pode remover o código.
Computação prematura: Qualquer computação que seja executada antes que exista uma necessidade de seus resultados pode gerar um gargalo. Por exemplo, pode não haver uma razão para classificar uma lista de números se o usuário não pediu que a classificação seja executada. Os dados de desempenho não podem dizer se a computação pode ser retardada; no entanto, podem dizer o custo da computação e você pode decidir se vai adiá-la.
Recomputação desnecessária: Às vezes, os programas recomputam valores necessários em vez de armazená-los em cache para uso posterior. Por exemplo, determinar o comprimento de uma cadeia constante pode resultar em computação desnecessária se a computação estiver incorporada em um loop; o comprimento da cadeia é recomputado muitas vezes, cada vez obtendo o mesmo valor. Seus dados de desempenho podem dizer onde a recomputação está ocorrendo e você pode decidir armazenar o valor depois de uma computação.
Computação ineficiente: Uma escolha inadequada de algoritmo ou de layout de estrutura de dados pode gerar trabalho extra para o programa. O desempenho inicial pode parecer aceitável, devido aos pequenos conjuntos de dados, mas pode escalar inadequadamente quando apresentado a conjuntos de dados maiores e mais complexos. A criação de perfis de desempenho pode dizer o custo de cada computação em escalas diferentes de modo que você possa prever se haverá um problema com conjuntos de dados ainda maiores. É possível utilizar algoritmos alternativos e estruturas de dados que obtêm o trabalho feito mais rapidamente.
As fugas de memória e os gargalos de encadeamento também podem degradar o desempenho. Utilize os conjuntos de criação de perfis Detecção de Fuga e Análise de Encadeamento para coletar dados para resolver esses problemas. Note que você não pode coletar dados de detecção de fuga ao mesmo tempo em que coleta outros dados de análise do tempo de execução.
Tópico pai: Visualizando e Analisando Dados de Desempenho
Tarefas relacionadas
Obtendo Informações da Visualização do Gráfico de Chamada de Desempenho
Referências relacionadas
A Visualização Detalhes do Método
A Visualização Gráfico de Chamada de Desempenho
Comandos de Dados do Gráfico de Chamada de Desempenho