Часто бывает нужно подсчитать, сколько времени занимает выполнение той или иной функции. Например, когда на это повешены метрики, отдаваемые в систему алертов, или просто для себя, когда оцениваешь эффективность своего кода.
В некоторых языках, например, в Java, для этого нужно городить свой велосипед: брать UTC в милисекунда в начале, потом в конце и руками вычитать значение, переводя его потом в удобоваримую форму.
В Go учли этот момент и сделали штатный механизм.
В начале нужной функции берем время начала:
start := time.Now()
Затем выполняем все нужные действия и в конце берем время окончания:
duration := time.Since(start)
Теперь просто выводим результат:
fmt.Println(duration)
В выводе будет показана понятная всем читабельная человеком цифра в наносекундах, микросекундах, миллисекундах, секундах и так далее.