Qual é a melhor maneira de medir o tempo de execução de uma função? [duplicado]
-
22-08-2019 - |
Pergunta
Esta questão já tem uma resposta aqui:
Obviamente, eu posso fazer e DateTime.Now.After
-. DateTime.Now.Before
mas deve haver algo mais sofisticado
Todas as dicas apreciado.
Solução
System.Environment.TickCount eo System.Diagnostics.Stopwatch classe são dois que o trabalho bem para resolução mais fina e uso simples.
Veja também:
Outras dicas
Eu definitivamente aconselhá-lo a ter um olhar para System.Diagnostics.Stopwatch
E quando eu olhei em volta para saber mais sobre Cronômetro eu encontrei este site;
Não mencionou outra possibilidade
Process.TotalProcessorTime
Use um Profiler
A sua abordagem irá funcionar, no entanto, mas se você está procurando abordagens mais sofisticadas. Eu sugiro usar um C # Profiler .
As vantagens que eles têm é:
- Você pode até obter um nível de instrução breakup
- Sem alterações necessárias em sua base de código
- Instrumentions geralmente têm muito menos sobrecarga, os resultados, por conseguinte, muito precisas podem ser obtidas.
Existem muitos disponíveis open-source também.
TickCount é bom, no entanto sugiro executando-100 ou 1000 vezes, e calcular uma média. Não só torna mais mensurável -. Em caso de muito rápido / funções curtas, mas ajuda a lidar com alguns one-off efeitos causados ??pela sobrecarga