1

我正在编写 70 - 700gb 范围内的大文件。有没有人有经验,如果内存映射文件比常规写入块更有效?代码将在 c++ 中并在 linux 2.6 上运行

4

2 回答 2

2

消费级驱动器的典型持续硬盘驱动器传输速度约为每秒 60 兆字节,阳光明媚,微风吹过,文件系统不会过于碎片化,因此磁盘驱动器磁头不必经常寻找。

因此,写入 700 GB 所需时间的硬性下限是 700 * 1024 / 60 = 11947 秒或 3 小时 20 分钟。再多的缓冲也无法解决这个问题,它很快就会被磁盘写入速度和处理器填充消防水带的能力之间的严重不匹配所淹没。仅在花费数倍以上的时间时才开始在代码或磁盘驱动器状态中查找问题。

于 2012-05-07T21:24:59.940 回答
2

如果您从头开始写入文件,则从内存映射文件中没有任何收获。

如果您正在以任何其他模式编写文件,请更新问题:)

于 2012-05-07T21:02:26.257 回答