소스를 분석하다가 switch 문을 여러개로 분할해서 호출하는 것을 보고 의구심이 들어 테스트를 해보았다 ㅋ
#include <iostream>
using namespace std;
#include <windows.h>
const DWORD TEST_COUNT = 1000000000;
void Test1( DWORD i );
void Test2( DWORD j );
int main( void )
{
int start1 = GetTickCount();
for( DWORD i = 0; i < TEST_COUNT; i++ )
Test1( i );
int end1 = GetTickCount();
int start2 = GetTickCount();
for( DWORD j = 0; j < TEST_COUNT; j++ )
Test2( j );
int end2 = GetTickCount();
cout << end1 - start1 << endl;
cout << end2 - start2 << endl;
return 0;
}
void Test1( DWORD i )
{
int command = i % 10;
switch( command )
{
case 0:
command = 0;
break;
case 1:
command = 0;
break;
case 2:
command = 0;
break;
case 3:
command = 0;
break;
case 4:
command = 0;
break;
case 5:
command = 0;
break;
case 6:
command = 0;
break;
case 7:
command = 0;
break;
case 8:
command = 0;
break;
case 9:
command = 0;
break;
}
}
void Test2( DWORD j )
{
int command = j % 10;
switch( command )
{
case 0:
command = 0;
break;
case 1:
command = 0;
break;
}
switch( command )
{
case 2:
command = 0;
break;
case 3:
command = 0;
break;
case 4:
command = 0;
break;
}
switch( command )
{
case 5:
command = 0;
break;
}
switch( command )
{
case 6:
command = 0;
break;
case 7:
command = 0;
break;
case 8:
command = 0;
break;
case 9:
command = 0;
break;
}
}
<출력결과>
42172
48578
몇초씩 차이난다 ㄷㄷ
결과는 예상했던대로 분할하는 것은 좋지 않음!
'Programming > C / C++' 카테고리의 다른 글
const 를 이용한 포인터 상수화 (0) | 2015.02.07 |
---|---|
override, abstract, __interface, sealed (0) | 2015.02.07 |
가변 인수 (0) | 2015.02.07 |
STL without warnings (0) | 2015.02.07 |
구조체 초기화 (0) | 2015.02.07 |