gpt4 book ai didi

c - 如何提高多线程读取文件的性能?

转载 作者:IT王子 更新时间:2023-10-29 01:04:23 25 4
gpt4 key购买 nike

我需要在 Linux 下使用多线程读取单个文件。只有读操作,不需要写。文件读取不需要每次都读取整个文件。每次都需要读取文件的一个或多个部分。我预先存储每个部分的偏移量。文件太大,无法放入主存。

例如,许多用户想要阅读这样的文件。我使用线程或进程读取文件来响应用户请求。在 Linux 下会发生什么?所有的读操作都会排队吗?而OS会一个一个完成文件的读取吗?是否有可能提高此类操作的性能?

我正在尝试实现一个用于信息检索的简单倒排索引。我将字典放在内存中并在文件中发布列表。每个文件都包含一段索引。在字典中,我可以存储一些类似偏移量的东西来指向单词发布列表的位置。当 100 个用户想在一秒钟内搜索某个内容时,他们会提交不同的查询。所以每次读取都会读取文件的不同部分。

最佳答案

尝试以最简单的方式开始实现它 - 让操作系统处理通过缓存等使其高效。看看性能如何 - 它可能根本不是瓶颈。操作系统通常擅长这类事情:)

假设您能够多次打开文件进行共享阅读,我希望它能正常工作,而无需排队所有读取操作。

关于c - 如何提高多线程读取文件的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1470210/

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