write、fwrite、fstream二进制I/O的效率对比

 测试数据

写文件测试数据

注:每项数据为3次运行的结果取平局值,运行时长为10ms。

单次传入字节数(B) 写入字节数(MB)
write fwrite fstream.write
1 0.005  0.124  0.127 
4 0.019  0.453  0.450 
16 0.064  1.840  1.860 
64 0.363  4.503  4.277 
256 0.900  7.753  9.490 
512 1.880  8.797  10.220 
1024 3.707  9.003  4.060 
2048 5.733  8.930  5.157 
4096 9.177  10.140  10.993 
8192 10.023  10.853  13.727 
16384 12.387  10.510  11.377 
32768 13.280  12.967  13.333 
65536 11.000  9.877 

11.333

 读文件测试数据

待补充......

 结果分析

  1. 单次传入字节数小于1K时,write的效率与fwrite、fstream.write差距很大,在单次传入字节数大于等于4K后效率接近。
  2. 标准I/O库的fwrite接口和C++标准库的fstream.write接口写二进制文本的效率基本接近,但在单次传入字节数1K和2K时fwrite效率高于fstream.write。

你可能感兴趣的:(C++)