Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
What makes <CODE>cheap_<WBR>steady_<WBR>clock</CODE> faster than <CODE>std::<WBR>chrono::<WBR>high_<WBR>resolution_<WBR>clock</CODE>? 섬네일

What makes <CODE>cheap_<WBR>steady_<WBR>clock</CODE> faster than <CODE>std::<WBR>chrono::<WBR>high_<WBR>resolution_<WBR>clock</CODE>?

Microsoft Developer faviconMicrosoft Developer·Architecture·
CPPChronoHigh Resolution ClockQuery Performance CounterGet Tick Count
2025년 10월 22일0

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

Microsoft Developer의 글은 std::chrono의 고해상도 시계가 사실상 steady_clock로 구현되며, QueryPerformanceCounter의 복잡한 경로와 GetTickCount64의 단순 경로를 비교합니다. 고해상도가 필요 없으면 GetTickCount64가 더 빨라질 수 있다는 점에 주목합니다.

구현 방법

  • QueryPerformanceCounter는 하드웨어 타임스탬프 신뢰성, VM 여부, 에뮬레이션 여부 등에 따라 알고리즘이 달라지며 커널 호출이 필요할 수 있습니다.
  • GetTickCount64는 커널에서 주기적으로 업데이트되는 두 64비트 값을 메모리에서 읽고 시작 시의 변환 계수를 곱하는 방식으로 구현되어, 대체로 더 간단하고 빠릅니다.
  • 서브밀리초 정밀도 계산은 결국 ms로 변환되므로 필요성이 낮고, Sleep 등에서 효과가 큽니다.
  • 정확도는 보통 10~50ms 수준이며, timeBeginPeriod(1)로 1ms 설정 가능성도 언급됩니다.

주요 결과

  • GetTickCount64 경량 경로가 일반적으로 더 빠르며, 고해상도 필요 없을 때 유리합니다.
  • 성능 차이는 시스템 구성에 따라 달라질 수 있습니다.
  • ms 기반 시간 측정 선택이 전체 성능에 큰 영향을 줄 수 있습니다.

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
Upgrading C++ Projects to Visual Studio 2026 섬네일
56%

Upgrading C++ Projects to Visual Studio 2026

Microsoft Developer faviconMicrosoft Developer·2025년 10월 30일
Why does <code>SHFormat­Date­Time</code> take an unaligned <code>FILETIME</code>? 섬네일
55%

Why does <code>SHFormat­Date­Time</code> take an unaligned <code>FILETIME</code>?

Microsoft Developer faviconMicrosoft Developer·2025년 11월 03일
How can I detect that Windows is running in S-Mode, redux 섬네일
55%

How can I detect that Windows is running in S-Mode, redux

Microsoft Developer faviconMicrosoft Developer·2025년 11월 17일