gpt4 book ai didi

c - 在大文件中进行搜索的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:09:52 25 4
gpt4 key购买 nike

我希望将 KMP(或类似)搜索应用于大文件(> 4GB)。

不过我预计这会给我带来问题。我无法将其全部复制到内存中,因为那里没有足够的空间。

我的问题是,进行此搜索的最佳方法是什么?我应该简单地创建一个 FILE* 并直接在文件中进行搜索,我应该将 block (比如 4k)复制到内存并搜索那些,还是完全其他的东西?

最佳答案

如果你使用的是支持它的平台,你可以使用mmap()。文件的分页也是可能的,但记住保持缓冲区尽可能大以减少 IO 开销,并注意两个页面的边界(假设一个字符串匹配,但被页面边界分割)

或者,我建议您建立某种索引,并使用该索引来限制搜索。 KMP 搜索不是特别有效。这当然取决于文件的性质、文件的创建方式等。

关于c - 在大文件中进行搜索的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1212255/

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