📄 fileop.c
字号:
if(verbose) { printf("unlink: Files = %9lld ",stats[_STAT_UNLINK].counter); printf("Total Time = %12.9f seconds\n", stats[_STAT_UNLINK].total_time); printf(" Avg unlink(s)/sec = %12.2f (%12.9f seconds/op)\n", stats[_STAT_UNLINK].counter/stats[_STAT_UNLINK].total_time, stats[_STAT_UNLINK].total_time/stats[_STAT_UNLINK].counter); printf(" Best unlink(s)/sec = %12.2f (%12.9f seconds/op)\n", 1/stats[_STAT_UNLINK].best,stats[_STAT_UNLINK].best); printf(" Worst unlink(s)/sec = %12.2f (%12.9f seconds/op)\n\n", 1/stats[_STAT_UNLINK].worst,stats[_STAT_UNLINK].worst); }#endif /* * Delete test */ file_delete(x); if(verbose) { printf("delete: Files = %9lld ",stats[_STAT_DELETE].counter); printf("Total Time = %12.9f seconds\n", stats[_STAT_DELETE].total_time); printf(" Avg delete(s)/sec = %12.2f (%12.9f seconds/op)\n", stats[_STAT_DELETE].counter/stats[_STAT_DELETE].total_time, stats[_STAT_DELETE].total_time/stats[_STAT_DELETE].counter); printf(" Best delete(s)/sec = %12.2f (%12.9f seconds/op)\n", 1/stats[_STAT_DELETE].best,stats[_STAT_DELETE].best); printf(" Worst delete(s)/sec = %12.2f (%12.9f seconds/op)\n\n", 1/stats[_STAT_DELETE].worst,stats[_STAT_DELETE].worst); } if(!verbose) { printf("%c %4d %6.0f ",'A',x,stats[_STAT_DIR_CREATE].counter/stats[_STAT_DIR_CREATE].total_time); printf("%6.0f ",stats[_STAT_DIR_DELETE].counter/stats[_STAT_DIR_DELETE].total_time); printf("%6.0f ",stats[_STAT_CREATE].counter/stats[_STAT_CREATE].total_time); printf("%6.0f ",stats[_STAT_READ].counter/stats[_STAT_READ].total_time); printf("%6.0f ",stats[_STAT_WRITE].counter/stats[_STAT_WRITE].total_time); printf("%6.0f ",stats[_STAT_CLOSE].counter/stats[_STAT_CLOSE].total_time); printf("%6.0f ",stats[_STAT_STAT].counter/stats[_STAT_STAT].total_time); printf("%6.0f ",stats[_STAT_ACCESS].counter/stats[_STAT_ACCESS].total_time); printf("%6.0f ",stats[_STAT_CHMOD].counter/stats[_STAT_CHMOD].total_time); printf("%6.0f ",stats[_STAT_READDIR].counter/stats[_STAT_READDIR].total_time);#ifndef Windows printf("%6.0f ",stats[_STAT_LINK].counter/stats[_STAT_LINK].total_time); printf("%6.0f ",stats[_STAT_UNLINK].counter/stats[_STAT_UNLINK].total_time);#endif printf("%6.0f ",stats[_STAT_DELETE].counter/stats[_STAT_DELETE].total_time); printf("%12d ",x*x*x); printf("\n"); fflush(stdout); if(best) { printf("%c %4d %6.0f ",'B',x, 1/stats[_STAT_DIR_CREATE].best); printf("%6.0f ",1/stats[_STAT_DIR_DELETE].best); printf("%6.0f ",1/stats[_STAT_CREATE].best); printf("%6.0f ",1/stats[_STAT_READ].best); printf("%6.0f ",1/stats[_STAT_WRITE].best); printf("%6.0f ",1/stats[_STAT_CLOSE].best); printf("%6.0f ",1/stats[_STAT_STAT].best); printf("%6.0f ",1/stats[_STAT_ACCESS].best); printf("%6.0f ",1/stats[_STAT_CHMOD].best); printf("%6.0f ",1/stats[_STAT_READDIR].best);#ifndef Windows printf("%6.0f ",1/stats[_STAT_LINK].best); printf("%6.0f ",1/stats[_STAT_UNLINK].best);#endif printf("%6.0f ",1/stats[_STAT_DELETE].best); printf("%12d ",x*x*x); printf("\n"); fflush(stdout); } if(worst) { printf("%c %4d %6.0f ",'W',x, 1/stats[_STAT_DIR_CREATE].worst); printf("%6.0f ",1/stats[_STAT_DIR_DELETE].worst); printf("%6.0f ",1/stats[_STAT_CREATE].worst); printf("%6.0f ",1/stats[_STAT_READ].worst); printf("%6.0f ",1/stats[_STAT_WRITE].worst); printf("%6.0f ",1/stats[_STAT_CLOSE].worst); printf("%6.0f ",1/stats[_STAT_STAT].worst); printf("%6.0f ",1/stats[_STAT_ACCESS].worst); printf("%6.0f ",1/stats[_STAT_CHMOD].worst); printf("%6.0f ",1/stats[_STAT_READDIR].worst);#ifndef Windows printf("%6.0f ",1/stats[_STAT_LINK].worst); printf("%6.0f ",1/stats[_STAT_UNLINK].worst);#endif printf("%6.0f ",1/stats[_STAT_DELETE].worst); printf("%12d ",x*x*x); printf("\n"); fflush(stdout); } } } return(0);}void dir_create(int x){ int i,j; int ret; char buf[100]; stats[_STAT_DIR_CREATE].best=(double)99999.9; stats[_STAT_DIR_CREATE].worst=(double)0.00000000; chdir(thedir); /* change starting point */ for(i=0;i<x;i++) { sprintf(buf,"iozone_L1_%d",i); stats[_STAT_DIR_CREATE].starttime=time_so_far(); ret=mkdir(buf,0777); if(ret < 0) { printf("Mkdir failed\n"); exit(1); } stats[_STAT_DIR_CREATE].endtime=time_so_far(); stats[_STAT_DIR_CREATE].speed=stats[_STAT_DIR_CREATE].endtime-stats[_STAT_DIR_CREATE].starttime; if(stats[_STAT_DIR_CREATE].speed < (double)0.0) stats[_STAT_DIR_CREATE].speed=(double)0.0; stats[_STAT_DIR_CREATE].total_time+=stats[_STAT_DIR_CREATE].speed; stats[_STAT_DIR_CREATE].counter++; if(stats[_STAT_DIR_CREATE].speed < stats[_STAT_DIR_CREATE].best) stats[_STAT_DIR_CREATE].best=stats[_STAT_DIR_CREATE].speed; if(stats[_STAT_DIR_CREATE].speed > stats[_STAT_DIR_CREATE].worst) stats[_STAT_DIR_CREATE].worst=stats[_STAT_DIR_CREATE].speed; chdir(buf); for(j=0;j<x;j++) { sprintf(buf,"iozone_L1_%d_L2_%d",i,j); stats[_STAT_DIR_CREATE].starttime=time_so_far(); ret=mkdir(buf,0777); if(ret < 0) { printf("Mkdir failed\n"); exit(1); } stats[_STAT_DIR_CREATE].endtime=time_so_far(); stats[_STAT_DIR_CREATE].speed=stats[_STAT_DIR_CREATE].endtime-stats[_STAT_DIR_CREATE].starttime; if(stats[_STAT_DIR_CREATE].speed < (double)0.0) stats[_STAT_DIR_CREATE].speed=(double) 0.0; stats[_STAT_DIR_CREATE].total_time+=stats[_STAT_DIR_CREATE].speed; stats[_STAT_DIR_CREATE].counter++; if(stats[_STAT_DIR_CREATE].speed < stats[_STAT_DIR_CREATE].best) stats[_STAT_DIR_CREATE].best=stats[_STAT_DIR_CREATE].speed; if(stats[_STAT_DIR_CREATE].speed > stats[_STAT_DIR_CREATE].worst) stats[_STAT_DIR_CREATE].worst=stats[_STAT_DIR_CREATE].speed; chdir(buf); chdir(".."); } chdir(".."); }}void file_create(int x){ int i,j,k; int fd; int ret; char buf[100]; char value; stats[_STAT_CREATE].best=(double)999999.9; stats[_STAT_CREATE].worst=(double)0.0; stats[_STAT_WRITE].best=(double)999999.9; stats[_STAT_WRITE].worst=(double)0.0; stats[_STAT_CLOSE].best=(double)999999.9; stats[_STAT_CLOSE].worst=(double)0.0; for(i=0;i<x;i++) { sprintf(buf,"iozone_L1_%d",i); ret=mkdir(buf,0777); if(ret < 0) { printf("Mkdir failed\n"); exit(1); } chdir(buf); for(j=0;j<x;j++) { sprintf(buf,"iozone_L1_%d_L2_%d",i,j); ret=mkdir(buf,0777); if(ret < 0) { printf("Mkdir failed\n"); exit(1); } chdir(buf); for(k=0;k<x;k++) { sprintf(buf,"iozone_file_%d_%d_%d",i,j,k); value=(char) ((i^j^k) & 0xff); memset(mbuffer,value,sz); stats[_STAT_CREATE].starttime=time_so_far(); fd=creat(buf,O_RDWR|0600); if(fd < 0) { printf("Create failed\n"); exit(1); } stats[_STAT_CREATE].endtime=time_so_far(); stats[_STAT_CREATE].speed=stats[_STAT_CREATE].endtime-stats[_STAT_CREATE].starttime; if(stats[_STAT_CREATE].speed < (double)0.0) stats[_STAT_CREATE].speed=(double)0.0; stats[_STAT_CREATE].total_time+=stats[_STAT_CREATE].speed; stats[_STAT_CREATE].counter++; if(stats[_STAT_CREATE].speed < stats[_STAT_CREATE].best) stats[_STAT_CREATE].best=stats[_STAT_CREATE].speed; if(stats[_STAT_CREATE].speed > stats[_STAT_CREATE].worst) stats[_STAT_CREATE].worst=stats[_STAT_CREATE].speed; stats[_STAT_WRITE].starttime=time_so_far(); write(fd,mbuffer,sz); stats[_STAT_WRITE].endtime=time_so_far(); stats[_STAT_WRITE].counter++; stats[_STAT_WRITE].speed=stats[_STAT_WRITE].endtime-stats[_STAT_WRITE].starttime; if(stats[_STAT_WRITE].speed < (double)0.0) stats[_STAT_WRITE].speed=(double)0.0; stats[_STAT_WRITE].total_time+=stats[_STAT_WRITE].speed; if(stats[_STAT_WRITE].speed < stats[_STAT_WRITE].best) stats[_STAT_WRITE].best=stats[_STAT_WRITE].speed; if(stats[_STAT_WRITE].speed > stats[_STAT_WRITE].worst) stats[_STAT_WRITE].worst=stats[_STAT_WRITE].speed; fsync(fd); stats[_STAT_CLOSE].starttime=time_so_far(); close(fd); stats[_STAT_CLOSE].endtime=time_so_far(); stats[_STAT_CLOSE].speed=stats[_STAT_CLOSE].endtime-stats[_STAT_CLOSE].starttime; if(stats[_STAT_CLOSE].speed < (double)0.0) stats[_STAT_CLOSE].speed=(double)0.0; stats[_STAT_CLOSE].total_time+=stats[_STAT_CLOSE].speed; stats[_STAT_CLOSE].counter++; if(stats[_STAT_CLOSE].speed < stats[_STAT_CLOSE].best) stats[_STAT_CLOSE].best=stats[_STAT_CLOSE].speed; if(stats[_STAT_CLOSE].speed > stats[_STAT_CLOSE].worst) stats[_STAT_CLOSE].worst=stats[_STAT_CLOSE].speed; } chdir(".."); } chdir(".."); }}void file_stat(int x){ int i,j,k,y; char buf[100]; struct stat mystat; stats[_STAT_STAT].best=(double)99999.9; stats[_STAT_STAT].worst=(double)0.00000000; for(i=0;i<x;i++) { sprintf(buf,"iozone_L1_%d",i); chdir(buf); for(j=0;j<x;j++) { sprintf(buf,"iozone_L1_%d_L2_%d",i,j); chdir(buf); for(k=0;k<x;k++) { sprintf(buf,"iozone_file_%d_%d_%d",i,j,k); stats[_STAT_STAT].starttime=time_so_far(); y=stat(buf,&mystat); if(y < 0) { printf("Stat failed\n"); exit(1); } stats[_STAT_STAT].endtime=time_so_far(); stats[_STAT_STAT].speed=stats[_STAT_STAT].endtime-stats[_STAT_STAT].starttime; if(stats[_STAT_STAT].speed < (double)0.0) stats[_STAT_STAT].speed=(double)0.0; stats[_STAT_STAT].total_time+=stats[_STAT_STAT].speed; stats[_STAT_STAT].counter++; if(stats[_STAT_STAT].speed < stats[_STAT_STAT].best) stats[_STAT_STAT].best=stats[_STAT_STAT].speed; if(stats[_STAT_STAT].speed > stats[_STAT_STAT].worst) stats[_STAT_STAT].worst=stats[_STAT_STAT].speed; } chdir(".."); } chdir(".."); }}void file_access(int x){ int i,j,k,y; char buf[100]; stats[_STAT_ACCESS].best=(double)999999.9; stats[_STAT_ACCESS].worst=(double)0.0; for(i=0;i<x;i++) { sprintf(buf,"iozone_L1_%d",i); chdir(buf); for(j=0;j<x;j++) { sprintf(buf,"iozone_L1_%d_L2_%d",i,j); chdir(buf); for(k=0;k<x;k++) { sprintf(buf,"iozone_file_%d_%d_%d",i,j,k); stats[_STAT_ACCESS].starttime=time_so_far(); y=access(buf,W_OK|F_OK); if(y < 0) { printf("access failed\n"); perror("what"); exit(1); } stats[_STAT_ACCESS].endtime=time_so_far(); stats[_STAT_ACCESS].speed=stats[_STAT_ACCESS].endtime-stats[_STAT_ACCESS].starttime; if(stats[_STAT_ACCESS].speed < (double)0.0) stats[_STAT_ACCESS].speed=(double)0.0; stats[_STAT_ACCESS].total_time+=stats[_STAT_ACCESS].speed; stats[_STAT_ACCESS].counter++; if(stats[_STAT_ACCESS].speed < stats[_STAT_ACCESS].best) stats[_STAT_ACCESS].best=stats[_STAT_ACCESS].speed; if(stats[_STAT_ACCESS].speed > stats[_STAT_ACCESS].worst) stats[_STAT_ACCESS].worst=stats[_STAT_ACCESS].speed; } chdir(".."); } chdir(".."); }}void file_chmod(int x){ int i,j,k,y; char buf[100]; stats[_STAT_CHMOD].best=(double)999999.9; stats[_STAT_CHMOD].worst=(double)0.0; for(i=0;i<x;i++) { sprintf(buf,"iozone_L1_%d",i); chdir(buf); for(j=0;j<x;j++) { sprintf(buf,"iozone_L1_%d_L2_%d",i,j); chdir(buf); for(k=0;k<x;k++) { sprintf(buf,"iozone_file_%d_%d_%d",i,j,k); stats[_STAT_CHMOD].starttime=time_so_far(); y=chmod(buf,0666); if(y < 0) { printf("chmod failed\n"); perror("what"); exit(1); } stats[_STAT_CHMOD].endtime=time_so_far(); stats[_STAT_CHMOD].speed=stats[_STAT_CHMOD].endtime-stats[_STAT_CHMOD].starttime; if(stats[_STAT_CHMOD].speed < (double)0.0) stats[_STAT_CHMOD].speed=(double)0.0; stats[_STAT_CHMOD].total_time+=stats[_STAT_CHMOD].speed; stats[_STAT_CHMOD].counter++; if(stats[_STAT_CHMOD].speed < stats[_STAT_CHMOD].best) stats[_STAT_CHMOD].best=stats[_STAT_CHMOD].speed; if(stats[_STAT_CHMOD].speed > stats[_STAT_CHMOD].worst) stats[_STAT_CHMOD].worst=stats[_STAT_CHMOD].speed; } chdir(".."); } chdir(".."); }}void file_readdir(int x){ int i,j,ret1; char buf[100]; DIR *dirbuf; struct dirent *y; stats[_STAT_READDIR].best=(double)999999.9; stats[_STAT_READDIR].worst=(double)0.0; for(i=0;i<x;i++) { sprintf(buf,"iozone_L1_%d",i); chdir(buf);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -