RFE: Add compressed oops to VM info string

David Holmes david.holmes at oracle.com
Thu Nov 10 13:31:24 PST 2011

In case I didn't mention it earlier there is also -Xinternalversion 
which might be extended this way.

But personally I think printing the flags is the way to go, and if the 
desired flags are not printed then that is a RFE for the print-flags 


On 11/11/2011 4:02 AM, Mandy Chung wrote:
> 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
> [snip..]
> java -XshowSettings -version doesn't print the additional information. I
> haven't spent time looking into the reason why.
> Mandy
> 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