免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234567
最近访问板块 发新帖
楼主: grt8000
打印 上一主题 下一主题

Linux平台写Daemon程序时,频繁使用malloc会不会因为内存碎片导致内存枯竭? [复制链接]

论坛徽章:
0
61 [报告]
发表于 2006-06-20 21:13 |只看该作者
一点看法.

1. 内存碎片是computer science里看似简单但很困难的课题, 过去十几年确是没有很大突破. 有兴趣的看看这篇文章. http://www.cs.northwestern.edu/~pdinda/ics-s05/doc/dsa.pdf

2. FH的观点 "malloc/free的顺序,严格遵从先入后出原则就不会产生任何碎片。" 没错, 但前题条件太强. 否则就不需要malloc/free, 只要obstack就够了.

3. 内存泄漏容易堵上, 内存碎片很难消除. 前面那篇文章(wilson et al)提到, 有数学证明, 任何malloc的实现, 都有一种应用实例使它成为很糟的选择.

4. 小的程序当然不用考虑碎片, 如"date"这种程序甚至不用free. 但是稍大点的项目是必须考虑的. 留意一下商业软件就知道了. 如mingyanguo所说, "对内存管理有特殊需求,那么就自己实现一个内存管理算法好了"

5. malloc/free 是用户层的实现. 是基于OS的VMM上的. 跟CPU 体系没有太多的关系. 一个malloc的实现很方便移植到另一个平台上.

6. Linux RedHat 用的是PTmalloc, 或者说Doug Lee malloc. 写得非常好, 主体就一个文件:malloc.c. 写C/C++的都应当看看. http://gee.cs.oswego.edu/

[ 本帖最后由 Alligator27 于 2006-6-21 09:15 编辑 ]

论坛徽章:
0
62 [报告]
发表于 2006-06-21 16:44 |只看该作者
看个热闹,看不到门道……
道行太浅…………

论坛徽章:
0
63 [报告]
发表于 2006-06-22 14:48 |只看该作者
学习,学习。。。都是高人。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP