РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
730 of 1593 menu

Функция time.Since

Функция time.Since возвращает время, прошедшее с заданного момента времени до текущего. В качестве единственного параметра она принимает значение типа time.Time и возвращает результат типа time.Duration. Эта функция является удобной альтернативой вызову time.Now().Sub(t) и часто используется для измерения времени выполнения операций.

Синтаксис

time.Since(t)

где t - момент времени, с которого нужно отсчитать прошедшее время.

Пример с измерением времени выполнения

package main import ( "fmt" "time" ) func main() { start := time.Now() time.Sleep(2 * time.Second) elapsed := time.Since(start) fmt.Println(elapsed) }

Результат выполнения кода:

"2.001234567s"

В этом примере мы фиксируем время начала операции, выполняем задержку в 2 секунды, а затем с помощью time.Since вычисляем фактическое прошедшее время.

Пример с различными операциями

package main import ( "fmt" "time" ) func main() { start := time.Now() // Имитация работы sum := 0 for i := 0; i < 1000000; i++ { sum += i } elapsed := time.Since(start) fmt.Println("Время выполнения цикла:", elapsed) time.Sleep(100 * time.Millisecond) elapsed2 := time.Since(start) fmt.Println("Общее время:", elapsed2) }

Результат выполнения кода:

"Время выполнения цикла: 2.345ms" "Общее время: 102.456ms"

Здесь мы измеряем время выполнения вычислений и затем добавляем задержку, чтобы увидеть разницу между промежуточным и общим временем.

Преобразование в различные единицы измерения

package main import ( "fmt" "time" ) func main() { start := time.Now() time.Sleep(1500 * time.Millisecond) elapsed := time.Since(start) fmt.Println("Наносекунды:", elapsed.Nanoseconds()) fmt.Println("Микросекунды:", elapsed.Microseconds()) fmt.Println("Миллисекунды:", elapsed.Milliseconds()) fmt.Println("Секунды:", elapsed.Seconds()) fmt.Println("Минуты:", elapsed.Minutes()) }

Результат выполнения кода:

"Наносекунды: 1500123456" "Микросекунды: 1500123" "Миллисекунды: 1500" "Секунды: 1.500123456" "Минуты: 0.0250020576"

Полученную продолжительность можно преобразовать в различные единицы измерения с помощью методов типа time.Duration.

Смотрите также

  • функцию time.Until,
    которая вычисляет время до указанного момента
  • метод time.Time.Sub,
    который вычисляет разницу между двумя моментами времени
  • функцию time.Now,
    которая возвращает текущее время
  • тип time.Duration,
    который представляет собой интервал времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить