|
연산자가 전치/후치에 따라 빠르기 순서가 다음과 같았습니다.
i-- > i++ > ++i > --i
전 마지막 것이 빠른줄 알고 썼었는데 ㅡㅜ
왜 이런지 아시나요;;
아래는 테스트에 사용 된 코드였습니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned int Before;
double t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0;
double loop = 10;
for ( int i = 0; i < loop; ++i )
{
Before = GetTickCount();
for ( int i = 0; i < 1000000; ++i )
{
AnsiString s = AnsiString( "s" );
}
t2 += ( GetTickCount() - Before );
Before = GetTickCount();
for ( int i = 0; i < 1000000; i++ )
{
AnsiString s = AnsiString( "s" );
}
t3 += ( GetTickCount() - Before );
Before = GetTickCount();
for ( int i = 1000000; i > 0; --i )
{
AnsiString s = AnsiString( "s" );
}
t4 += ( GetTickCount() - Before );
Before = GetTickCount();
for ( int i = 1000000; i > 0; i-- )
{
AnsiString s = AnsiString( "s" );
}
t5 += ( GetTickCount() - Before );
}
Memo1->Lines->Add( FloatToStr( t1 / loop ) );
Memo1->Lines->Add( FloatToStr( t2 / loop ) );
Memo1->Lines->Add( FloatToStr( t3 / loop ) );
Memo1->Lines->Add( FloatToStr( t4 / loop ) );
Memo1->Lines->Add( FloatToStr( t5 / loop ) );
}
|