Programming/C# & Unity
C# DateTime.Now 속도
장형이
2022. 7. 13. 11:20
개요
개발 중 퍼포먼스 측정을 위하여 소요 시간을 아주 잦게 해야하는 로직이 있었다.
이때 제일 익숙하게 사용하는 DateTime.Now를 사용하면 느리지 않을까 싶어서 알아 보았다.
요약
DateTime.Now > StopWatch > DateTime.UtcNow
순으로 무거우니 빠른 계산은 UtcNow를 사용하고, 정밀 계산이 필요하면 StopWatch를 사용하자.
내용
1. DateTime.UtcNow
UtcNow쪽을 살펴보면 단순히 SystemTime을 가져오는 것이 전부 인것으로 보인다.
2. StopWatch
StopWatch는 HighResoulution이 켜져있다면 좀 더 무겁고 정밀한 계산을 하고, 그게 아니라면 위의 UtcNow를 사용한다.
하지만 대부분의 경우 QPC가 깔려있어서 QPC를 사용하며 UtcNow보다 느리다고 한다.
3. DateTime.Now
Now는 UtcNow를 가져와서 Offset을 측정해서 더하는 작업을 하는데, 저 안의 함수의 내용이 OS에다가 이번 년도 정보를 요청하고 DT를 더하고 빼고하는 작업이 많아서 제일 복잡하고 느리다.
참고