gpt4 book ai didi

c++ - 使用 C++ 读取文件的最快方法是什么

转载 作者:太空狗 更新时间:2023-10-29 21:02:03 25 4
gpt4 key购买 nike

读取文件意味着我将读取硬盘上的所有文档(doc、docx、xls、xml、txt...)。

我想我的大部分文件都在 10KB ~ 1MB 左右。

如果有任何特定的词,我会读取文件并过滤文本。

所以我的猜测是我应该有线程池和 1 个读取文件的线程以及其他执行过滤的线程。

听说有MMFCreateFile/ReadFile或者I/O完成端口来读取每个文件。

我应该使用什么功能?

最佳答案

在我的测试中,内存映射文件是将内容加载到内存中最快的方式,优势很小。

我在 Linux 上进行的测试,但是由于将文件加载到内存映射区域的方法是一次将一页中的数据复制到操作系统拥有的内存中 [内存映射文件支持内存是完全由操作系统拥有和处理,因此操作系统有能力将内存“锁定”到位,等等]。这比将一段文件读入内核缓冲区然后将该内容复制到应用程序提供的缓冲区要快,因为它避免了一次复制。然而,对于大文件(或许多小文件),主要的限制因素仍然是“硬盘传送数据的速度有多快”——对我的系统来说大约是 60MB/s。你可以让它比系统产生的慢,但不能更快。

关于c++ - 使用 C++ 读取文件的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16437413/

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