解析/跳转具有大小元素的大型二进制文件的最快方法
fastest way to parse/jump through large binary file with sized elements
我需要解析包含元素序列的二进制文件。元素的格式如下:4字节:元素的名称4字节:元素的大小变量大小:元素
的数据我只需要解析文件并提取每个元素的名称,位置和大小。典型的元素大小约为100kb,典型的文件大小约为10GB。
浏览这样一个文件最快的方法是什么?读取文件的所有数据,寻找下一个元素,还有其他方法吗?
文件是本地的还是通过网络的有区别吗?
你不想做的一件事是使用未缓冲的读取(即操作系统调用)来读取每个单独的元素。您可以通过缓冲读取的简单方法获得不错的性能。如果内存不是一个问题,那么您可以通过使用内存映射文件来压缩时间,并使用预取线程来填充映射。
相关文章:
- 正在读取二进制文件(is_open)
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 保存/加载大量短数组到二进制文件
- 将大型二进制字符串写入二进制文件
- 在 C++ 优化中合并大型二进制文件
- 如何将大型二进制文件(10000k 位)转换为基数 3 或基数 31?
- 解析大型文本文件并使用C++将其存储在树(二进制或 AVL)中
- 具有标准C++的大型二进制文件副本
- 无法将大型无符号整数正确写入二进制文件 - C++
- 在执行期间将大型多维数组读取和写入二进制文件并返回数组
- 大型二进制文件添加
- ofstream::write 在写入大型二进制文件时中间失败
- 使用 ifstream 剂量读取大型二进制文件不会填充字符缓冲区C++
- 使用datastax c++驱动程序将大型二进制文件或数组(超过64MB)插入Cassandra
- 编辑大型二进制文件
- 解析/跳转具有大小元素的大型二进制文件的最快方法
- 可以打开小型ASCII文件,但不能打开大型二进制文件
- 在C++中,将大型二进制(1GB-4GB)文件加载到内存中的最快方法是什么
- 如何在 c++ 中确定大型二进制文件的大小