我有非常不寻常的要求:
我想加载特定文件夹中的所有文件(到目前为止很容易).我需要内存占用非常小的东西.
我想加载特定文件夹中的所有文件(到目前为止很容易).我需要内存占用非常小的东西.
现在它变得复杂(至少对我而言).我不需要存储或使用文件的内容 – 我只需要强制块级缓存机制来缓存该特定文件夹使用的所有块.
我知道有很多不同的方法(BinaryReader,StreamReader等),但我的情况很特别,因为我不关心内容……
知道如何实现这一目标的最佳方法是什么?
我应该使用小缓冲区吗?但由于它会很快填满,不会冲洗缓冲区实际上会减慢操作速度吗?
谢谢,
马丁
解决方法
我可能会
memory map文件,然后循环访问每个文件的元素以常规(块间隔)间隔.
当然假设你能够使用.Net 4.0.
在伪代码中你会做类似的事情:
using ( var mmf = MemoryMappedFile.CreateFromFile( path ) ) { for ( long offset = 0 ; offset < file.Size ; offset += block_size ) { using ( var acc = accessor = mmf.CreateViewAccessor(offset,1) ) { acc.ReadByte(offset); } } }
原文地址:https://www.jb51.cc/csharp/99244.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。