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