Java GC停止和复制
这个问题是我之前的Java GC问题的后续问题: 这个问题也涉及同一条 我对整理对象堆分配的方法为何如此常用感到有点困惑。是的,它会对堆进行碎片整理,但是似乎会有成吨的开销,因为基本上将堆大小的总量减少一半。另外,当一半空间不足时,需要复制所有活动对象Java GC停止和复制,java,garbage-collection,Java,Garbage Collection,这个问题是我之前的Java GC问题的后续问题: 这个问题也涉及同一条 我对整理对象堆分配的方法为何如此常用感到有点困惑。是的,它会对堆进行碎片整理,但是似乎会有成吨的开销,因为基本上将堆大小的总量减少一半。另外,当一半空间不足时,需要复制所有活动对象 除了碎片整理,“停止并复制”比“标记并清除”更好,还有其他根本原因吗?关于垃圾收集器的一个很好的教程是(不幸的是,新的oracle网站把格式搞得一团糟) 您的问题将在第五章中处理。这基本上解释了您可以在Java垃圾收集器中使用哪些类型的策略,以及
除了碎片整理,“停止并复制”比“标记并清除”更好,还有其他根本原因吗?关于垃圾收集器的一个很好的教程是(不幸的是,新的oracle网站把格式搞得一团糟) 您的问题将在第五章中处理。这基本上解释了您可以在Java垃圾收集器中使用哪些类型的策略,以及哪些是默认策略。大多数桌面应用程序都会对尽可能小的停止感兴趣,因为用户可能会注意到这一点
请注意,您的问题不是关于碎片整理。两者最终都会压缩内存空间。关于垃圾收集器的一个很好的教程是(不幸的是,新的oracle网站把它的格式搞得一团糟) 您的问题将在第五章中处理。这基本上解释了您可以在Java垃圾收集器中使用哪些类型的策略,以及哪些是默认策略。大多数桌面应用程序都会对尽可能小的停止感兴趣,因为用户可能会注意到这一点 请注意,您的问题不是关于碎片整理。两者最终都会压缩内存空间。事实上,碎片化是最基本的,一些GC击败它的能力是一项巨大的资产 停止和复制算法过去在GC实现中很流行,因为:
《垃圾收集》是任何想了解垃圾收集的人的必读读物。你知道这篇文章是1996年写的,从那以后世界发生了很多变化,对吗?看看Sun Hotspot文档,特别是“调优垃圾收集”,看看现在的情况(我没有一个方便的链接,但Google有)。碎片整理不一定会将堆大小的总量减少一半。一些实现可能做到这一点。它也不一定会复制所有的活动对象。好吧,我只是在谷歌上搜索了“调优垃圾收集”,但我不太了解它的机制?有人能给我一个快速的解释吗?没有快速的解释。垃圾收集很复杂:-)@Thomas:另外,由于垃圾收集很复杂,通常从一个简单的技术开始(在许多情况下,如引用计数),继续使用一个更复杂但更有用的技术(如停止和复制),然后慢慢发展。你知道这篇文章是从1996年开始的,从那时起,世界发生了很多变化,对吗?看看Sun Hotspot文档,特别是“调优垃圾收集”,看看现在的情况(我没有一个方便的链接,但Google有)。碎片整理不一定会将堆大小的总量减少一半。一些实现可能做到这一点。它也不一定会复制所有的活动对象。好吧,我只是在谷歌上搜索了“调优垃圾收集”,但我不太了解它的机制?有人能给我一个快速的解释吗?没有快速的解释。垃圾收集是复杂的:-)@Thomas:另外,由于垃圾收集是复杂的,所以通常从一个简单的技术开始(在许多情况下,如引用计数),继续使用一个更复杂但更有用的技术(如停止和复制),然后慢慢地从中发展。