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