日期:2014-05-16  浏览次数:20765 次

总物理内存为16g。c#如何缓存8g的文件到内存中?memorystream?
有一个大文件,大小不变动。是16位md5的集合。想用memorystream把它缓存到内存中。但发现有时候1g多或到2g的时候就内存溢出了。拿不到内存。我看mongodb sql server 都能占用到10多g内存以上。但c#咋做?
------解决方案--------------------
如果是MD5的集合,可以采用二分法搜索,比你所谓加载在内存中顺序查找快很多(1G级别的顺序查找,对比25次级别的二分法查找)。2分法搜索甚至可以直接在硬盘上做。

条件就是事先排序文件中的数据。
------解决方案--------------------
如果是64b系统,可以把文件在内存中分割成8个1G的byte[]。