How to detect if the VM is running with compact refs from within the VM (no agent)?

Dawid Weiss dawid.weiss at gmail.com
Wed Mar 14 02:44:34 PDT 2012


Thanks Kris, this was exactly what I was looking for.

Dawid

On Wed, Mar 14, 2012 at 10:42 AM, Krystal Mok <rednaxelafx at gmail.com> wrote:
> Hi Dawid,
>
> For product releases of Oracle/Sun JDK:
>
> The option -XX:+UseCompressedOops became available from around JDK6u14 [1].
> Before 6u23, the option has to be explicitly set on the command line or from
> a config file (.hotspotrc) in order to use compressed oops.
> From 6u23 and on, the ergonomics in HotSpot VM will automatically enable
> UseCompressedOops when the whole GC heap is less than around 32GB and G1GC
> is not in use. 7017008 [2] removed the G1GC limitation, and was delivered in
> JDK7 (but not in any of the released JDK6 versions).
>
> - Kris
>
> [1]:  http://www.oracle.com/technetwork/java/javase/6u14-137039.html
> [2]:  http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7017008
>
>
> On Wed, Mar 14, 2012 at 4:44 PM, Dawid Weiss <dawid.weiss at gmail.com> wrote:
>>
>> Thanks Kris!
>>
>> I thought about parsing command-line but I wasn't sure about the
>> runtime -- can it switch to compressed OOPS on its own (or rather: is
>> there a heuristic to switch to compressed OOPS or is it always full
>> refs in 64 bit mode unless an explicit command line option's been
>> given)?
>>
>> Dawid
>>
>> > You could use HotSpotDiagnosticMXBean via JMX to get VM options. An
>> > example
>> > here [1].
>> >
>> > If you're trying to get this information from the command line, use:
>> >   jinfo -flag UseCompressedOops <pid>
>> >
>> > HTH,
>> > - Kris
>> >
>> > [1]:  https://gist.github.com/1333043
>> >
>> >
>> > On Wed, Mar 14, 2012 at 4:30 PM, Dawid Weiss <dawid.weiss at gmail.com>
>> > wrote:
>> >>
>> >> Hi everyone,
>> >>
>> >> This has been asked on Apache Lucene JIRA and I admit I don't know the
>> >> answer:
>> >>
>> >> Is there a way to detect the reference size (which boils down to
>> >> compact vs. full reference on 64 bit machines) from within Java?
>> >>
>> >> I assume the VM starts without an agent so Instrumentation is not
>> >> available. I'd appreciate a comment if somebody knows right away (even
>> >> if it's a: "no"), otherwise I'll go through the sources and try to
>> >> figure it out on my own.
>> >>
>> >> Thanks,
>> >> Dawid
>> >
>> >
>
>


More information about the hotspot-compiler-dev mailing list