gpt4 book ai didi

linux - 写入内存映射稀疏文件的空洞

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:49 28 4
gpt4 key购买 nike

我需要一个文件,其中某些字节是连续布局的。让我们称这些 block 。 block 需要连续布局的原因是这些 block 最终会被内存映射到一个数组。一个文件会有几个 block (这些 block 对应于不同但相关的数组),并且这些 block 需要随着时间的推移而附加。我首先想到的是使用稀疏文件并在 block 间边界处打洞。

每当我有新数据时,我就可以在孔中写入。如果孔中的可用空间不够,我打算移动最少量的字节来创建空间和(为将来提供一些额外空间),然后写入数据。

  1. 这是一种错误的做事方式吗?
  2. 这种方法是否有好的替代方法
  3. 操作系统 (Linux) 如何处理空洞中的写入,是吗?移动(移动)尾部的所有字节?或者重组 inode 以某种方式容纳(以碎片化为代价)
  4. 是否有最佳方法可以使平摊移动成本为小

最佳答案

  1. 很可能是的。

  2. Linux 已经配备了一个系统,用于跟踪多个连续的字节序列并进行高效追加:文件系统。不能只使用多个文件吗?

  3. 如果您使用现代 Linux fs(即非 FAT32),它将保留现有数据并分配额外空间。这可能是在预先分配的范围/ block 中,也可能是通过碎片。留给 FS 来解决这个问题。

  4. “最佳”取决于您的使用模式以及您对时间与空间的重视程度。很难做出一般性的评论,但是有很多 CS 论文介绍如何在各种假设下分配和重新分配字节 block 。

关于linux - 写入内存映射稀疏文件的空洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24129629/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com