⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileop.c

📁 硬盘速度测试 linux下 源码 c/c
💻 C
📖 第 1 页 / 共 3 页
字号:
	   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 + -