有关于Sun GC的问题。 Sun FAQ(1.4.2的旧版本)说,吞吐量收集器未使用MaxTenuringThreshold(MTT)参数。它仅用于CMS。
http://java.sun.com/docs/hotspot/gc1.4.2/faq.html

(12)如果我的应用程序具有中长期对象,应该怎么办?

在年轻一代集合中生存的对象具有复制成本(年轻一代集合的算法的一部分是复制任何生存的对象)。中长期对象可以被复制多次。使用-XX选项MaxTenuringThreshold确定复制成本。使用-XX:MaxTenuringThreshold = 0可将在年轻代集合中幸存的对象立即移动到终身代。如果这样可以提高应用程序的性能,那么复制长期存在的对象就非常重要。请注意,吞吐量收集器不使用MaxTenuringThreshold参数。


我不知道如何验证这一点,但是,如果它是真的,那么吞吐量收集器如何确定何时将年轻对象提升为终身代?每当年轻一代填满时(换句话说,MTT = 0?),它是否完成?

最佳答案

如果您要谈论的是现代(1.6.0)Sun GC,则可以下载源代码并自己确定正在发生的事情。但是,当然,行为可能会因补丁程序级别不同而发生变化。

以下是一些有关-XXmaxTenuringThreshold选项的最新文档:


Java Tuning White Paper-太阳(2005)
"The most complete list of -XX options for Java 6 JVM"-尤金·库列索夫(Eugene Kuleshov)(2006)


各种提示会显示在Google搜索中。但我在网上找不到任何明确的文档或对您的问题的明确答案。

关于java - Sun GC maxtenuringthreshold,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3427786/

10-10 06:49