Часто бывает нужно подсчитать, сколько времени занимает выполнение той или иной функции. Например, когда на это повешены метрики, отдаваемые в систему алертов, или просто для себя, когда оцениваешь эффективность своего кода.

В некоторых языках, например, в Java, для этого нужно городить свой велосипед: брать UTC в милисекунда в начале, потом в конце и руками вычитать значение, переводя его потом в удобоваримую форму.

В Go учли этот момент и сделали штатный механизм.

В начале нужной функции берем время начала:

Код:
start := time.Now()

Затем выполняем все нужные действия и в конце берем время окончания:

Код:
duration := time.Since(start)

Теперь просто выводим результат:

Код:
fmt.Println(duration)

В выводе будет показана понятная всем читабельная человеком цифра в наносекундах, микросекундах, миллисекундах, секундах и так далее.