-Xscminjitdata / -Xscmaxjitdata

When you create a shared classes cache, you can use these options to set a minimum and maximum number of bytes in the class cache that can be used for JIT data.

When you run an application with the -Xshareclasses:verbose option, the VM writes to the console the amount of JIT data that is not stored due to the current setting of the the maximum JIT data space. You can also get this information by using the MemoryMXBean.getSharedClassCacheMaxJitDataUnstoredBytes() method in the com.ibm.lang.management API.

You can increase the maximum JIT data space size accordingly if you want to add the unstored data to the shared cache. However, the VM that provided the information no longer has the opportunity to store the JIT data. Subsequent VMs can store JIT data in the shared cache.

Syntax

Setting Effect Default
-Xscminjitdata<size> Set minimum size for JIT data 0 (See Default behavior)
-Xscmaxjitdata<size> Set maximum size for JIT data The amount of free space in the cache

See Using -X command-line options for more information about the <size> parameter.

Default behavior

If -Xscminjitdata is not specified, no space is reserved for JIT data, although JIT data is still written to the cache until the cache is full or the -Xscmaxjitdata limit is reached.

Explanation

-Xscminjitdata

The value of -Xscminjitdata must not exceed the value of -Xscmx or -Xscmaxjitdata. The value of -Xscminjitdata must always be considerably less than the total cache size, because JIT data can be created only for cached classes. If the value of -Xscminjitdata equals the value of -Xscmx, no class data or JIT data can be stored.

-Xscmaxjitdata

Setting -Xscmaxjitdata is useful if you want a certain amount of cache space guaranteed for non-JIT data. If this option is not specified, the maximum limit for JIT data is the amount of free space in the cache. The value of this option must not be smaller than the value of -Xscminjitdata, and must not be larger than the value of -Xscmx.

See also