RFE: Add compressed oops to VM info string

Paul Hohensee paul.hohensee at oracle.com
Thu Nov 10 08:01:18 PST 2011


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