文件映射求问,该怎么处理
文件映射求问
请问各位大大,文件映射写入的数据是什么时候写如磁盘的时候
A.UnmapViewOfFile的时候
B.手动调用FlushViewOfFile的时候
C.CloseHandle的时候(CreateFileMapping的句柄)
D.操作系统过XXX秒会自动刷新
E.鬼才知道
F.顶
G.++
H.和谐该选项,该英文单词不美好
I.路过
J.同问
------解决方案--------------------
文件映射和虚拟内存走的都是虚拟内存缓冲的机制。当物理内存不足时缓冲管理器就会把它认为最不可能马上会用的内存页写入磁盘(虚拟内存文件或者指定的映射文件)。而判定“物理内存不足”取决于进程的workingset,也就是一个进程可以使用多少物理内存,当达到上限就开始写磁盘了。心在的windows系统里,workingset会随系统中内存使用情况缩放,不是固定的。
------解决方案--------------------
不是,只有FlushViewOfFile能确保,除非你能确定那块内容只有一个View。
请问各位大大,文件映射写入的数据是什么时候写如磁盘的时候
A.UnmapViewOfFile的时候
B.手动调用FlushViewOfFile的时候
C.CloseHandle的时候(CreateFileMapping的句柄)
D.操作系统过XXX秒会自动刷新
E.鬼才知道
F.顶
G.++
H.和谐该选项,该英文单词不美好
I.路过
J.同问
------解决方案--------------------
文件映射和虚拟内存走的都是虚拟内存缓冲的机制。当物理内存不足时缓冲管理器就会把它认为最不可能马上会用的内存页写入磁盘(虚拟内存文件或者指定的映射文件)。而判定“物理内存不足”取决于进程的workingset,也就是一个进程可以使用多少物理内存,当达到上限就开始写磁盘了。心在的windows系统里,workingset会随系统中内存使用情况缩放,不是固定的。
------解决方案--------------------
不是,只有FlushViewOfFile能确保,除非你能确定那块内容只有一个View。