Vitaly is exactly correct. In my own experience, even for cases of the kind that Bernd is describing, I have always found MTT=1 to be superior to MTT=0, because the cost of promoting objects prematurely can wreak havoc, especially with certain kinds of data structures such as long lists (at least as long as old gens are much larger and old gen collections much more expensive than young gen ones).<br>
<br>-- ramki<br><br><div class="gmail_quote">On Thu, Oct 25, 2012 at 2:36 PM, Vitaly Davidovich <span dir="ltr"><<a href="mailto:vitalyd@gmail.com" target="_blank">vitalyd@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr">Hmm, collecting old gen usually involves more work than doing young GC since it may do additional things (e.g. ref processing) as well as being larger than eden. I think even with concurrent old you probably don't want to trigger them due to premature promotion (if it's a non-compacting concurrent GC, like CMS, you may start accumulating fragmentation where you otherwise wouldn't). Generally, it makes sense to me to have some buffering in eden to avoid midlife crisis objects wreaking havoc in old gen.</p>
<p dir="ltr">Sent from my phone</p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On Oct 25, 2012 5:28 PM, "Bernd Eckenfels" <<a href="mailto:bernd-2012@eckenfels.net" target="_blank">bernd-2012@eckenfels.net</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Am 25.10.2012, 23:11 Uhr, schrieb Vitaly Davidovich <<a href="mailto:vitalyd@gmail.com" target="_blank">vitalyd@gmail.com</a>>:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
You don't want to tenure them prematurely if they ultimately<br>
would die fairly soon but you can't keep them in place if you're employing a copying collector.<br>
</blockquote>
<br>
Actually you might want to tenure them "early": if your oldgen is collected concurrently _and_ the young collection frequency is larger than a typical transaction (which is a fairly common situation).<br>
<br>
Therefore there is an argument for using MaxTenuring=0 (or only 1). But thats not really G1 related, I just wanted to mention it.<br>
<br>
Bernd<br>
</blockquote></div>
</div></div></blockquote></div><br>