RFR (L): 8024545: make develop and notproduct flag values available in product builds

Coleen Phillmore coleen.phillimore at oracle.com
Wed Sep 11 04:57:03 PDT 2013


Hi,

Have you done performance testing on this change?   When develop flags 
are not defined they are defined "const" false which enables the C++ 
compiler to do better optimizations.   I've seen code that counts on that.
If you want the values to be materialized, why not change the develop 
flag definition to be extern const (or some such).

Coleen

On 9/10/2013 8:56 PM, Christian Thalinger wrote:
> http://cr.openjdk.java.net/~twisti/8024545/webrev/
>
> 8024545: make develop and notproduct flag values available in product builds
> Reviewed-by:
>
> Right now the internal flag table only contains flags which are defined in a product build. This does not include develop and notproduct flags. Sometimes it is useful to have access to these values for post-mortem core file analysis or to read these values for compiler settings for a Java-based compiler.
>
> This change enables develop and notproduct flag values to be read by the serviceability agent. The binary size is increased by 42k for a 64-bit product build and by 32k for a 32-bit product build.
>
> Before:
>
> $ java -cp /java/re/jdk/8/latest/binaries/linux-x64/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB 9399
> Attaching to process 9399, please wait...
> hsdb> flags -nd
> InitialHeapSize = 495006528 5
> MaxHeapSize = 7920943104 5
> UseCompressedKlassPointers = true 5
> UseCompressedOops = true 5
> UseParallelGC = true 5
> hsdb> flags InlineMathNatives
> Couldn't find flag: InlineMathNatives
>
> After:
>
> $ java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB 3726
> Attaching to process 3726, please wait...
> hsdb> flags -nd
> InitialHeapSize = 495006528 5
> MaxHeapSize = 7920943104 5
> UseCompressedKlassPointers = true 5
> UseCompressedOops = true 5
> UseParallelGC = true 5
> hsdb> flags InlineMathNatives
> InlineMathNatives = true 0
>
> This patch has one behavioral difference; when printing flags with e.g. PrintFlagsFinal in a debug build it prints "develop" for develop flags:
>
>      uintx AdaptiveSizePolicyGCTimeLimitThreshold    = 5               {develop}
>
> The output for product builds is unchanged.



More information about the hotspot-dev mailing list