最近在一个短信平台的项目中,遭遇内存溢出的困扰,由于代码是在原来代码的基础上改造出来的,对代码的不熟悉是造成这个困扰的根本原因,最终是通过Jprofiler找到原因,不得不向没用过这工具的朋友推荐下,以前见人用,也没觉得多有用,用起来才发现其强大的地方。
开始一直以为是过大并发量,造成JVM无法即时GC,造成内存溢出,甚至还怀疑上了JVM垃圾收集的效率问题,或是HashMap的设计bug,实际上最终发现是一线程没有释放引用,这当然还得感谢Jprofiler。因此我也对JVM刚兴趣,虽然平时不一定用的到,但是重要的是其设计思想,毕竟这是个经典的设计,禁得起时间的考验,很多地方,值得我学习。
另外,由于本人比较懒,更多的可能是去收集别人的文章,毕竟这方面的资料还是蛮多的