gpt4 book ai didi

c - 重新排列文件的内容

转载 作者:行者123 更新时间:2023-11-30 17:50:45 27 4
gpt4 key购买 nike

我正在尝试优化在节点中存储数据的存档格式。随着时间的推移,容器变得困惑(小的不可用的“空闲”空间节点积累等)。我正在做的事情类似于碎片整理。我已经有了所有数据位置的列表,以及我希望数据处于最终状态的位置的表示,但我正在努力将实际数据从当前配置移动到最佳配置。这些元素的大小不同,也不是任何最小块的倍数(除非计算字节)。有什么我忽略的明显方法吗?我什至不确定这个问题被称为搜索算法,我得到的最接近的是就地排序。

到目前为止,我已经尝试过交换数据 block ,但我需要跟踪节点碎片,而且它变得太困惑而不可行。

我不想诉诸于编写临时副本然后进行替换,因为文件非常大。

最佳答案

就性能而言,将数据复制到新文件很可能是最佳选择。

如果可用磁盘空间是一个问题,那么您将会度过一段愉快的时光,因为这需要一些精湛的黑客技能才能加快速度。我认为,最好的办法是分配一大块缓冲区内存,并在数据驻留在该缓冲区内的文件中维护一个漏洞列表。然后,您首先从文件开头开始,用所有不合适的内容填充此缓冲区。一旦缓冲区已满,您可以将数据从任何地方复制到孔中,并继续将数据推送到要填充的孔末尾的缓冲区中。每当你用完缓冲区空间时,你就需要跳过最大的可用空洞并移动属于那里的数据。正如我所说,这并不容易,但可能会很有趣......

关于c - 重新排列文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17071931/

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