代码之家  ›  专栏  ›  技术社区  ›  some_id

将open(filename,delayed_write,size,delay)与index组合在一起

  •  2
  • some_id  · 技术社区  · 14 年前

    如何将open(filename,delayed_write,size,delay)与写此数据到何处的索引结合起来?

    我想等到收到一定数量的数据,然后将其写入文件中的某个位置。

    另外,预读,大小与延迟写入、大小、延迟相反?我想阅读一定数量的数据来发送它。

    谢谢

    1 回复  |  直到 14 年前
        1
  •  2
  •   Peer Stritzinger    14 年前

    预读与迟写有点相反,即读与写是相反的。

    如果你想读取和发送更大的内存块,你不需要提前读取,只需读取大内存块并发送它们(这里不需要保存太多操作系统调用)。

    来自 file:open/2 预读页面:

    如果read/2调用的大小不明显小于或甚至大于 字节,没有预期的性能提升。

    打开时不需要指定和索引。只是使用 pwrite/3 或者是 position/2 write/2 .

    但是在文件的不同位置写入可能会减少 delayed_write 自(也包括第页,共页) 文件:打开/2 ):

    缓冲的 数据也会在其他文件之前刷新 执行的操作不是WRITE/2。

    如果有多个职位的数据块,请将其收集到 {Location, Bytes} 不时地用 file:pwrite/2 一气呵成。这可以映射到非常有效的 writev(2) 一次写入多个块的系统调用。