Created by Thiago Russo
over 7 years ago
|
||
Question | Answer |
O que é "Profiling"? | Ao olhar para um problema de desempenho, a única forma real de encontrar e medindo. Normalmente, desempenho é visto como a qtde de tempo que algo demora. E isso não é o único critério de desempenho. Profiling é o processo de determinar como seu aplicativo utiliza certos recursos. Vc pode verificar, por ex, qta memória o programa usa, quais métodos estão sendo chamados, e qto tempo cada método leva para executar. Essas informações são necessárias qdo vc tem um gargalo de desempenho e quer encontrar a causa. |
Não entre em otimizações prematuras | Com desempenho, uma coisa é sempre verdade: Não entre em otimizações prematuras. Se preocupar se algum algoritmo será + rápido do q o outro algoritmo poderia ser importante, mas se vc não tiver "profiled" seu aplicativo, não vai nem saber se esse algoritmo é o gargalo de sua aplicação. Devido a isso, a orientação é para escrever o código tão simples e fácil de manter possível. Qdo vc tiver problemas de desempenho, pode usar um profiler para realmente medir qual parte do seu aplicativo está causando problemas. |
StopWatch |
Image:
Stopwatch (image/png)
|
ferramentas de profiling do VS |
Image:
Profiller (image/png)
|
Ao traçar o perfil (profilling) seus aplicativos, você tem quatro opções: | ■ CPU sampling (amostragem CPU): Esta é a opção + leve. Tem pouco efeito sobre a aplicação. Vc usa para uma pesquisa inicial para os seus problemas de desempenho. ■ Instrumentation (Instrumentação): Este método injeta código em seu arquivo compilado que captura informações de tempo para cada função que é chamada. Com instrumentação, vc pode encontrar problemas q têm a ver com entrada/saída (I / O) ou vc pode examinar rigorosamente um método particular. ■ .NET memory allocation (alocação de memória .NET): Este método interrompe/suspende seu programa cada vez q o aplicativo aloca um novo objeto ou qdo o objeto é coletado pelo coletor de lixo para te dar uma boa ideia de como a memória está sendo usado em seu programa. ■ Resource contention data (dados de contenção de recursos): Este método pode ser usado em aplicações multithreaded para descobrir por que os métodos têm q esperar para o outro antes q eles possam acessar um recurso compartilhado. |
exemplo de profiler report aplicado ao exemplo do Stopwatch |
Image:
Profiler Report (image/png)
|
Want to create your own Flashcards for free with GoConqr? Learn more.