freadとreadの速度差
tuple(100byte)のデータを1万個用意し、それを読み込む速度を測った。
なお、いつかの調査でgettimeofdayは最大数us程度ずれうるということがわかっている、が、あまり関係なさそう。
結論から言うと、freadでは2000us程度、readでは10000us程度かかっていた。
struct timeval before, after; gettimeofday( &before, NULL ); /* while( ( tmp = read( fileno( rp ), &tuple[ n ], sizeof( crs_tuple_t ) ) ) > 0 ) { */ /* n++; */ /* if ( bufsize <= n ) { */ /* tuple = ( crs_p_tuple_t ) myrealloc( tuple, sizeof( crs_tuple_t ) * bufsize * 2, "tuple" ); */ /* bufsize *= 2; */ /* } */ /* } */ while( ( tmp = fread( &tuple[ n ], sizeof( crs_tuple_t ), bufsize - n, rp ) ) > 0 ) { n += tmp; if ( bufsize <= n ) { tuple = ( crs_p_tuple_t ) myrealloc( tuple, sizeof( crs_tuple_t ) * bufsize * 2, "tuple" ); bufsize *= 2; } } gettimeofday( &after, NULL );