2017年6月24日
摘要: 减少大对象堆的碎片 在某些情况下强制执行完整GC 按需压缩大对象堆 在GC前收到消息通知 使用弱引用缓存对象 阅读全文
posted @ 2017-06-24 17:40 yahle 阅读(1094) 评论(0) 推荐(0) 编辑
摘要: 将长生命周期对象和大对象池化 请记住最开始说的原则:对象要么立即回收要么一直存在。它们要么在0代被回收,要么在2代里一直存在。有些对象本质是静态的,生命周期从它们被创建开始,到程序停止才会结束。其它对象显然不需要永远存在下去,但他们的生命周期会存在程序的某些上下文里。它们的存活时间会超过0代(1代) 阅读全文
posted @ 2017-06-24 17:36 yahle 阅读(833) 评论(1) 推荐(0) 编辑
摘要: 避免使用终结器 如果没有必要,是不需要实现一个终结器(Finalizer)。终结器的代码主要是让GC回收非托管资源用。它会在GC完成标记对象为可回收后,放入一个终结器队列里,在由另外一个线程执行队列里对象的终结器方法。这就意味着,如果你实现一个类的终结器,你必须保证在它在终结器执行后能被正常回收。这 阅读全文
posted @ 2017-06-24 17:33 yahle 阅读(606) 评论(0) 推荐(0) 编辑