RFE: Add compressed oops to VM info string

Mandy Chung mandy.chung at oracle.com
Thu Nov 10 10:02:43 PST 2011

  FWIW.  Kumar added an internal option -XshowSettings to the launcher 
in JDK 7 to print various VM and java settings.  This could be a 
potential place to include "compressed oops" and other VM ergonomic 
setting in.  It takes an optional suboption "all, vm, properties, locale".

    $ java -XshowSettings:vm

VM settings:
     Stack Size: 320.00K
     Max. Heap Size (Estimated): 910.00M
     Ergonomics Machine Class: server
     Using VM: Java HotSpot(TM) Server VM


java -XshowSettings -version doesn't print the additional information.  I haven't spent time looking into the reason why.


On 11/10/11 08:01, Paul Hohensee wrote:
> I don't think the version string is the place for dumping ergo 
> decision results,
> rather I agree with David Holmes and Joe that PrintFlagsFinal, 
> PrintCommandLineFlags,
> or some other switch should be used.  We shouldn't have "mixed mode", 
> etc. in the
> string either, but given that they're there we're kinda stuck with them.
> The reason we have "Server" and "Client" (and "Embedded, btw) is to 
> distinguish
> builds that are statically different.  Tiered got folded into Server 
> awhile ago, which
> is why it's no longer mentioned in the version string.
> Changing the version string is a non-trivial thing to do: it has to go 
> through
> an approval process because it's a supported public interface.  There 
> are, e.g.,
> quite a few version string parsers out there that wouldn't take kindly 
> to change.
> Paul
> On 11/10/11 8:18 AM, Volker Simonis wrote:
>> +1 from me
>> On Thu, Nov 10, 2011 at 12:44 PM, Christian Thalinger
>> <christian.thalinger at oracle.com>  wrote:
>>> On Nov 10, 2011, at 12:16 PM, Volker Simonis wrote:
>>>> Hi Kris,
>>>> first I want to say that I like and support your enhancement request.
>>>> However once we do this, if would suggest printing other 
>>>> information as well.
>>>> Particularly the fact if we're using tiered compilation comes to my 
>>>> mind here.
>>>> I would therefore suggest to use a less verbose "compressed oops"
>>>> string and also
>>>> print the concrete compressed oops mode that's  actually used
>>>> (unscaled, zerobased, heapbased).
>>>> This information may be particularly usefull because it may change
>>>> depending on the users heap setting
>>>> and  the current system memory situation.
>>>> So finally, we could use something like:
>>>> OpenJDK 64-Bit Server VM (build 20.0-b11-internal, mixed mode, tiered,
>>>> compr-oops=unscaled)
>>> Honestly I don't know what it takes to change that string since it's 
>>> a public known option.  But my personal opinion is:  print the most 
>>> important runtime settings like JIT mode, GC used, compressed oops 
>>> mode.  Something along these lines:
>>> Java HotSpot(TM) Server VM (build 23.0-b03, mixed mode, tiered, 
>>> serial gc, zerobased coops)
>>> Just my two cents...
>>> -- Chris
>>>> For such a version string, it would be probably better to construct
>>>> the string on the fly, otherwise
>>>> the 'info_strs' struct you are currently using may become too big.
>>>> What are your opinions?
>>>> Regards,
>>>> Volker
>>>> On Thu, Nov 10, 2011 at 8:54 AM, Krystal 
>>>> Mok<rednaxelafx at gmail.com>  wrote:
>>>>> Hi all,
>>>>> I'd like to propose to add "compressed oops" to the VM info 
>>>>> string, so that
>>>>> people using "java -version" can get a better understanding of the
>>>>> ergonomics of the VM.
>>>>> I've posted a patch [1], against hsx20's master. The files 
>>>>> modified are
>>>>> still pretty much the same on hotspot-main's master.
>>>>> With the patch applied, "java -version" may show:
>>>>> OpenJDK 64-Bit Server VM (build 20.0-b11-internal, mixed mode, 
>>>>> compressed
>>>>> oops)
>>>>> and what used to work still works:
>>>>> OpenJDK Client VM (build 20.0-b11-internal, mixed mode, sharing)
>>>>> P.S. Alibaba (Taobao)'s OCA is submitted already, still waiting 
>>>>> for approval
>>>>> from Oracle.
>>>>> Regards,
>>>>> Kris Mok
>>>>> Software Engineer, Taobao (http://www.taobao.com)
>>>>> [1]: https://gist.github.com/1354299

More information about the hotspot-dev mailing list