同时写入内存和磁盘

Har*_*rry 0 c c++ memory

我正在开发需要保持一定时间的应用程序牛逼的数据存储器(可配置)和另一个时间T2在磁盘上的持久存储数据的价值.这背后的原因是,频繁询问的数据将被存储在内存中并更快地检索,而较旧的,较少的用户数据将被存储并可在磁盘上检索.

问题是:我不能简单地写入内存,然后在时间t之后将内存缓冲区的全部内容复制到磁盘,就像应用程序崩溃一样,存储在内存中的最新数据将丢失.因此,每次收到新数据时,我都需要将其同时存储在内存和磁盘上.

我的问题是,是否有一种有效的方法将内存中的缓冲区镜像到磁盘的一部分?我正在寻找一种更有效的方法,而不是写入内存,然后在每次数据更新时写入磁盘.

Kar*_*ath 5

你可以对内存映射文件,unix和windows系统都支持这个(但是使用不同的API).之后,您只需写入该内存位置,并在需要时进行同步.