linux下ssd电子盘速度检测
来源:互联网 发布:手机软件编程语言 编辑:程序博客网 时间:2024/05/16 18:30
代码:
#include<stdio.h>#include<sys/time.h>#include <fcntl.h>#include <pthread.h> unsigned char pbuffer[1024*1024*8];//共用缓冲void testssd1(int *ch )//写测试{ int i=0; int fd; if(*ch==0) fd = open("/ssd1/test.dat", O_RDWR|O_CREAT);if(*ch==1)fd = open("/ssd2/test.dat", O_RDWR|O_CREAT);if(*ch==2)fd = open("/ssd3/test.dat", O_RDWR|O_CREAT);if(*ch==3)fd = open("/ssd4/test.dat", O_RDWR|O_CREAT);if(*ch==4)fd = open("/ssd5/test.dat", O_RDWR|O_CREAT);if(*ch==5)fd = open("/ssd6/test.dat", O_RDWR|O_CREAT);if(*ch==6)fd = open("/ssd7/test.dat", O_RDWR|O_CREAT);if(*ch==7)fd = open("/ssd8/test.dat", O_RDWR|O_CREAT); if(fd<0) { printf("%d open error!\n",*ch); return ; } for(i=0;i<32;i++) write(fd,pbuffer,1024*1024*8);//每次8M,共计256MB close(fd); printf("SSD%d test over!\n",*ch); return ;}void testssd2(int *ch )//读测试{ int i=0; int fd; if(*ch==0) fd = open("/ssd1/test.dat", O_RDWR|O_CREAT); if(*ch==1) fd = open("/ssd2/test.dat", O_RDWR|O_CREAT); if(*ch==2) fd = open("/ssd3/test.dat", O_RDWR|O_CREAT); if(*ch==3) fd = open("/ssd4/test.dat", O_RDWR|O_CREAT); if(*ch==4) fd = open("/ssd5/test.dat", O_RDWR|O_CREAT); if(*ch==5) fd = open("/ssd6/test.dat", O_RDWR|O_CREAT); if(*ch==6) fd = open("/ssd7/test.dat", O_RDWR|O_CREAT); if(*ch==7) fd = open("/ssd8/test.dat", O_RDWR|O_CREAT); if(fd<0) { printf("%d open error!\n",*ch); return ; } for(i=0;i<32;i++) read(fd,pbuffer,1024*1024*8); close(fd); printf("SSD%d test over!\n",*ch); return ;}int main(){ printf("this is SSD Speed test begin!\n\n"); pthread_t _id[8]; int ret,i,ch[8]; struct timeval start; struct timeval end; float speed; for(i=0;i<1024*1024*8;i++)//初始化缓冲区 pbuffer[i] = i&0xff; gettimeofday(&start,NULL);//开始计时------------ for(i=0;i<8;i++) { ch[i] = i;//启动8个线程 ret=pthread_create(_id+i,NULL,(void *)testssd1,ch+i); if(ret!=0) { printf("Create pthread error!\n"); return -1; } } pthread_join(_id[0],NULL); //等待各自到线程结束 pthread_join(_id[1],NULL); pthread_join(_id[2],NULL); pthread_join(_id[3],NULL); pthread_join(_id[4],NULL); pthread_join(_id[5],NULL); pthread_join(_id[6],NULL); pthread_join(_id[7],NULL); gettimeofday(&end, NULL);//停止计时------------- speed = 1.0*(end.tv_sec-start.tv_sec)+(end.tv_usec-start.tv_usec)/1000000.0;//时间 printf("ssd write speed:%6.5fMB/S(%6.5fsec)\n",256.0*8/speed,speed); //速度 printf("this is SSD Speed test over!\n\n"); return 0;}
写测试运行结果:
# ./test
# gcc ssd_test.c -o test -lpthread
# ./test
SSD Speed test begin!
SSD4 test over!
SSD0 test over!
SSD6 test over!
SSD1 test over!
SSD5 test over!
SSD7 test over!
SSD2 test over!
SSD3 test over!
ssd write speed:1563.73594MB/S(1.30968sec)
SSD Speed test over!
读测试运行结果:
# ./testSSD Speed test begin!
SSD1 test over!
SSD7 test over!
SSD3 test over!
SSD2 test over!
SSD4 test over!
SSD5 test over!
SSD6 test over!
SSD0 test over!
ssd read speed:2315.16042MB/S(0.34623sec)
SSD Speed test over!
0 0
- linux下ssd电子盘速度检测
- Windows下使用SSD检测
- SSD linux下配置
- Linux 编译SSD Caffe目标检测代码
- SSD读写速度测试
- 目标检测,windows 下跑 SSD: Single Shot MultiBox Detector
- 目标检测算法SSD在Ubuntu+CPU下运行
- linux下固态硬盘ssd优化
- Linux下测试SSD硬盘读写速率
- Linux 磁盘I/O读写速度检测
- SSD目标检测
- SSD目标检测
- ssd目标检测整理
- SSD目标检测原理
- SSD目标检测理解
- SSD模型--目标检测
- linux下测试硬盘速度
- Linux下读写速度测试
- 《.NET最佳实践》与Ext JS/Touch的团队开发
- u-boot-2015.01移植
- 欢迎使用CSDN-markdown编辑器
- 表单属性改变时触发事件(oninput,onpropertychange,onchange)
- [记录]Java---实现简单的链表
- linux下ssd电子盘速度检测
- leetcode001——Two Sum
- 控制台参数输入类
- T.class获取
- JavaBean和POJO
- js中的constructor和prototype
- ubuntu 编写自己的ls命令
- 浅显易懂解析JNI
- rabbit MQ 3钟exchange