high_resolution_clock

high_resolution_clock (고해상도 시계)

구현이 제공하는 가장 짧은 틱 주기를 가진 시계예요. <chrono> 헤더, C++11부터.

출처: cppreference

본문

std::chrono::high_resolution_clock은 구현이 제공하는 시계 중 틱 주기가 가장 짧은(고해상도) 시계를 나타내요.

class high_resolution_clock;

주의할 점은 각 구현이 다르게 정의한다는 거예요.

  • system_clock의 별칭일 수도 있고,
  • steady_clock의 별칭일 수도 있고,
  • 세 번째의 별도 시계일 수도 있어요.

그래서 이 시계가 단조(monotonic)인지 보장되지 않아요. 플랫폼에 따라 system_clock처럼 벽시계가 되어 시간이 거꾸로 갈 수도 있어요.

auto start = std::chrono::high_resolution_clock::now();
// 작업
auto end = std::chrono::high_resolution_clock::now();

경과 시간 측정에는 단조성을 보장하는 std::chrono::steady_clock을 쓰는 게 더 안전하고 권장돼요. high_resolution_clock은 "가장 정밀하다"는 기대가 있지만 실제 고해상도·단조 보장은 steady_clock이 더 명확해요. 새 코드에서는 steady_clock을 권장해요.

더 알아보기 (Learn more)

cppreference