Experimental options in official builds ?

Pierre Laporte pierre at pingtimeout.fr
Wed Oct 2 09:27:35 PDT 2013


Hi guys

I just discovered that you can unlock experimental VM options in a regular
build of the JDK.

This page<http://www.programmingforliving.com/2013/08/how-to-speed-up-eclipse-sts-startup.html>tells
that unlocking some experimental features can speed up Spring
ToolSuite. I made some tests on jdk 1.7.0_25 and 1.7.0_40 on linux machines
and I can indeed modify experimental flags. I thought that experimental
flags were only for debug build.

Is this normal ?


$ java -XX:+PrintFlagsFinal -version | grep experimental
java version "1.7.0_40"
OpenJDK Runtime Environment (IcedTea 2.4.2) (ArchLinux build
7.u40_2.4.2-1-x86_64)
OpenJDK 64-Bit Server VM (build 24.0-b56, mixed mode)


$ java *-XX:+UnlockExperimentalVMOptions* -XX:+PrintFlagsFinal -version |
grep experimental
    uintx ArrayAllocatorMallocLimit                 =
18446744073709551615{experimental}
     intx G1ExpandByPercentOfAvailable              = 20
{experimental}
    ccstr G1LogLevel                                =
{experimental}
    uintx G1MaxNewSizePercent                       = 60
{experimental}
    uintx G1MixedGCLiveThresholdPercent             = 65
{experimental}
    uintx G1NewSizePercent                          = 5
{experimental}
    uintx G1OldCSetRegionThresholdPercent           = 10
{experimental}
     bool G1UseConcMarkReferenceProcessing          = true
{experimental}
     bool G1UseParallelRSetScanning                 = true
{experimental}
     bool G1UseParallelRSetUpdating                 = true
{experimental}
   double ObjectCountCutOffPercent                  = 0.500000
{experimental}
     intx PredictedLoadedClassCount                 = 0
{experimental}
     bool TrustFinalNonStaticFields                 = false
{experimental}
*     bool UnlockExperimentalVMOptions              := true
{experimental}      *
     bool UseCriticalCMSThreadPriority              = false
{experimental}
     bool UseCriticalCompilerThreadPriority         = false
{experimental}
     bool UseCriticalJavaThreadPriority             = false
{experimental}
     bool UseMemSetInBOT                            = true
{experimental}
    uintx WorkStealingHardSpins                     = 4096
{experimental}
     intx WorkStealingSleepMillis                   = 1
{experimental}
    uintx WorkStealingSpinToYieldRatio              = 10
{experimental}
    uintx WorkStealingYieldsBeforeSleep             = 5000
{experimental}
java version "1.7.0_40"
OpenJDK Runtime Environment (IcedTea 2.4.2) (ArchLinux build
7.u40_2.4.2-1-x86_64)
OpenJDK 64-Bit Server VM (build 24.0-b56, mixed mode)


$ java *-XX:+UnlockExperimentalVMOptions* -XX:+PrintFlagsFinal *
-XX:+TrustFinalNonStaticFields* -version | grep experimental
    uintx ArrayAllocatorMallocLimit                 =
18446744073709551615{experimental}
     intx G1ExpandByPercentOfAvailable              = 20
{experimental}
    ccstr G1LogLevel                                =
{experimental}
    uintx G1MaxNewSizePercent                       = 60
{experimental}
    uintx G1MixedGCLiveThresholdPercent             = 65
{experimental}
    uintx G1NewSizePercent                          = 5
{experimental}
    uintx G1OldCSetRegionThresholdPercent           = 10
{experimental}
     bool G1UseConcMarkReferenceProcessing          = true
{experimental}
     bool G1UseParallelRSetScanning                 = true
{experimental}
     bool G1UseParallelRSetUpdating                 = true
{experimental}
   double ObjectCountCutOffPercent                  = 0.500000
{experimental}
     intx PredictedLoadedClassCount                 = 0
{experimental}
*     bool TrustFinalNonStaticFields                := true
{experimental}
     bool UnlockExperimentalVMOptions              := true
{experimental}      *
     bool UseCriticalCMSThreadPriority              = false
{experimental}
     bool UseCriticalCompilerThreadPriority         = false
{experimental}
     bool UseCriticalJavaThreadPriority             = false
{experimental}
     bool UseMemSetInBOT                            = true
{experimental}
    uintx WorkStealingHardSpins                     = 4096
{experimental}
     intx WorkStealingSleepMillis                   = 1
{experimental}
    uintx WorkStealingSpinToYieldRatio              = 10
{experimental}
    uintx WorkStealingYieldsBeforeSleep             = 5000
{experimental}
java version "1.7.0_40"
OpenJDK Runtime Environment (IcedTea 2.4.2) (ArchLinux build
7.u40_2.4.2-1-x86_64)
OpenJDK 64-Bit Server VM (build 24.0-b56, mixed mode)

--

Pierre Laporte
@pingtimeout <https://twitter.com/pingtimeout>
pierre at pingtimeout.fr
http://www.pingtimeout.fr/


More information about the hotspot-dev mailing list