是否有一种经过验证的方法可以在.NET中快速访问非常大(> 1 GB)的二进制文件的特定区域

时间:2010-07-29 18:56:00

标签: .net performance parsing file-io binaryfiles

使用非常大的原始二进制数据文件,我将创建一个大型二进制文件(大于1 GB,通常大于4 GB),其中包含来自一系列传感器(1到64)的传感器数据。用户将在GUI中使用新处理的文件,在GUI中,他们将在文件中跳转,查看不同的时间段或可能定义的其他索引。访问尽可能顺利是很重要的,我也希望只根据需要加载(用户看到的内容加上可能有点缓冲区)。

我想构造处理过的数据文件,使其在开头有一个索引,然后用于跳转到该人想去的任何地方。

我应该从头开始写这个吗?或者是否有一些辅助库可能会被使用?

我不仅仅对原始原始数据文件进行索引的原因是,它的创建方式绝对不是读取单个传感器的最佳方式(运行压缩,存储在DCT块中的数据等)。 )。

1 个答案:

答案 0 :(得分:3)

您可以使用内存映射文件。在.NET 4.0中,现在有包装器: http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx

如果您需要定位早期版本,则必须自行调用API方法: http://msdn.microsoft.com/en-us/library/aa366537.aspx