Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GC停止和复制_Java_Garbage Collection - Fatal编程技术网

Java GC停止和复制

Java GC停止和复制,java,garbage-collection,Java,Garbage Collection,这个问题是我之前的Java GC问题的后续问题: 这个问题也涉及同一条 我对整理对象堆分配的方法为何如此常用感到有点困惑。是的,它会对堆进行碎片整理,但是似乎会有成吨的开销,因为基本上将堆大小的总量减少一半。另外,当一半空间不足时,需要复制所有活动对象 除了碎片整理,“停止并复制”比“标记并清除”更好,还有其他根本原因吗?关于垃圾收集器的一个很好的教程是(不幸的是,新的oracle网站把格式搞得一团糟) 您的问题将在第五章中处理。这基本上解释了您可以在Java垃圾收集器中使用哪些类型的策略,以及

这个问题是我之前的Java GC问题的后续问题:

这个问题也涉及同一条

我对整理对象堆分配的方法为何如此常用感到有点困惑。是的,它会对堆进行碎片整理,但是似乎会有成吨的开销,因为基本上将堆大小的总量减少一半。另外,当一半空间不足时,需要复制所有活动对象


除了碎片整理,“停止并复制”比“标记并清除”更好,还有其他根本原因吗?

关于垃圾收集器的一个很好的教程是(不幸的是,新的oracle网站把格式搞得一团糟)

您的问题将在第五章中处理。这基本上解释了您可以在Java垃圾收集器中使用哪些类型的策略,以及哪些是默认策略。大多数桌面应用程序都会对尽可能小的停止感兴趣,因为用户可能会注意到这一点


请注意,您的问题不是关于碎片整理。两者最终都会压缩内存空间。

关于垃圾收集器的一个很好的教程是(不幸的是,新的oracle网站把它的格式搞得一团糟)

您的问题将在第五章中处理。这基本上解释了您可以在Java垃圾收集器中使用哪些类型的策略,以及哪些是默认策略。大多数桌面应用程序都会对尽可能小的停止感兴趣,因为用户可能会注意到这一点

请注意,您的问题不是关于碎片整理。两者最终都会压缩内存空间。

事实上,碎片化是最基本的,一些GC击败它的能力是一项巨大的资产

停止和复制算法过去在GC实现中很流行,因为:

  • 它易于实现
  • 它会自动整理内存碎片
  • 它的运行时间与活动对象的数量成正比,这使得它渐进地非常有效
  • 更现代的GC,包括Java中使用的GC,使用更复杂的策略,因为他们希望进行短暂的暂停(而不是降低总GC时间,他们更喜欢长时间不停止应用程序,因为暂停不利于交互性),以便更干净地与缓存和虚拟内存交互,并从多CPU系统中获益

    对于任何想了解垃圾收集的人来说,这是一本必读的书。

    实际上,碎片化是最基本的,一些GC能够击败它是一项相当大的资产

    停止和复制算法过去在GC实现中很流行,因为:

  • 它易于实现
  • 它会自动整理内存碎片
  • 它的运行时间与活动对象的数量成正比,这使得它渐进地非常有效
  • 更现代的GC,包括Java中使用的GC,使用更复杂的策略,因为他们希望进行短暂的暂停(而不是降低总GC时间,他们更喜欢长时间不停止应用程序,因为暂停不利于交互性),以便更干净地与缓存和虚拟内存交互,并从多CPU系统中获益


    《垃圾收集》是任何想了解垃圾收集的人的必读读物。

    你知道这篇文章是1996年写的,从那以后世界发生了很多变化,对吗?看看Sun Hotspot文档,特别是“调优垃圾收集”,看看现在的情况(我没有一个方便的链接,但Google有)。碎片整理不一定会将堆大小的总量减少一半。一些实现可能做到这一点。它也不一定会复制所有的活动对象。好吧,我只是在谷歌上搜索了“调优垃圾收集”,但我不太了解它的机制?有人能给我一个快速的解释吗?没有快速的解释。垃圾收集很复杂:-)@Thomas:另外,由于垃圾收集很复杂,通常从一个简单的技术开始(在许多情况下,如引用计数),继续使用一个更复杂但更有用的技术(如停止和复制),然后慢慢发展。你知道这篇文章是从1996年开始的,从那时起,世界发生了很多变化,对吗?看看Sun Hotspot文档,特别是“调优垃圾收集”,看看现在的情况(我没有一个方便的链接,但Google有)。碎片整理不一定会将堆大小的总量减少一半。一些实现可能做到这一点。它也不一定会复制所有的活动对象。好吧,我只是在谷歌上搜索了“调优垃圾收集”,但我不太了解它的机制?有人能给我一个快速的解释吗?没有快速的解释。垃圾收集是复杂的:-)@Thomas:另外,由于垃圾收集是复杂的,所以通常从一个简单的技术开始(在许多情况下,如引用计数),继续使用一个更复杂但更有用的技术(如停止和复制),然后慢慢地从中发展。