免费注册 查看新帖 |

Chinaunix

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

[C] 程序结束时释放内存的必要性 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-06-15 08:31 |只看该作者
apue2上的一段话
If a process calls malloc, but forgets to call free, its memory usage continually increases; this is called leakage. By not calling free to return unused space, the size of a process's address space slowly increases until no free space is left. During this time, performance can degrade from excess paging overhead.

论坛徽章:
0
22 [报告]
发表于 2009-06-15 09:35 |只看该作者
我觉得主要应该避免运行时的泄漏,结束后的泄漏一般和资源占用相关。

论坛徽章:
0
23 [报告]
发表于 2009-06-15 10:14 |只看该作者
原帖由 langue 于 2009-6-13 17:31 发表
内核里的一些数据结构可能还没有释放。为了最大限度地减少内存泄露,请注意资源的释放。


顶一下这个吧。

感觉特别是进程间共享的互斥体,信号量什么的。
(本人没有刻意试验过,但以前Windows上用来确保单实例运行的进程间互斥体,在win2000下,进程崩溃后依然残留。)

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
24 [报告]
发表于 2009-06-15 10:29 |只看该作者
原帖由 ziffer 于 2009-6-13 14:55 发表
程序遇到异常退出时是否需要专门去释放内存,因为整个进程空间都被取消了,也就不存在内存泄漏了,还用花费额外的开销去手动释放内存吗?(我说的仅仅是释放内存资源这块的必要性)


如果这个异常导致整个操作系统崩溃就没有必要啦

论坛徽章:
0
25 [报告]
发表于 2009-06-15 15:46 |只看该作者
最好是显式的释放掉所有的内存。
如果程序本身是单进程,且没有直接调用内核的话,一般来说系统会自动帮你清理掉所有内存的。不过意外有可能发生,哈哈!

论坛徽章:
0
26 [报告]
发表于 2009-06-15 16:20 |只看该作者
原帖由 felixzxh 于 2009-6-15 08:31 发表
apue2上的一段话
If a process calls malloc, but forgets to call free, its memory usage continually increases; this is called leakage. By not calling free to return unused space, the size of a process's address space slowly increases until no free space is left. During this time, performance can degrade from excess paging overhead.


我觉得这段只是说进程运行过程中不释放会内存泄露,但是并没有讲到程序结束后会如何。
楼上似乎也大都是个人感觉或者就编程习惯方面在说,不知道能不能举出具体的例子来说明呢?
会不会有什么资源不会由操作系统自动释放?

论坛徽章:
0
27 [报告]
发表于 2009-06-15 19:24 |只看该作者
看了大家的讨论,受益非浅,同时也确定,在进程异常退出或者即将结束时,可以不释放,但是为了以后的扩展和程序的完整,还是应该释放的。

论坛徽章:
0
28 [报告]
发表于 2009-06-15 22:27 |只看该作者
建了共享内存或者队列就要考虑是否应该放了


记得刚才始学习队列编程时不知道要释放,写个测试程序跑了很多次后发现再也建不了队列了

上网查才知道错了

论坛徽章:
0
29 [报告]
发表于 2009-06-15 23:53 |只看该作者
貌似没有必要

论坛徽章:
0
30 [报告]
发表于 2009-06-16 07:31 |只看该作者
个人习惯问题,收回
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP