标准IO和系统IO写入速度比较
众所周知,标准IO的速度要比系统IO快。
那为什么系统调用要比标准C库调用慢呢?
测试:
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
void stdIOwrite(void){
FILE* file = fopen("writetst.dat","w");
for(int i=0;i<1000000;i++){
fwrite(&i,sizeof(int),1,file);
}
fclose(file);
}
void sysIOwrite(void){
int fd = open("writetst.dat",O_TRUNC|O_WRONLY);
for(int i=0;i<1000000;i++){
write(fd,&i,sizeof(int));
}
close(fd);
}
int main(){
//sysIOwrite();
stdIOwrite();
}
系统IO写入100W个整数所用时间:
real 0m47.595s
user 0m0.813s
sys 0m45.859s
标准IO写入100w个整数所用时间:
real 0m0.096s
user 0m0.031s
sys 0