Go에서 타이밍 함수 및 런타임 계산
Go에서는 시간 패키지를 활용하여 모든 기능의 런타임을 정확하게 측정하고 검색할 수 있습니다. 밀리초 단위의 값입니다. 한 가지 편리한 접근 방식은 지연 기능을 사용하는 것입니다.
Go 버전 1.x 이하에서는 다음 함수를 정의할 수 있습니다.
func trace(s string) (string, time.Time) { log.Println("START:", s) return s, time.Now() } func un(s string, startTime time.Time) { endTime := time.Now() log.Println(" END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime)) }
코드 내에서 이러한 함수를 호출할 수 있습니다.
func someFunction() { defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK")) //do a bunch of stuff here... }
defer 문을 활용하면 someFunction() 시작 시 Trace() 함수가 호출되고, un() 함수는 someFunction이 완료된 후에만 실행되도록 연기됩니다. (). 이 접근 방식은 코드 단순성을 유지하면서 정확한 런타임 로깅을 제공합니다.
제공된 코드 예제에서는 로깅 문을 사용하는데, 이는 런타임 측정의 정밀도에 약간 영향을 미칠 수 있습니다. 더 높은 정확도가 중요한 경우 로깅 오버헤드를 최소화하는 대체 기술을 실험해 보세요.
위 내용은 Go에서 'defer' 키워드를 사용하여 함수 런타임을 어떻게 측정할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!