免费注册 查看新帖 |

Chinaunix

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

这样做会发生内存泄漏吗? [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2005-05-22 08:32 |只看该作者

这样做会发生内存泄漏吗?

[quote]原帖由 "tensor"]建议使用purify测试.这种活还是叫计算机自己做吧 [/quote 发表:


还是在写代码的时候就做到“手脚利索”最好了。   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2005-05-22 09:31 |只看该作者

这样做会发生内存泄漏吗?

[quote]原帖由 "aero"]正解。[/quote 发表:

估计是指针传来传去 coder 自己都传晕了,不知道该不该释放了。所以就没释放。
再要不就是程序流程中有一个分支可以提前 break 掉而不用 free。

论坛徽章:
0
13 [报告]
发表于 2005-05-22 14:11 |只看该作者

这样做会发生内存泄漏吗?

malloc 和free
new 和delete
成对的规则。

只要保证完成任务,我觉得就没问题吧。

论坛徽章:
0
14 [报告]
发表于 2005-05-22 15:34 |只看该作者

这样做会发生内存泄漏吗?

释放内存和线程没有关系。概念上的重点是,谁在真正地管理内存。无论进程、线程都是不真正管理内存的(不去操作真正的lookup table->;惭愧,久了都不知道怎么翻译了),而系统(OS)是实际承担这个责任的角色。无论谁去通知系统释放一块内存,只要是在权限范围内,并且地址说对了,系统就执行。所以线程A或者线程B去告诉系统“释放第5号内存块”的效果是一样的。

论坛徽章:
0
15 [报告]
发表于 2005-05-23 23:07 |只看该作者

这样做会发生内存泄漏吗?

原帖由 "ukin50" 发表:
秦半仙你说的是真的还是假的,能解释解释为什么么?(我也回去看看他是不是增加到一定程度就不增加了)

我现在的东西也是一个服务器,pop3的,有bug,就是运行到一定程度自己会down掉……我用一个叫做DevPartner?.........


既然已经知道哪儿malloc的内存没有free, 就应当容易补漏了. BTW, mtrace报告泄漏内存的地址/大小/一层stack frame.

论坛徽章:
0
16 [报告]
发表于 2005-05-24 09:40 |只看该作者

这样做会发生内存泄漏吗?

同一进程内的多个线程是不是共享一个堆(对于linux glibc malloc)?

论坛徽章:
0
17 [报告]
发表于 2005-05-24 09:45 |只看该作者

这样做会发生内存泄漏吗?

给我的感觉是线程没有设置成detached状态,这样导致每次线程退出时会有大约4k的内存没有得到释放,不知道win是不是这样处理的.

论坛徽章:
0
18 [报告]
发表于 2005-05-24 11:16 |只看该作者

这样做会发生内存泄漏吗?

你怎么知道是因为malloc而导致内存泄漏?只要free了应该是没问题的!可能是你其他用的数组什么的越界吧??

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
19 [报告]
发表于 2005-05-24 11:19 |只看该作者

这样做会发生内存泄漏吗?

[quote]原帖由 "henngy"]你怎么知道是因为malloc而导致内存泄漏?只要free了应该是没问题的!可能是你其他用的数组什么的越界吧??[/quote 发表:


晕,数组越界和内存泄漏是一回事吗?

论坛徽章:
0
20 [报告]
发表于 2005-05-24 13:16 |只看该作者

这样做会发生内存泄漏吗?

windows下不停的4k,4k地增加的原因:

windows使用了页面交换内存,程序的某些运行时内存被放在交换文件,在程序运行过程中,如果出现内存未载入物理内存时,windows引发一个缺页中断,接着系统会将一个页面载入到物理内存,x86的系统页面大小为4k.所以从任务管理器里面看到的结果就是增加了4k的内存.

简单的测试方法: 先运行一个程序,然后最小化一下,这时候程序所占用的内存将会变为只有几K的大小,接着可以看到内存不停的往上增加(如果程序正在执行很多操作的话).

另外,任务管理器里面有一个虚拟内存选项,可以根据虚拟内存和具体的内存占用这两项来判断是否出现了内存泄漏. 如果要准确的判断是否存在内存泄漏,在win下有个crtdgb.h中的几个api可以用.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP