免费注册 查看新帖 |

Chinaunix

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

[C] mmap内存占用问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-02 14:08 |只看该作者 |倒序浏览
这两天在折腾 mmap 函数

函数原型
        void *mmap(void *start, size_t length, int prot, int flags,  int fd, off_t offset);


映射一个1G 的文件的时候, offset = 0,
当 length = 100 M ,系统剩余内存 72 M
当 length = 1000M,系统剩余内存为71 M

几乎对系统内存没有影响。查看内存的时候我把程序sleep掉,然后用free查看

什么原因?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2008-04-02 14:11 |只看该作者
mmap 只占用地址空间,不占用内存。

论坛徽章:
0
3 [报告]
发表于 2008-04-02 14:17 |只看该作者
mmap具体怎么实现的
我看过unix网络编程 卷2
没有讲到实现的原理

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2008-04-02 14:20 |只看该作者
原帖由 印随 于 2008-4-2 14:17 发表
mmap具体怎么实现的
我看过unix网络编程 卷2
没有讲到实现的原理

mmap 是内核实现的,相当于 read/write 的语法糖。
没什么神奇的地方。

论坛徽章:
0
5 [报告]
发表于 2008-04-02 14:22 |只看该作者
flw:
先谢过了
我原来的Blog是在wordpress上的,
想转移到chinaunix上,有没有合适的“搬家工具”?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2008-04-02 14:25 |只看该作者
原帖由 印随 于 2008-4-2 14:22 发表
flw:
先谢过了
我原来的Blog是在wordpress上的,
想转移到chinaunix上,有没有合适的“搬家工具”?

没怎么用过 blog。

论坛徽章:
0
7 [报告]
发表于 2008-04-02 14:35 |只看该作者
让机器人替你做就行了。

论坛徽章:
0
8 [报告]
发表于 2008-04-02 14:53 |只看该作者
malloc也不占内存.

你分配1M, 和分配1G看也有你的效果.

当向内存中写东西时候才真正占用.


原帖由 印随 于 2008-4-2 14:08 发表
这两天在折腾 mmap 函数

函数原型
        void *mmap(void *start, size_t length, int prot, int flags,  int fd, off_t offset);


映射一个1G 的文件的时候, offset = 0,
当 length = 100 M ,系统 ...

论坛徽章:
0
9 [报告]
发表于 2008-04-02 15:41 |只看该作者
原帖由 思一克 于 2008-4-2 14:53 发表
malloc也不占内存.

你分配1M, 和分配1G看也有你的效果.

当向内存中写东西时候才真正占用.



mmap也一样吗?

1G的内存地址我都访问过,但系统内存也没有大的变化

实际上是有变化的,在我的系统中,内存占用一直增长,直到剩余内存为十几M的时候停了

[ 本帖最后由 印随 于 2008-4-3 09:59 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-04-02 15:50 |只看该作者
无论如何, 你向内存写东西了(比如每页开始写几个BYTES), 就必须有物理内存分配了.
你可以用LOCK标志再测试. 如果不用, 可能被交换出去的.

原帖由 印随 于 2008-4-2 15:41 发表

mmap也一样吗?

1G的内存地址我都访问过,但系统内存也没有大的变化
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP