Go에서 경과 시간을 계산하려면 다음을 사용할 수 있습니다.
start := time.Now() // long time consuming task duration := time.Since(start)
하지만 Go의 시간 패키지에는 실제로 두 개의 시간이 포함되어 있고 time.Since()는 실제로 실시간(벽시계)이 아닌 처리 시간(단조 시계)만 측정한다는 것을 알고 계십니까?
예를 들어 작업이 꽤 길고 밤새도록 진행되어 컴퓨터가 절전 모드로 전환된 경우입니다. 그러다가 아침에 오시면 총 10시간이 지나서 4시간만 지속되는 것을 보실 수 있습니다.
Go의 시간 패키지에는
운영 체제는 시계 동기화를 위해 변경될 수 있는 "벽시계"와 그렇지 않은 "단조 시계"를 모두 제공합니다. 일반적인 규칙은 벽시계는 시간을 알려주기 위한 것이고 단조로운 시계는 시간을 측정하기 위한 것입니다.
위의 예에서 실제로 알 수 있는 것은 프로그램이 4시간 동안 활발하게 실행되었지만 컴퓨터는 6시간 동안 절전 모드이므로 총 10시간을 기다렸다는 것입니다. 컴퓨터가 잠들지 않았다면 4시간 안에 완료되었을 것입니다.
그럼 월타임을 측정하고 싶다면 어떻게 해야 할까요? Round(0) 함수를 사용할 수 있습니다. t = t.Round(0)는 t.
에서 단조 시계를 제거합니다.부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3