RFE: Add compressed oops to VM info string

Coleen Phillimore coleen.phillimore at oracle.com
Thu Nov 10 08:33:51 PST 2011

On 11/10/2011 11:01 AM, 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.

PrintCommandLineFlags (which should be something like PrintErgoFlags 
imho) is okay for printing ergonomics decisions, except it doesn't say 
which mode compressed oops is because that's not a flag.  
PrintFlagsFinal doesn't mention compressed oops at all.
> 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.

In this case, I won't argue for the 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