请教内存映射文件写操作的问题

lj1978   2008-1-3 22:14 楼主
各位大侠,我想问个问题,我需要不停的象创建的一个文件中写入数据,用了直接的写文件的方式比较慢,因为数据量比较大,想用内存映射的方法,先创建好一个文件,然后把这个文件映射到内存中,然后对相应的映射的内存写入数据用FlushViewOfFile可以吗,还有数据量比较大而且数据来的比较快,因此FlushViewOfFile函数的第二个参数--写入的字节数不容易确定,或者达到近1M,这个参数该怎么写呢。 谢谢各位大侠了,急

回复评论 (3)

1 ,对于函数本身,请参照网上的最新msdn,应该说明的很清楚。
2,对快慢问题,用内存映射并不能提高速度,因为操作系统替你完成了内存回写,也是要花时间和占资源的,表象是你不用做一些工作。。。呵呵本质不一定快
3,只要你不反复的打开关闭文件,你完全可以往一个文件里写。。。。最后一次回写(嵌入式的内存一般都不大,超过预留内存就必须回写,否则系统就会死机。。。),如果你觉得速度慢,就要从硬件角度考虑了,看看你用的mcu的速度是否适合你当前的应用了。。。
点赞  2008-1-4 00:10
是啊,我看过关于内存映射的内容后也感觉到它只是帮助你在对现有的文件的内容进行操作处理的时候速度比较快,因为是直接对内存操作,而对于保存文件好像并不能起到太大作用,关于内存映射更多的资料说的是关于数据共享的优势,我这样理解是否正确啊。

谢谢你的回复,呵呵。
点赞  2008-1-4 10:15
恩,它的优势更多的在于多应用之间的数据共享,通俗点就是通讯交互
点赞  2008-1-4 20:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复