我有一个控制台应用程序,它每天运行一百次,并从大文件中读取相同的数据(例如总大小为3-4 Gb的50个文件)。.NET是否有可能在进程之间共享大内存集合?
我想制作一个Windows服务,它将缓存数据在内存中,以加快访问速度,并控制数据的使用寿命(因为这50个文件的设置可能每天都有所不同)。
我要实现共享内存映射文件,以便控制台应用程序将从内存由服务所写的文件...
但是还有另外一个考虑因素。读取的数据每次都转换为.NET对象。
所以我的问题 - 有没有办法共享不是文件,但内存中的.NET对象(列表)?
P.S.该数据是手动序列化的一系列字节
查看TomTom的回答。作为一种解决方法,如果它适合您的需求,您可以创建一个服务来管理数据并对该数据执行逻辑。如果只是简单地搜索或汇总,那么......您的控制台应用程序只需调用服务中的方法并处理该方法的结果。 – Polity 2012-03-07 12:14:51
3-4 GB的内存?真?哎呀它伤害.. – Steve 2012-03-07 12:18:50
@Polity - 如果我可以我不会打扰映射文件等逻辑本身每天改变100次。数据是静态的。这就是为什么我正在以我解释的方式做事... – 2012-03-07 19:47:22