[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: jmx-dev RFR 8020467: Inconsistency between usage.getUsed() and isUsageThresholdExceeded() with C
From: Martin Buchholz <martinrb () google ! com>
Date: 2013-10-31 7:08:31
Message-ID: CA+kOe080GONOQCCeUdA=PeB4qmvO2TMk_m6fmdf0vs8VU0L0eA () mail ! gmail ! com
[Download RAW message or body]
On Wed, Oct 30, 2013 at 11:32 PM, Staffan Larsen
<staffan.larsen@oracle.com>wrote:
> Quoting Bengt from earlier in this conversation:
>
> "As for just doing a System.gc() to force a GC I think you can rely on
> that System.gc() does a full GC in Hotspot unless someone sets
> -XX:+DisableExplicitGC on the command line. Considering that you are
> relying on Hotspot specifc names for pools I don't think it is a limitation
> to the test to rely on the Hotspot implementatoin of System.gc()."
>
>
A full synchronous gc is a stronger condition than a full gc.
> The spec for System.gc() doesn't promising anything, but all the
> collectors in Hotspot are implemented to do a full GC when System.gc() is
> called.
>
>
I'm not a GC expert and I have no proof, but that is not my understanding.
I believe that a concurrent gc (CMS) remains concurrent even if initiated
by System.gc().
Hmmm.... checking hotspot flags I see:
java -XX:+PrintFlagsFinal
bool ExplicitGCInvokesConcurrent = false
{product}
bool ExplicitGCInvokesConcurrentAndUnloadsClasses = false
{product}
which suggests you are right for default gc operation.
[Attachment #3 (text/html)]
<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, \
Oct 30, 2013 at 11:32 PM, Staffan Larsen <span dir="ltr"><<a \
href="mailto:staffan.larsen@oracle.com" \
target="_blank">staffan.larsen@oracle.com</a>></span> wrote:<br> <blockquote \
class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div \
style="word-wrap:break-word"><div class="im">Quoting Bengt from earlier in this \
conversation:<div> <br></div><div>"As for just doing a System.gc() to force a GC \
I think you can rely on that System.gc() does a full GC in Hotspot unless someone \
sets -XX:+DisableExplicitGC on the command line. Considering that you are relying on \
Hotspot specifc names for pools I don't think it is a limitation to the test to \
rely on the Hotspot implementatoin of System.gc()."</div> \
<div><br></div></div></div></blockquote><div><br></div><div>A full synchronous gc is \
a stronger condition than a full gc.</div><div> </div><blockquote class="gmail_quote" \
style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><div class="im"><div></div></div><div>The spec for \
System.gc() doesn't promising anything, but all the collectors in Hotspot are \
implemented to do a full GC when System.gc() is called.</div> \
<div><br></div></div></blockquote><div><br></div><div>I'm not a GC expert and I \
have no proof, but that is not my understanding. I believe that a concurrent gc \
(CMS) remains concurrent even if initiated by System.gc().</div> <div> \
</div><div><br></div><div>Hmmm.... checking hotspot flags I \
see:</div><div><br></div><div>java -XX:+PrintFlagsFinal<br></div><div><div> bool \
ExplicitGCInvokesConcurrent = false {product} \
</div> <div> bool ExplicitGCInvokesConcurrentAndUnloadsClasses = false \
{product} </div><div>which suggests you are right for default gc operation. \
</div></div><div><br></div></div></div></div>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic