0

我将运行一个应用程序,每次运行时需要大约 200MB 的市场数据。这些天来存储在内存中的数据量很小,所以为了速度,这就是我想要做的。

在一天的会话过程中,我可能会一遍又一遍地运行、重新运行、重写和重新运行等一个或多个应用程序。

所以,问题是如何整天将数据保存在内存中,这样即使应用程序崩溃,我也不必通过打开磁盘上的数据文件并重新加载数据来重新加载数据?

我最初的想法是编写一个数据服务器应用程序,它只会将数据读入共享内存,以便它可以使用。如果我这样做,我想我可以通过调用为 IPC 使用内存映射

创建文件()

创建文件映射()

MapViewOfFile()

有更好的 IPC/方法吗?

4

2 回答 2

1

只是内存映射数据文件。除非您的计算机内存不足,否则即使程序退出,文件也会保留在文件缓存中。下次启动时,访问速度会很快。

如果您的内存数据与磁盘数据不同,只需使用两个文件。重新启动时,检查写入内存文件的时间戳和文件修订以与磁盘文件进行比较,这样您的程序就会知道哪个具有最新数据。

于 2009-05-10T17:48:22.443 回答
1

如果你有足够的内存并且没有其他东西需要内存,那可能会减少你的启动时间。为了保证对内存的访问,您可能希望在命名共享内存中拥有一个内存映射文件,如此所述。您可以让一个简单的程序创建共享并对其进行管理,这样您就可以保证它保留在内存中。

于 2009-05-11T00:09:15.007 回答