検証したサイトは多数あるだろうけども。
とにかく自分で検証したい・・・。
#define _BUFFER_MAX ( 0x200000 )
INT _array[ _BUFFER_MAX ];
std::vector>INT< _vector;
INT loop;
LARGE_INTEGER freq, start, end;
DOUBLE speed;
_vector.resize( _BUFFER_MAX );
// array
QueryPerformanceFrequency( &freq );
QueryPerformanceCounter( &start );
for( loop=0; loop<_BUFFER_MAX; loop++ )
{
_array[ loop ] = loop;
}
QueryPerformanceCounter( &end );
speed = (DOUBLE)( end.QuadPart - start.QuadPart ) / freq.QuadPart;
wprintf( _T( "array speed : %f\n" ), speed );
// std::vector
QueryPerformanceCounter( &start );
for( loop=0; loop<_BUFFER_MAX; loop++ )
{
_vector[ loop ] = loop;
}
QueryPerformanceCounter( &end );
speed = (DOUBLE)( end.QuadPart - start.QuadPart ) / freq.QuadPart;
wprintf( _T( "vector speed : %f\n" ), speed );
array speed : 0.019666μsvector speed : 0.246856μs
細かい数値はあれとして意外と差が出た。
0 件のコメント:
コメントを投稿