我正在写大文件,范围从70到700GB。有没有人有经验,如果内存映射文件比常规写入块更有效? 代码将使用c ++并在linux 2.6上运行
答案 0 :(得分:2)
如果您从头开始编写文件,则无法从映射文件的内存中获取任何内容。
如果您以任何其他模式编写文件,请更新问题:)
答案 1 :(得分:2)
消费级驱动器的典型持续硬盘传输速度约为每秒60兆字节,阳光明媚,背面微风,文件系统不会太碎片,因此磁盘驱动器头也不必寻求经常。
因此,写入700千兆字节所需时间的硬下限是700 * 1024/60 = 11947秒或3小时20分钟。没有多少缓冲可以解决这个问题,它会很快被磁盘写入速度与处理器填充消防水带的能力之间的巨大不匹配所淹没。只有在需要几倍的时间后才开始在代码或磁盘驱动器状态下查找问题。