我正在将一个大文件(约200GB)映射到单个区域/视图中并进行顺序写入。时不时地,我会执行
boost::interprocess::mapped_region::flush(last, current, false)
。
过一段时间后,该进程将使用完整个系统内存。从我所了解的情况来看,这是正常的,因为它将在其他进程请求内存时释放内存。
在Windows 8上表现良好。但在Windows 7上运行时,似乎与AJA视频卡的驱动程序不兼容,并且会影响性能(IO数据包下降)。
是否有任何方法可以强制Windows 7将某些内存部分刷新到磁盘上(数据写入后仅几秒钟感兴趣,并且请记住,我正在通过整个文件进行顺序写入),以避免使用完整个可用系统内存?