纵然一大堆文章将Java和C#的回收机制吹捧上了天,可是老百姓相信的只是事实,Java/C#的软件程序启动后不管你怎么折腾内存都只是有升无减的。
最佳的事实是Eclipse。我真的没干什么,开了它来打包Jar,结果内存已经占用到100多M,而且更糟糕的是不断的读硬盘,内存吃完了吃硬盘,我本本的硬盘损坏得那么快真的是归功它不少。而且Eclipse有个特性是“一视同仁”,不管你是P2,还是P4,它没商量一样的慢。
批了它不少,也该讲重点了,重点就是开启Eclipse后无论你放置多久,内存永远有升无减,一大堆文章夸赞的回收机制回收算法连个嗝也没打一下!
夸Java/C#的回收机制,就好比夸你闺女美如花,结果是如花。你让人民群众怎么活?
“GC难,难于上青天”?
仔细分析网上众多GC的文章,去伪存真,去糟粕取精华,我们会发现两个重点,一是写出高质量的代码,二是适时进行回收。
依据现实状况,我认为,GC,你知不知道无所谓——确实不见得内存有回收,那么你知道了也得个“知”字。但是,由于你代码写得一团糟,该释放的变量或实例你不释放,把变量或实例的代数无限的往上加,最终导致内存溢出,那么绝对是你的过错。
不过,高质量的代码也是要经过磨练才能达到的境界。以后想要GC,首先去看看自己的代码是否符合规范,是否符合高手的经验指引,在这不知不觉中,你就能把代码写得高质量一些,从而达到隐式GC的效果。
适时?何谓适时?何时适时?天晓得。之所以把“适时”也作为重点,是发现有好多文章都提到了适时回收这个概念,适时回收到底是否在working,不知道,但有文章说它是working的,那么我们暂且信之,因为我也拿不出证据。
说了这么一大篇,发觉最后还是无法解决GC的问题,只能回应题目,拿出决心和勇气,“将GC进行到底”,虽然遥遥无期。
此文出处www.mym2p.com、http://mym2p.shineblog.com