posts - 12,  comments - 0,  trackbacks - 0
对操作系统而言,在进程Terminate之后回收进程占用的全部资源是最基本的要求.在一个程序结束(无论是怎么结束的)时,它所占用的内存会全部被释放.也就是说,如果windows的设计是正确的,那么所谓"被浪费的是硬盘上的空间"这种情况是绝对不可能出现的.如果出现,那么就是windows的一个特大bug.而windows是否真的有这个问题,第一,没有类似的报告.第二,我们也看不到windows的源代码.有兴趣的可以去看看Linux的代码,是如何管理内存的.

内存泄漏是指这样一种情况:按照设计,程序在完成一个任务之后应当不会占用更多的内存,但事实是占用变多了.引起内存泄漏的基本原因,就是在new以后没有delete(malloc以后没有free).java有垃圾回收机制,但显然,这是以牺牲性能为代价的,对响应要求高的环境下,这恐怕是通不过的.

另外,操作系统是不能自动回收进程占用的内存,除非进程显式的通知操作系统放弃某块空间,操作系统并不负责检查进程中每一部分的使用情况(它也不能负责,操作系统是不会知道进程中有些什么变量的).java的回收是进程本身的一种自动检查功能,和操作系统完全无关.
posted on 2008-11-21 23:33 Benson 阅读(522) 评论(0)  编辑 收藏 引用 所属分类: WINDOWS编程

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜