對Sun GC有疑問。 Sun常見問題(舊版1.4.2)說吞吐量收集器不使用MaxTenuringThreshold(MTT)參數。它僅用於CMS。 http://java.sun.com/docs/hotspot/gc1.4.2/faq.htmlSun GC maxtenuringthreshold
(12)如果我的應用程序有中長壽命對象,該怎麼辦?
- 在年輕一代收藏中存活的對象具有複製成本(年輕一代收藏的一部分算法是複製任何能夠存活的對象)。中長壽命對象可能會被複制多次。使用-XX選項MaxTenuringThreshold確定複製成本。使用-XX:MaxTenuringThreshold = 0可以將年輕一代收藏中存活的對象立即移至終身代。如果這樣可以提高應用程序的性能,那麼複製長壽命對象就意義重大。 請注意吞吐量收集器不使用MaxTenuringThreshold參數。
我不知道如何來驗證這一點,但如果它的真實,如何吞吐量收集確定何時促進新對象到年老代?每當年輕一代填滿(換句話說,MTT = 0?)它是否完成?
感謝斯蒂芬。不幸的是,我不是一個開發人員,所以源代碼不會真的幫助我很多:(我會繼續挖掘,如果我找到了一些東西,將回到狀態。 – bubbly 2010-08-07 19:41:16