суббота, 25 апреля 2020 г.

Измерение времени исполнения в Golang

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

start := time.Now()
// Код для измерения
duration := time.Since(start)

// Отформатированная строка, 
// например, "2h3m0.5s" или "4.503μs"
fmt.Println(duration)

// Nanoseconds как int64
fmt.Println(duration.Nanoseconds())

Измерение вызова функции

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

func foo() {
    defer duration(track("foo"))
    // Код для измерения
}

func track(msg string) (string, time.Time) {
    return msg, time.Now()
}

func duration(msg string, start time.Time) {
    log.Printf("%v: %v\n", msg, time.Since(start))
}

Тесты производительности (бенчмарки)

Пакет testing поддерживает тестирование производительности (benchmarking), которое можно использовать для проверки производительности вашего кода.


Читайте также:


Комментариев нет:

Отправить комментарий