本文主要是介绍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 |
读文件测试数据
待补充......
结果分析
- 单次传入字节数小于1K时,write的效率与fwrite、fstream.write差距很大,在单次传入字节数大于等于4K后效率接近。
- 标准I/O库的fwrite接口和C++标准库的fstream.write接口写二进制文本的效率基本接近,但在单次传入字节数1K和2K时fwrite效率高于fstream.write。
这篇关于write、fwrite、fstream二进制I/O的效率对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!