Golang 코드 실행 시간 측정

1960 단어 Golang

Golang 코드 실행 시간 측정


실제 개발에서는 코드 세션이나 업무 함수를 포함한 코드 성능을 평가해야 한다.본고는 Golang 코드의 실행 시간을 어떻게 측정하는지 간결하면서도 실용적이다.

1. 코드 세션 실행 시간

time.Now()time.Since()를 사용하여 코드 세션의 실행 시간을 측정합니다.
package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println("     Golang           ")
	fmt.Println("")

	start := time.Now()

	//measuring the durration of the for loop
	for index := 0; index < 10; index++ {
		time.Sleep(500 * time.Millisecond)
	}
	elapsed := time.Since(start)
	fmt.Printf("The `for` loop took %s", elapsed)
}

상기 예시에서 10회 반복하고 매번 500밀리초 동안 수면을 취하며 복잡한 임무를 시뮬레이션한다.
출력은 다음과 같습니다.
     Golang           

The `for` loop took 5.000286s

500밀리초씩 10회 순환하며 총 시간은 약 5초가 넘는다.

2. 함수 실행 시간


함수 실행 시간을 측정하기 위해서, 우리는 전문 함수를 만들어서 실행 시간을 측정하고, 업무 코드와 분리하여 복용성을 높인다.실행 작업이 시작될 때 defer 를 사용하고 함수가 실행되기 전에 실행 시간 함수를 호출합니다.
package main

import (
	"fmt"
	"time"
)

func timeMeasurement(start time.Time) {
	elapsed := time.Since(start)
	fmt.Printf("Execution time: %s", elapsed)
}

func workerFunction() {
	fmt.Println("Running 'workerFunction' function")
	for index := 0; index < 10; index++ {
		time.Sleep(500 * time.Millisecond)
	}
}

func main() {
	fmt.Println("Function time measurement Golang Example")
	fmt.Println("")

	defer timeMeasurement(time.Now())
	workerFunction()
}

물론 defer timeMeasurement(time.Now())workerFunction 함수체의 시작 위치에 놓을 수 있으며, 업무 코드에 침입하지 않기 위해 우리는 실행되기 전의 위치에 놓을 수 있다.출력은 다음과 같습니다.
  Golang         

Running 'workerFunction' function
Execution time: 5.0032861s

3. 요약


본고는 Golang이 실행 시간을 평가하는 방법을 소개했는데 코드 세션과 함수의 실행 시간을 포함한다.주로 defer 키워드를 사용하여 지연 메커니즘을 실현하고 실행 완료의 전진을 확보하며 실행 시간을 계산합니다.

좋은 웹페이지 즐겨찾기