我写一个应用程序来读取和分析这可能是1 KB到大小为200 MB的文件。
我要分析它的两倍......
解压缩文件中包含的图像。
解析图像提取图像内容。
我一般用文件流,缓冲流,二进制读取和二进制作家读取和写入的内容。
现在,我想知道读取文件并解压速度最快和最有效的方式?
有没有好的方法还是不错的类库?
注:不安全的代码是OK!
我写一个应用程序来读取和分析这可能是1 KB到大小为200 MB的文件。
我要分析它的两倍......
解压缩文件中包含的图像。
解析图像提取图像内容。
我一般用文件流,缓冲流,二进制读取和二进制作家读取和写入的内容。
现在,我想知道读取文件并解压速度最快和最有效的方式?
有没有好的方法还是不错的类库?
注:不安全的代码是OK!
读取文件的速度最快,最简单的方法就是:
var file = File.ReadAllBytes(fileName);
将读取整个文件作为字节数组到内存中。 然后,您可以通过它去寻找你需要在存储阵列的访问速度(这是说,速度极快)什么。 这几乎肯定会比试图为你读它来处理文件速度更快。
但是 ,如果这个文件将不会轻松装入内存(81 MB会),那么你就需要做这大块。 如果这是不需要的,我们可以有把握地避免棘手的讨论。 在这种情况下,解决方案将实行:
如果使用.NET 4.0,使用内存映射文件 (更多什么是内存映射文件的优势是什么? )。
如果没有,你需要阅读块,缓存和保持周围你认为你会在存储器(效率)需要或在重新阅读它,你根本无法保持它在内存中。 这可以成为混乱和迟缓。