Programming 版 (精华区)
发信人: JJason (总统~~), 信区: Programming
标 题: [合集]用new动态分配的内存如果不被release
发信站: 哈工大紫丁香 (2003年03月10日10:44:35 星期一), 站内信件
────────────────────────────────────────
gunslover (learn to live like an animal) 于 2002年12月22日10:56:55 星期天 说道:
如果new
之后没有release
那么程序结束后
分配的内存系统会不会收回??
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月22日11:06:01 星期天 说道:
当然会了,操作系统做的
【 在 gunslover (learn to live like an animal) 的大作中提到: 】
: 如果new
: 之后没有release
: 那么程序结束后
: 分配的内存系统会不会收回??
────────────────────────────────────────
xceman (辉->雪狼*遥望北方) 于 2002年12月22日11:53:14 星期天 说道:
???
真有这等好事?
【 在 charlie (飞龙在天) 的大作中提到: 】
: 当然会了,操作系统做的
: 【 在 gunslover (learn to live like an animal) 的大作中提到: 】
: : 如果new
: : 之后没有release
: : 那么程序结束后
: : 分配的内存系统会不会收回??
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月22日12:02:58 星期天 说道:
你的程序都退出来了还怕什么?
不然的话内存泄露一段时间我的机器就没有内存了
【 在 xceman (辉->雪狼*遥望北方) 的大作中提到: 】
: ???
: 真有这等好事?
: 【 在 charlie (飞龙在天) 的大作中提到: 】
: : 当然会了,操作系统做的
────────────────────────────────────────
lizhenguo (Making software) 于 2002年12月22日13:38:00 星期天 说道:
耶~~~~~我从来不主动释放诶。
【 在 charlie (飞龙在天) 的大作中提到: 】
: 你的程序都退出来了还怕什么?
: 不然的话内存泄露一段时间我的机器就没有内存了
: 【 在 xceman (辉->雪狼*遥望北方) 的大作中提到: 】
: : ???
: : 真有这等好事?
────────────────────────────────────────
Scorpion (C:\documents and settings) 于 2002年12月22日14:14:29 星期天 说道:
那也得的看是什么操作系统吧。
2k下可以
dos下可以吗?
linuxs下呢?
【 在 charlie (飞龙在天) 的大作中提到: 】
: 当然会了,操作系统做的
: 【 在 gunslover (learn to live like an animal) 的大作中提到: 】
: : 如果new
: : 之后没有release
: : 那么程序结束后
: : 分配的内存系统会不会收回??
────────────────────────────────────────
JJason (酱牛肉~~想家了:() 于 2002年12月22日15:19:08 星期天 说道:
这样做不好
有的系统不退出怎么办?
【 在 charlie (飞龙在天) 的大作中提到: 】
: 当然会了,操作系统做的
: 【 在 gunslover (learn to live like an animal) 的大作中提到: 】
: : 如果new
: : 之后没有release
: : 那么程序结束后
: : 分配的内存系统会不会收回??
────────────────────────────────────────
pamws (书虫) 于 2002年12月22日15:36:56 星期天 说道:
这么肯定? 那样的话为什么Java要对自己的Garbage Collection大吹特吹?
【 在 charlie (飞龙在天) 的大作中提到: 】
: 当然会了,操作系统做的
: 【 在 gunslover (learn to live like an animal) 的大作中提到: 】
: : 如果new
: : 之后没有release
: : 那么程序结束后
: : 分配的内存系统会不会收回??
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月22日16:19:08 星期天 说道:
如果你的程序不退出系统也没有办法,这个时候分配给你的程序的空间由你的程序支配
,操作系统管不着
【 在 JJason (酱牛肉~~想家了:() 的大作中提到: 】
: 这样做不好
: 有的系统不退出怎么办?
: 【 在 charlie (飞龙在天) 的大作中提到: 】
: : 当然会了,操作系统做的
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月22日16:20:36 星期天 说道:
应为这样的话程序员就不用担心内存回收的事情了
【 在 pamws (书虫) 的大作中提到: 】
: 这么肯定? 那样的话为什么Java要对自己的Garbage Collection大吹特吹?
: 【 在 charlie (飞龙在天) 的大作中提到: 】
: : 当然会了,操作系统做的
────────────────────────────────────────
thj (无名) 于 2002年12月22日16:28:38 星期天 说道:
这个问题要分两个方面来看:
1.如果程序在运行过程中不释放内存,必然导致内存消耗越来越多,最后导致系统崩溃。
这个问题对于服务级程序来说相当重要(运行几个月或几年,机器肯定受不了)。这个
问题操作系统无能为力。
2.程序如果退出的话,os应该有能力回收大部分内存,这个依据就是进程的页表,
操作系统应该可以根据页表来判断进程使用了多少物理内存,从而释放之。但是如果
存在共享内存的话,可能就不太好办了。
java吹嘘的应该是运行时内存回收吧。。。
【 在 charlie (飞龙在天) 的大作中提到: 】
: 应为这样的话程序员就不用担心内存回收的事情了
: 【 在 pamws (书虫) 的大作中提到: 】
: : 这么肯定? 那样的话为什么Java要对自己的Garbage Collection大吹特吹?
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月22日16:29:35 星期天 说道:
个人感觉每个操作系统都应该可以的
当你的程序进入系统时候,由操作系统负责分配一定的内存给你的程序,然后你的程序
就负责管理这片内存了,你爱怎么折腾都行,只要你的程序不跑出这片内存区域就行,
当你的程序退出系统时候,由操作系统负责回收分配给你的内存空间。操作系统分配给
你的程序的内存空间是一大片连续的空间,跟你在程序里面由new分配的是两码事情。如
果操作系统不能回收这些丢失的空间的话,那么每个人就都可以做病毒程序了。
上面的都是根据操作系统原理想到的,纯属于个人猜测而已。
【 在 Scorpion (C:\documents and settings) 的大作中提到: 】
: 那也得的看是什么操作系统吧。
: 2k下可以
: dos下可以吗?
: linuxs下呢?
: 【 在 charlie (飞龙在天) 的大作中提到: 】
: : 当然会了,操作系统做的
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月22日16:32:36 星期天 说道:
是的
java强调程序员做程序时候只负责分配内存,不管内存的回收,回收由系统负责
内存回收在c++里面也可以做到,用一个类可以实现(有文章介绍过,而且还实现了)
,不过c++强调灵活和效率问题,所以一直没有加入内存回收机制而已。
【 在 thj (无名) 的大作中提到: 】
: 这个问题要分两个方面来看:
: 1.如果程序在运行过程中不释放内存,必然导致内存消耗越来越多,最后导致系统崩溃。
: 这个问题对于服务级程序来说相当重要(运行几个月或几年,机器肯定受不了)。
: 2.程序如果退出的话,os应该有能力回收大部分内存,这个依据就是进程的页表,
: 操作系统应该可以根据页表来判断进程使用了多少物理内存,从而释放之。但是如果
: 存在共享内存的话,可能就不太好办了。
: java吹嘘的应该是运行时内存回收吧。。。
────────────────────────────────────────
zhangyan (TestDriving...) 于 2002年12月23日08:22:33 星期一 说道:
DOS下好像不可以
【 在 Scorpion (C:\documents and settings) 的大作中提到: 】
: 那也得的看是什么操作系统吧。
: 2k下可以
: dos下可以吗?
: linuxs下呢?
: 【 在 charlie (飞龙在天) 的大作中提到: 】
: : 当然会了,操作系统做的
────────────────────────────────────────
thj (无名) 于 2002年12月23日10:08:38 星期一 说道:
依我看,要是有个Linux高手读一读源码,这个问题就解决了。。。:-)
【 在 zhangyan (TestDriving...) 的大作中提到: 】
: DOS下好像不可以
: 【 在 Scorpion (C:\documents and settings) 的大作中提到: 】
: : 那也得的看是什么操作系统吧。
: : 2k下可以
: : dos下可以吗?
: : linuxs下呢?
────────────────────────────────────────
zhangyan (TestDriving...) 于 2002年12月23日12:37:35 星期一 说道:
要是操作系统能够稍微负责一些
这些工作就能完成
要不然一个OS就太轻松的被hack掉了
【 在 thj (无名) 的大作中提到: 】
: 依我看,要是有个Linux高手读一读源码,这个问题就解决了。。。:-)
: 【 在 zhangyan (TestDriving...) 的大作中提到: 】
: : DOS下好像不可以
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.129毫秒