在 linux 平台下,使用 write 函数写入 100 Mb 每次写入 16个字节,与8个字节运行时间比较
- 16 字节写入
- 源码
- 测试效果
- 8 字节写入
- 源码
- 测试效果
- 总结
#include#include #include #include #include #include #define TOTOAL_SIZE (100*1024*1024) int main(void){ int fd; char buf[8]; if((fd=open("test.txt",O_CREAT|O_RDWR),0666) == -1){ printf("error openn"); exit(1); } int num = TOTOAL_SIZE/sizeof(buf); int i = 0; while(i 测试效果 我们可以看到 test.txt 文件已经生成大小 100Mb,测试 3 次时间 第一次总调用时间为 22s 左右,后两次总时间为 16s 左右
8 字节写入 源码
代码部分修改的地方将上面的 char buf[8]; 修改为 char buf[16] write(fd,buf,16);
测试效果删去 test.txt 后,我们可以看到 test.txt 文件已经生成大小 100Mb,测试 3 次时间 第一次总调用时间为 8s 左右,后两次总时间为 7s 左右
总结
我们可以看到写入同样写入 100Mb 每次写入的 大小越大耗时比每次写入的大小较小的的时间要短,所有我们应该在写入相同字节数文件时尽量减少调用系统 io 的次数,避免额外的调用时间开销.



