免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5173 | 回复: 13
打印 上一主题 下一主题

怎么让MMAP禁止同步? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-07 15:51 |只看该作者 |倒序浏览
想使用MMAP进行共享内存操作,但不想让系统进行内存与文件的同步,节省磁盘IO,应该怎么做?

论坛徽章:
0
2 [报告]
发表于 2008-04-07 16:16 |只看该作者
linux 上好像没有 MAP_NOSYNC

论坛徽章:
0
3 [报告]
发表于 2008-04-07 16:24 |只看该作者
好像没有办法吧.

论坛徽章:
0
4 [报告]
发表于 2008-04-07 16:25 |只看该作者
我大概猜到LZ想做什么,也许你只能像memcache那样使用内存,用多线程而不是多进程了.

论坛徽章:
0
5 [报告]
发表于 2008-04-07 16:28 |只看该作者
MAP_ANONYMOUS

是做这个用的?

论坛徽章:
0
6 [报告]
发表于 2008-04-07 16:36 |只看该作者
我记得好像有个宏 能提供这个功能

论坛徽章:
0
7 [报告]
发表于 2008-04-07 17:00 |只看该作者
FREE BSD上用MAP_NOSYNC可以,但LINUX上似乎没有~

论坛徽章:
0
8 [报告]
发表于 2008-04-08 11:12 |只看该作者
顶一下

论坛徽章:
0
9 [报告]
发表于 2008-04-08 11:21 |只看该作者
用 shm_open 就可以了,不要用 mmap

论坛徽章:
0
10 [报告]
发表于 2008-04-08 13:16 |只看该作者
msync  flushes  changes made to the in-core copy of a file that was mapped into memory using mmap(2) back to disk.  Without use of this call there
       is no guarantee that changes are written back before munmap(2) is called.  To be more precise, the part of the file that corresponds to the memory
       area starting at start and having length length is updated.  The flags argument may have the bits MS_ASYNC, MS_SYNC and MS_INVALIDATE set, but not
       both MS_ASYNC and MS_SYNC.  MS_ASYNC specifies that an update be scheduled, but the call returns immediately.  MS_SYNC  asks  for  an  update  and
       waits  for  it  to  complete.  MS_INVALIDATE asks to invalidate other mappings of the same file (so that they can be updated with the fresh values
       just written).


默认是不同步的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP