如何在标准 C++/C++11(无 POSIX 函数)中优化 std::ifstream 和 std::ofstream 的读写速度?(1 <- 因为有几个问题,这些数字表示不同的点)
我不确切知道缓冲区的作用,所以你能确认一下:
- 用于读取:文件的很大一部分预加载在内存中(因此缓冲区大小定义了这一大部分的大小)(2)
- 用于写入:数据写入内存,一旦缓冲区满,就会从内存传输到文件系统 (3)
如何在 std::ifstream 和 std::ofstream 上设置缓冲区大小?(4)
考虑到我使用非常大的二进制文件(几个 10 GB),并且文件系统通常最适合大型读/写,我可以定义一个 100 MB 的缓冲区大小吗?如果它会降低性能,为什么?(5)
最后,从 ifstream/ofstream 将检测您正在读取/写入文件的数据量并调整缓冲区大小以提供最大速度的意义上说,默认缓冲区是否“智能”?(6)