steady_clock
steady_clock (단조 시계)
경과 시간을 재는 데 적합한 단조 증가(monotonic) 시계예요. <chrono> 헤더, C++11부터.
출처: cppreference
본문
std::chrono::steady_clock은 절대 시각으로는 사용할 수 없고, 경과 시간 측정에 적합한 시계예요.
class steady_clock;
특징을 정리하면:
- 단조(monotonic): 시간이 절대 거꾸로 가지 않아요(감소하지 않음).
- 균일(tick 고정): 시스템 시계(
system_clock)와 달리 사용자가 벽시계를 바꿔도 영향을 받지 않아요. - TrivialClock 요구사항을 만족해요.
auto start = std::chrono::steady_clock::now();
// 작업 수행
auto end = std::chrono::steady_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
// 경과 시간
system_clock이 "달력/벽시계 시각(epoch 기반)"이라면, steady_clock은 "측정용 단조 시계"예요. 코드 성능 측정이나 setTimeout류의 경과 시간 계산에 적합해요. 달력 시간을 다루려면 system_clock을 써야 해요.