c++ - 从大文件中读取格式化数据的最有效方法是什么?

标签 c++ c file input io

选项: 1. 将整个文件读入一个巨大的缓冲区,然后解析它。 2. 将文件映射到虚拟内存。 3. 分块读取文件并逐个解析。

该文件可以包含相当随意的数据,但主要是数字、值、字符串等以特定方式(逗号、括号、引号等)格式化的数据。 哪个选项会给我最好的整体性能?

最佳答案

如果文件非常大,那么您可以考虑使用带有选项 2 或 3 的多线程。每个线程可以处理单个文件/内存块,并且您可以重叠 IO 和计算(解析) 这边走。

关于c++ - 从大文件中读取格式化数据的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488994/

相关文章:

javascript - getcwd() 和文件字符串导致文件协议(protocol)错误

c++ - 使用 Win32 执行命令

c++ - VS2008 到 VS 2010 迁移 - 一个重大变化?

在 C-mbed 平台中每 10 秒调用一个函数

c - Windows 程序员转向 Linux - 编码约定

java - Apache POI - Docx 输出问题

.net - 将自定义/新属性添加到任何文件,无论类型和扩展名如何,例如在 .txt 文件上设置 'Author'

c++ - 简化我的程序以将数字从一个基数转换为另一个基数

c++ - CMake 和 Qt5 : Using different components of Qt5 in different subdirectories

c - 如何防止缓冲区溢出造成的密码屏蔽