C# 테크닉 - TimeCheck ( QPC )
# 특정 영역에 대해서 CPU 가동에 대한 소요 시간을 확인
> QueryPerformanceCounter 를 이용
# 소스 코드
using System.Runtime.InteropServices;
class TimeChecker
{
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(out long lpFrequency);
private long m_freq, m_st, m_ed;
public TimeChecker()
{
Reset();
}
public void Reset()
{
// 고해상도 타이머의 주기를 얻는다.
QueryPerformanceFrequency(out m_freq);
// 시작 시점의 진동수를 얻는다.
QueryPerformanceCounter(out m_st);
}
public double Elapsed_ms()
{
QueryPerformanceCounter(out m_ed);
// 소요 시간 계산
double gap = ((double)(m_ed) - (double)(m_st)) / (double)(m_freq);
return (gap * 1000.0);
}
}