우리 회사 (주)네트빌이 신문에 났습니다. 얼마전 소프트웨어 불법 사용이 적발되어 한차레 곤욕을 치른 계기로 전 직원이 정품 사용을 서약했는데… 현재 비교적 잘 지켜지고 있는 것 같습니다…^^ 기사에 난 사진은 어제 찍은 사진인데… 그날 이상하게 사장님이 디카 있는 사람을 애타게 찾으셨어요.. 제가 마침 디카가 있었는데 급하게 사진을 보내야 한다고 하셔서 다른 사람 디카로… (SD 메모리 리더기는 회사에 없어서…) 음.. 근데 사진이 이렇게 신문에 날 줄이야…. 전 이 사진 찍을때 제 자리에서 열심히 일하고 있었나봅니다… 아니면 화장실에 갔었거나…-_-;;
Category: IT 관련
High Performance Timer
Kernel32.dll의 기능을 직접 가져다 쓰는 타이머로서 0.0001ms 단위까지 정확한 시간 측정이 가능한 타이머입니다. 과거 데브피아에 올렸던 글과 소스코드를 다시 블로그에 포스트합니다..
사용 방법:
1. 아래 소스 코드를 별도의 클래스로 생성한다.
2. 타이머를 사용하는 소스 코드 상에서 HiPerfTimer MyTimer = new HiPerfTimer(); 로 인스턴스 하나를 생성한다.
3. MyTimer.Start(); 와 MyTimer.Stop(); 을 소스 코드에 삽입하고 이 두 명령줄 사이에 시간을 측정하고자 하는 내용의 코드를 삽입한다.
4. 컴파일하고 실행한다.
———————————-
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Threading;
namespace YourNameSpaceHere
{
internal class HiPerfTimer
{
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);
[DllImport("Kernel32.dll")]
private static extern bool QueryPerformanceFrequency(out long lpFrequency);
private long startTime, stopTime;
private long freq;
// Constructor
public HiPerfTimer()
{
startTime = 0;
stopTime = 0;
if (QueryPerformanceFrequency(out freq) == false)
{
// high-performance counter not supported
throw new Win32Exception();
}
}
// Start the timer
public void Start()
{
// lets do the waiting threads there work
Thread.Sleep(0);
QueryPerformanceCounter(out startTime);
}
// Stop the timer
public void Stop()
{
QueryPerformanceCounter(out stopTime);
}
// Returns the duration of the timer (in seconds)
public double Duration
{
get
{
return (double)(stopTime – startTime) / (double) freq;
}
}
}
}