Monitorando sua aplicação C# com Stopwatch

CSharp

Monitorar o tempo de execução de uma tarefa é uma necessidade comum em vários projetos, seja para identificação de problemas, geração de logs ou utilização da informação para fins de otimização.

Uma das práticas adotadas é registrar o horário de início e fim de execução da tarefa e calcular o tempo decorrido. Apesar de uma prática válida, a plataforma .NET possui a classe Stopwatch do namespace System.Diagnostics que simplifica esta atividade.

Vejamos um exemplo de uso:

 
List<Guid> guids = new List<Guid>();

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();

for (int i = 0; i < 10; i++)
{
	guids.Add(new Guid());
}

stopwatch.Stop();
Console.WriteLine($"Tempo de execução em ms: {stopwatch.Elapsed.TotalMilliseconds}");

O uso da classe Stopwatch é muito simples. Primeiro criamos uma instância que será utilizada para monitorar um conjunto de instruções. Utilizamos os métodos Start() para dar início a contagem de tempo e Stop() para o encerramento, ou seja, o bloco de código que terá a contagem de tempo ficará entre o Start() e o Stop().

Em nosso exemplo escrevemos o total do tempo decorrido por meio da propriedade Elapsed da nossa instância, que neste caso está sendo obtida em milissegundos. Em resumo nosso exemplo apresentará o tempo decorrido para preencher uma lista com 10 Guids.

Se quiser saber mais sobre a classe Stopwatch sugiro dar uma olhada em https://learn.microsoft.com/pt-br/dotnet/api/system.diagnostics.stopwatch?view=net-8.0.