免费注册 查看新帖 |

Chinaunix

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

linux有查看和整理内存碎片的工具吗? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-06-11 09:08 |显示全部楼层
原帖由 bigluo 于 2008-6-10 14:29 发表


不要以为linux有多么先进,基本所有的操作系统都会存在内部碎片和外部碎片。就linux而言,内部碎片是kernel产生的,这里先不说;malloc/free如果使用不当,也会产生很多碎片,比如下面的代码:


char* p ...

鬼才知道你留着最后这个指针要干什么,这种问题都要工具分析,你怎么不找个工具直接给你分析一下你的代码逻辑是不是对的?

论坛徽章:
0
2 [报告]
发表于 2008-06-13 05:14 |显示全部楼层
原帖由 bigluo 于 2008-6-12 14:27 发表


这样当然是最好了,但是现实当中,至少就我个人而言,所维护的代码70%以上都是别人写的,或者是写的时候没有想到这些问题。等到意识到问题的时候,起码时间上已经不允许再做一个内存管理模块了,只能去通过 ...

你那个图叫做整理?查看容易,整理就是另一回事了。代码烂都是理由还有什么不是理由。

论坛徽章:
0
3 [报告]
发表于 2008-06-13 10:40 |显示全部楼层
原帖由 bigluo 于 2008-6-13 09:59 发表


查很容易,你告诉我呀,或者给点思路呀,别光说不练。

还有,如果到现在你还没有维护过烂代码的话,只能说明:
1. 你现在不是程序员 or
2. 你现在还是个菜鸟。

我弱,我笨,我没你懂。什么时候改一堆烂代码也是显摆的砝码了,怎么不说只能维护烂代码是因为没资格维护好代码啊。
你懂都能懂到连问题都描述不清楚的程度。
找你用的libc的malloc的实现里的数据结构,然后根据这些数据结构的描述来找出堆上的内存使用情况,就这么简单。你费的功夫只是读一下malloc的数据结构与逻辑。如果还想图省事的话直接重新封装个malloc的接口在link的时候做点手脚让你的malloc取代libc的malloc或者你直接define一下把代码里的malloc换成自家的接口,然后你想看什么图看不到?tmd这么简单的事情有什么好问的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP