티스토리 뷰
Visual Studio 2012 사용
Performance Counter를 사용해 함수나 코드의 속도를 좀 더 정확히 측정해보자.
GetTickCount()보다 정확하다.
Performance Counter란?
- OS나 어플리케이션, 서비스, 드라이버가 잘 실행되고 있는지를 나타내는 정보에 사용하는 카운터를 의미함
이 카운터로 Performance Counter Frequency라는 주파수에 따라 1초당 진행되는 틱 수 계산하여 속도를 측정하는 방식을 말한다.
우리가 사용할 함수는 QueryPerformanceFrequency()와 QueryPerformanceCounter()이다.
1. 함수 설명
1) QueryPerformanceFrequency 함수 원형
BOOL WINAPI QueryPerformanceFrequency( _Out_ LARGE_INTEGER *lpFrequency );
파라미터:
lpFrequency: 현재 performance counter 주파수의 포인터를 반환한다.
2) QueryPerformanceCounter 함수 원형
BOOL WINAPI QueryPerformanceCounter( _Out_ LARGE_INTEGER *lpPerformanceCount );
파라미터:
lpPerformanceCount: 현재 performance counter의 값을 포인터로 반환한다.
2. 활용
main.cpp
{ LARGE_INTEGER Frequency; LARGE_INTEGER BeginTime; LARGE_INTEGER Endtime; __int64 elapsed; double duringtime; //프로그램이나 클래스 시작부분에 QueryPerformanceFrequency( &Frequency ); //사용하고자 하는 부분에 다음 코딩 QueryPerformanceCounter( &BeginTime ); ////////////////////////////// //프로그램 코드 ////////////////////////////// QueryPerformanceCounter( &Endtime ); elapsed = Endtime.QuadPart- BeginTime.QuadPart; duringtime = (double)elapsed / (double)Frequency.QuadPart; duringtime *=1000; //ms로 변환 }
QueryPerformanceFrequency( &Frequency ) 구문은 CPU 주파수에 따른 1초당 진행되는 틱수를 나타낸다. 변동이 없어서 한번만 읽어주면 된다.
검사할 프로그램 시작 전에 BeginTime으로, 프로그램 코드 이후에 EndTime으로 PerformanceCounter를 입력 받는다.
두 개의 차이를 주파수 값으로 나눠주면 속도 측정 가능하다.
duringtime 이 마이크로 초 이기에 1000을 곱해 ms로 변환한다.
끝
'Programming > MFC(C++)' 카테고리의 다른 글
[MFC] 시리얼 통신을 해보자 - 1. 통신 연결 (0) | 2019.01.03 |
---|---|
[MFC] 이벤트를 사용해보자 CreateEvent, SetEvent, ResetEvent (0) | 2019.01.03 |
[MFC] ON_CONTROL_RANGE 사용하기(하나의 함수로 여러 컨트롤 제어) (0) | 2018.12.19 |
[MFC] 파일 ZIP 압축/해제 활용하기 (3) | 2018.12.17 |
[MFC] INI 파일 활용 하기(문자열 값 저장/불러오기) (0) | 2018.12.17 |
- Total
- Today
- Yesterday
- Sticky Notes Loading
- MFC ADO
- 부가가치세
- SendMessage
- 스티커메모로드중
- 법정동코드
- 청년내일채움공제
- 모달리스 다이얼로그
- 청년내일채움공제 만기신청
- MFC Modeless
- Modeless
- 스쿠트항공 환불받기
- 항공알파벳
- 부가가치세전산매체
- 프로세스이름변경
- MSSQL
- MFC
- 세금계산서합계표양식
- 해외송금확인
- ADO
- 전자신고변환
- ADODB
- CMFCBUTTON
- 전자신고파일설명서
- MXCOMPONENT
- #자동업데이트
- c++
- sqlite3
- 모달리스
- 소켓
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |