int main(int argc, char** argv) { int nreps = 1; if (argc != 2 && argc != 3) usage(argv[0]); char* filename = argv[1]; if (argc == 3) (void)sscanf(argv[2], "%d", &nreps); double s, e, t; int bc; for (int i = 0; i < nreps; i++) { s = get_systime(); bc = read_file_mlr_get_line(filename); e = get_systime(); t = e - s; printf("type=getdelim,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_fgetc(filename); e = get_systime(); t = e - s; printf("type=fgetc,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_fgetc_psb(filename); e = get_systime(); t = e - s; printf("type=fgetc_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_mmap_psb(filename); e = get_systime(); t = e - s; printf("type=mmap_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_pfr_psb(filename); e = get_systime(); t = e - s; printf("type=pfr_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); } return 0; }
int main(int argc, char** argv) { int nreps = 1; int do_write = 0; if (argc != 2 && argc != 3 && argc != 4) usage(argv[0]); char* filename = argv[1]; if (argc >= 3) (void)sscanf(argv[2], "%d", &nreps); if (argc >= 4) (void)sscanf(argv[3], "%d", &do_write); double s, e, t; int bc; for (int i = 0; i < nreps; i++) { s = get_systime(); bc = read_file_mlr_get_line(filename, do_write); e = get_systime(); t = e - s; printf("type=getdelim,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_mlr_getcdelim(filename, do_write); e = get_systime(); t = e - s; printf("type=mlr_getcdelim,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_mlr_getsdelim(filename, do_write); e = get_systime(); t = e - s; printf("type=mlr_getsdelim,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = popen_file_mlr_getsdelim("zcat -cf < ", filename, do_write); e = get_systime(); t = e - s; printf("type=mlr_popen_getsdelim,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_fgetc_fixed_len(filename, do_write); e = get_systime(); t = e - s; printf("type=fgetc_fixed_len,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_getc_unlocked_fixed_len(filename, do_write); e = get_systime(); t = e - s; printf("type=getc_unlocked_fixed_len,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_getc_unlocked_psb(filename, do_write); e = get_systime(); t = e - s; printf("type=getc_unlocked_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_fgetc_psb(filename, do_write); e = get_systime(); t = e - s; printf("type=fgetc_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_mmap_psb(filename, do_write); e = get_systime(); t = e - s; printf("type=mmap_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); s = get_systime(); bc = read_file_pfr_psb(filename, do_write); e = get_systime(); t = e - s; printf("type=pfr_psb,t=%.6lf,n=%d\n", t, bc); fflush(stdout); } return 0; }