我有一个控制台应用程序,每天运行数百次,并从大型文件(例如50个文件,总大小为3-4 Gb)中读取相同的数据。
我考虑创建一个Windows服务,将数据缓存在内存中以加快访问速度,并控制数据的生命周期(因为这50个文件集可能会随着时间而变化)。
我打算实现共享内存映射文件,因此控制台应用程序将从服务写入的内存中读取文件...
但是还有另一个考虑因素。每次读取的数据都会转换为.NET对象。
所以我的问题是 - 是否有一种方法可以在内存中共享.NET对象(List),而不是文件?
P.S. 数据是手动序列化的一系列字节。
我考虑创建一个Windows服务,将数据缓存在内存中以加快访问速度,并控制数据的生命周期(因为这50个文件集可能会随着时间而变化)。
我打算实现共享内存映射文件,因此控制台应用程序将从服务写入的内存中读取文件...
但是还有另一个考虑因素。每次读取的数据都会转换为.NET对象。
所以我的问题是 - 是否有一种方法可以在内存中共享.NET对象(List),而不是文件?
P.S. 数据是手动序列化的一系列字节。
IntPtr
)in-situ共享单个行。 - Glenn Slayden