我正在开发需要保持一定时间的数据牛逼存储器(可配置)的应用程序和其他时间T2价值的数据在磁盘上的持久性存储。这样做的原因是,经常询问的数据将被存储在内存中,并被更快地检索,而较旧的,不太常见的用户数据将被存储和检索到磁盘上。写入内存和磁盘同时
的问题是:我不能简单地写入到内存中,然后时间牛逼后内存中buffer to disk的全部内容复制为如果应用程序崩溃,内存中存储的最新的数据将会丢失。所以每次接收到新数据时,我都需要将它同时存储在内存和磁盘上。
我的问题是,有没有一种有效的方式来将内存中的缓冲区镜像到磁盘的一部分?我正在寻找一种更有效的方式,而不是写入内存,然后再写入每个数据更新的磁盘。
的mmap()应该是你的朋友,我相信:http://en.wikipedia.org/wiki/Mmap这适用于POSIX系统(例如Linux和Mac)。如果你在Windows上,MapViewOfFile应该提供类似的功能:http://msdn.microsoft.com /en-us/library/aa366761.aspx –
@Nikos Chantziaras:如果我在amiga上怎么办? – megazord
您是否担心应用程序崩溃(操作系统缓冲区仍然有效)或计算机崩溃? –