[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">&lt;<a \
href="mailto:staffan.larsen@oracle.com" \
target="_blank">staffan.larsen@oracle.com</a>&gt;</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>&quot;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&#39;t think it is a limitation to the test to \
rely on the Hotspot implementatoin of System.gc().&quot;</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&#39;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&#39;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