일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 틀린그림찾기
- 판매
- 포커게임
- 영어단어게임
- 카일레라서버
- 게임 외주
- 옥션소송
- 고스톱
- 맞고
- 윈윈
- 영어단어
- holdem
- 티스토리 초대장
- 틀린그림 찾기
- 윈윈전략
- Mame32
- 포커
- 서치아이
- 써치아이
- MAME
- 카일레라
- 옥션해킹
- 프로그램 개발
- 보드게임
- 상호링크
- 프로그램 외주
- 맞고게임
- 게임 개발
- 온라인게임
- 홀뎀
- Today
- Total
kyuseo의 게임 프로그래밍
CStringf wsprintf str.Format 의 속도 비교 본문
개요.. |
CStringf wsprintf str.Format 의 속도 비교해봅니다.
CStringf 가 이상하게도 더 빠른 결과를 얻을 수 있습니다. 아무래도 CString::FormatV 함수가 매우 느리기 때문인듯합니다.
또한 릴리즈 버전에서의 최적화가 되기 때문에 일부러 for 문안에 int 형과 같은 타이트한 객체선언을 밖에 할 필요가 없습니다.
상황에 따라 코드의 표현상 이점에 따라 행동하도록 합시다.
비교 분석 |
-------- 이론상 최적화 코드 -------------
DWORD n; for( int i=0; i<100; i++ ) { n = a[i].GetCount(); n 에대한 처리 } |
-------- 최적화 코드는 아니지만 속도상 아무런 상관없는 코드 -------------
for( int i=0; i<100; i++ ) { DWORD n = a[i].GetCount(); n 에대한 처리 } |
--------------------- 디버그 버젼 결과
Hello from MFC! CStringf 걸린시간 : 2287 CStringfInline 걸린시간 : 2341 CString Format 걸린시간 : 2910 char[] wsprintf 걸린시간 : 497 |
--------------------- 릴리즈 버젼 결과
Hello from MFC! CStringf 걸린시간 : 792 CStringfInline 걸린시간 : 764 CString Format 걸린시간 : 1782 char[] wsprintf 걸린시간 : 455 |
CStringf 소스코드
inline CString CStringf( LPCSTR fmt, ... ) { va_list vl; va_start( vl, fmt );
CString s; s.FormatV( fmt, vl );
return s; } |