Medindo o tempo de execução de um aplicativo em Go

Go tem uma performance fantástica, mas é preciso ter certeza que seu aplicativo está sendo executado no menor tempo possível. Principalmente quando se trabalha em cenários com cobrança por tempo de execução, como Serverless.

Para calcular o tempo de execução, utilizaremos a biblioteca time e as funções time.Now() e time.Since().

start := time.Now()

// Código

tempoExecucao := time.Since(start)
fmt.Printf("Tempo de execução: %s \n", tempoExecucao)

A função time.Now() recupera a data atual e time.Since() o intervalo entre uma data, no caso a data de início da execução e exibe o intervalo de tempo com a função fmt.Printf.

Outra forma de medir a execução é subtraindo a data de início da data de término da execução.

start := time.Now()

// Código

end := time.Now()
tempoExecucao := end.Sub(start)

fmt.Printf("Tempo de execução: %s \n", tempoExecucao)

Nesse exemplo utilizamos a função time.Now() para obter a data de execução no início e no final do código e para obter o tempo de execução, subtraimos a data de término da data de início com a função time.Sub().

Referências
https://coderwall.com/p/cp5fya/measuring-execution-time-in-go
https://pkg.go.dev/time