最近買了一個256GB的SSD固態硬盤,想測試一下寫入速度,於是如下操作。
部分代碼:
1 gettimeofday(&start, NULL); 2 int fd = open("test1.dat", O_RDWR|O_CREAT); 3 if (fd < 0){ 4 printf("open error!\n"); 5 return 0; 6 } 7 lseek(fd, 0, SEEK_SET); 8 write(fd, pData, DATA_LEN); 9 close(fd); 10 gettimeofday(&end, NULL); 11 // 顯示占用時間, 單位是us
12 diff = 1000000 * (end.tv_sec - start.tv_sec) + (end.tv_usec start.tv_usec); 13 printf("the data length is %d\n Byte", DATA_LEN); 14 printf("the difference is %ld us\n", diff);
測試一,數據大小 288,000 byte,5次取最長的時間,則寫入速度約為 288000 byte / 2058us = 133.46 MB/s
測試二,數據大小 1,440,000 byte = 1.37MB,5次取最長的時間,則 寫入速度約為 1440000 byte / 9356 us = 146.78 MB/s
測試三,數據大小 14,400,000 byte = 13.7MB,5次取最長時間,則寫入速度約為 14400000 byte / 100234 us = 137.01MB/s