使用maven构建native image时,列出所有参数
native-maven-plugin列出所有构建相关参数
-H:PrintFlags=是查询所有构建时可配置的参数
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>0.10.5</version>
<configuration>
<mainClass>com.YourMainClass</mainClass>
<buildArgs>
<buildArg>--parallelism=16</buildArg>
<arg>-H:PrintFlags=</arg>
</buildArgs>
<imageName>sona-gateway-win</imageName>
</configuration>
</plugin>
GraalVM 21完整可选参数
-H:+AOTInline Deprecated. Default: + (enabled).
-H:+AOTPriorityInline Enable use of priority inlining during AOT compilation. Default: + (enabled).
-H:+AOTTrivialInline Perform trivial method inlining in the AOT compiled native image. Default: + (enabled).
-H:APIFunctionPrefix="graal_" Prefix that is added to the names of API functions.
-H:+AbortOnBenchmarkCounterOverflow Abort VM with SIGILL if benchmark counters controlled by the (Generic|Timed|Benchmark)DynamicCounters. Default: -
(disabled). [Extra help available]
-H:AbortOnFieldReachable=<string>* Print a trace and abort the build process if any field matching the specified pattern becomes reachable.
-H:AbortOnMethodReachable=<string>* Print a trace and abort the build process if any method matching the specified pattern becomes reachable.
-H:AbortOnTypeReachable=<string>* Print a trace and abort the build process if any type matching the specified pattern becomes reachable.
-H:+AddAllCharsets Make all hosted charsets available at run time. Default: - (disabled).
-H:+AddAllFileSystemProviders Make all supported providers returned by FileSystemProvider.installedProviders() available at run time. Default: +
(enabled).
-H:AddExports=<string>* Value <module>/<package>=<target-module>(,<target-module>)* updates <module> to export <package> to <target-module>,
regardless of module declaration. <target-module> can be ALL-UNNAMED to export to all unnamed modules.
-H:AddOpens=<string>* Value <module>/<package>=<target-module>(,<target-module>)* updates <module> to open <package> to <target-module>,
regardless of module declaration.
-H:AddReads=<string>* Value <module>=<target-module>(,<target-module>)* updates <module> to read <target-module>, regardless of module
declaration. <target-module> can be ALL-UNNAMED to read all unnamed modules.
-H:AdditionalSecurityProviders=<string>* Comma-separated list of additional security provider fully qualified class names to mark as used.Note that this option
is only necessary if you use custom engine classes not available in JCA that are not JCA compliant.
-H:AdditionalSecurityServiceTypes=<string>* Comma-separated list of additional security service types (fully qualified class names) for automatic registration. Note
that these must be JCA compliant.
-H:AdoptedPGOEnabled=<path>* A comma-separated list of file paths containing the adopted profiles. We profile frequently used code (e.g., the Java
standard library), and cache collected profiles. Adopted profiles then enable the PGO without the profiling. .
-H:AggregatedMetricsFile=... File to which aggregated metrics are dumped at shutdown. A CSV format is used if the file ends with .csv otherwise a
more human readable format is used. If not specified, metrics are dumped to the console. Default: None
-H:+AliasArrayTypeFlows Model all array type flows using a unique elements type flow abstraction. Default: + (enabled).
-H:AlignedHeapChunkSize=524288 The size of an aligned chunk. Serial and epsilon GC only.
-H:AllocateInstancePrefetchLines=1 Number of cache lines to load after the object address using prefetch instructions.
-H:AllocatePrefetchDistance=192 Sets the size (in bytes) of the prefetch distance for object allocation. Memory about to be written with the value of
new objects is prefetched up to this distance starting from the address of the last allocated object. Each Java thread
has its own allocation point.
-H:AllocatePrefetchInstr=0 Sets the prefetch instruction to prefetch ahead of the allocation pointer. Possible values are from 0 to 3. The actual
instructions behind the values depend on the platform.
-H:AllocatePrefetchLines=4 Number of cache lines to load after the array allocation using prefetch instructions.
-H:AllocatePrefetchStepSize=64 Sets the step size (in bytes) for sequential prefetch instructions.
-H:AllocatePrefetchStyle=1 Generated code style for prefetch instructions: for 0 or less no prefetch instructions are generated and for 1 or more
prefetch instructions are introduced after each allocation.
-H:+AllocationProfiling Enable runtime profiling of allocation. Default: - (disabled).
-H:+AllocationSiteSensitiveHeap A context sensitive heap means that each heap allocated object is modeled by using at least the allocation site.
Default: - (disabled).
-H:+AllowDeprecatedAutomaticFeature Allow using deprecated @AutomaticFeature annotation. If set to false, an error is shown instead of a warning. Default: +
(enabled).
-H:+AllowDeprecatedBuilderClassesOnImageClasspath
Instead of abort, only warn if image builder classes are found on the image class-path. Default: - (disabled).
-H:+AllowDeprecatedInitializeAllClassesAtBuildTime
Instead of abort, only warn if --initialize-at-build-time= is used. Default: - (disabled).
-H:+AllowFoldMethods Allow MethodTypeFlow to see @Fold methods. Default: - (disabled).
-H:+AllowIncompleteClasspath Deprecated. Default: - (disabled).
-H:+AllowJRTFileSystem Enable support for reading Java modules (jimage format) and the jrt:// file system. Requires java.home to be set at
runtime. Default: - (disabled).
-H:+AllowVMInspection Enables features that allow the VM to be inspected during run time. Default: - (disabled).
-H:+AllowVMInternalThreads Determines if VM internal threads (e.g., a dedicated VM operation or reference handling thread) are allowed in this
image. Default: + (enabled).
-H:+AlwaysInlineIntrinsics Unconditionally inline intrinsics. Default: - (disabled).
-H:+AlwaysInlineVTableStubs Default: - (disabled).
-H:AnalysisContextSensitivity="insens" Controls the static analysis context sensitivity. Available values: insens (context insensitive analysis), allocsens
(context insensitive analysis, context insensitive heap, allocation site sensitive heap), _1obj (1 object sensitive
analysis with a context insensitive heap), _2obj1h (2 object sensitive with a 1 context sensitive heap).
-H:AnalysisSizeCutoff=8 The maximum size of type and method profiles returned by the static analysis. -1 indicates no limitation.
-H:ArrayRegionEqualsConstantLimit=4096 Array region equality checks will be evaluated at compile time if the receiver is a constant and its length is smaller
than this value.
-H:+AssertInitializationSpecifiedForAllClasses
Assert class initialization is specified for all classes. Default: - (disabled).
-H:BaseTargetSpending=120 The base target spending used to estimate the inlining threshold; the higher, the likelier it is to inline.
-H:+BenchmarkCounterPrintingCutoff Use a cutoff to print only most significant counters. Default: + (enabled).
-H:+BenchmarkCountersDumpDynamic Dump dynamic counters. Default: + (enabled).
-H:+BenchmarkCountersDumpStatic Dump static counters. Default: - (disabled).
-H:BenchmarkCountersFile=... File to which benchmark counters are dumped. A CSV format is used if the file ends with .csv otherwise a more human
readable format is used. The fields in the CSV format are: category, group, name, value. Default: None
-H:BenchmarkDynamicCounters=... Turn on the benchmark counters. The format of this option is:. Default: None [Extra help available]
-H:+BlindConstants Blind constants in code with a random key. Default: - (disabled).
-H:+BootstrapInitializeOnly Do not compile anything on bootstrap but just initialize the compiler. Default: - (disabled).
-H:BootstrapTimeout=15.0 Maximum time in minutes to spend bootstrapping (0 to disable this limit).
-H:BootstrapWatchDogCriticalRateRatio=0.25 Ratio of the maximum compilation rate below which the bootstrap compilation rate must not fall (0 or less disables
monitoring).
-H:+BouncyCastleIntrinsics Enable native intrinsics for BouncyCastle. Default: + (enabled).
-H:+BreakChainedPhis Break chained phis. Default: + (enabled).
-H:+BuildOutputBreakdowns Show code and heap breakdowns as part of the build output. Default: + (enabled).
-H:+BuildOutputColorful Color build output (enabled by default if colors are supported by terminal). Default: - (disabled).
-H:+BuildOutputGCWarnings Print GC warnings as part of build output. Default: + (enabled).
-H:BuildOutputJSONFile=<path>* Print build output statistics as JSON to the specified file. The output conforms to the JSON schema located at:
docs/reference-manual/native-image/assets/build-output-schema-v0.9.2.json.
-H:+BuildOutputLinks Show links in build output (defaults to the value of BuildOutputColorful). Default: - (disabled).
-H:+BuildOutputPrefix Prefix build output with '<pid>:<image name>'. Default: - (disabled).
-H:+BuildOutputProgress Report progress in build output (default is adaptive). Default: - (disabled).
-H:+BuildOutputRecommendations Show recommendations as part of the build output. Default: + (enabled).
-H:+BuildOutputSilent Silence build output. Default: - (disabled).
-H:+BuildReport Create a Native Image Build Report. Default: - (disabled).
-H:+BuildReportSamplerFlamegraph Add sampler output in form of a flame graph to Native Image Build Report. Default: - (disabled).
-H:+CAIAggregateProfiles Use a different policy for approximating the incomplete profiling information. Default: - (disabled).
-H:+CAIAggressiveColdCodeOptimizations Determine if the optimizer should run aggressive optimizations on cold code (rarely executed code during the PGO run).
Default: - (disabled).
-H:+CAIAggressivelyOptimizeHot Perform more aggressive optimization on compilation units deemed to be hot. Default: + (enabled).
-H:+CAIApplyProfilesWhileExpanding Apply sampling based profiles to candidates for inlining before doing the inlining. Default: + (enabled).
-H:CAIColdCodeMaxInvocations=3 Maximum number of invocations of a non-sampled method beyond which that method will be considered cold. Will result in
less optimizations performed on such compilation units.
-H:CAIHotBonusWhileExpanding=50 Apply a bonus to the priority of hot cutoff nodes during exploration. Set to 0 to disable.
-H:CAIHotContextsRatio=0.05 The minimal percentage of the total time that has to be spent in a method invoked from a calling-context to consider
them as hot.
-H:+CAIPrintCallees Whether to print the hot compilation units. Default: - (disabled).
-H:+CAIPrintPrefixTree Print the prefix tree in flame graph friendly format to the path specified by CAIPrintPrefixTreePath. Default: -
(disabled).
-H:CAIPrintPrefixTreePath="prefixTree.txt" Path to print the prefix tree (default: prefixTree.txt).
-H:CAPCacheDir="" Directory where information generated by the CAnnotation Processor are cached.
-H:CCompilerOption=<string>* Provide custom C compiler option used for query code compilation.
-H:CCompilerPath=... Provide custom path to C compiler used for query code compilation and linking. Default: None
-H:CLibraryPath=<path>* Search path for C libraries passed to the linker (list of comma-separated directories).
-H:CPUFeatures=<string>* Comma separated list of CPU features that will be enabled while building the target executable, irrespective of whether
they are supported by the hosted environment. Note that enabling features not present within the target environment
may result in application crashes. The specific options available are target platform dependent. See
--list-cpu-features for feature list. These features are in addition to -march.
-H:CStandard="C89" C standard to use in header files. Possible values are 'C89', 'C99', and 'C11'.
-H:CallGraphCompilerNodeLimit=35000 Controls the maximum number of compiler nodes that can appear in the call graph.
-H:CallGraphSizeLimit=1200 Controls the maximum size of the call graph before ceasing inlining.
-H:CallGraphSizePenaltyCoefficient=0.01 Reduces the likelihood of exploring call graph subtrees that are large.
-H:+CanonicalGraphStringsCheckConstants Exclude virtual nodes when dumping canonical text for graphs. Default: - (disabled).
-H:+CanonicalGraphStringsExcludeVirtuals Exclude virtual nodes when dumping canonical text for graphs. Default: + (enabled).
-H:+CanonicalGraphStringsRemoveIdentities Attempts to remove object identity hashes when dumping canonical text for graphs. Default: + (enabled).
-H:CheckBootModuleDependencies=1 Temporary option to disable checking of image builder module dependencies or increasing its verbosity.
-H:+CheckIsolateThreadAtEntry At CEntryPoints check that the passed IsolateThread is valid. Default: - (disabled).
-H:+CheckRecurringCallbackOnNativeToJavaTransition
Test whether a thread's recurring callback is pending on each transition from native code to Java. Default: -
(disabled).
-H:+CheckToolchain Check if native-toolchain is known to work with native-image. Default: + (enabled).
-H:+ClampMLInferredProfiles Clamp the ML-inferred profiles. Default: + (enabled).
-H:Class="" Class containing the default entry point method. Optional if --shared is used.
-H:ClassInitialization=<string>* A comma-separated list of classes appended with their initialization strategy (':build_time', ':rerun', or ':run_time').
-H:+ClearMetricsAfterBootstrap Clear the debug metrics after bootstrap. Default: - (disabled).
-H:CodeAlignment=16 Alignment of AOT and JIT compiled code in bytes.
-H:+CodeCacheCounters Count accesses to the image and runtime code info table. Default: - (disabled).
-H:+CodeInfoEncoderCounters Statistics about code and deoptimization information. Default: - (disabled).
-H:CodeInfoIndexGranularity=256 The granularity of the index for looking up code metadata. Should be a power of 2. Larger values make the index smaller,
but access slower.
-H:CodeSectionLayoutOptimization=... Enable code-section layout optimization when writing the native image (optimization valid only with --pgo). Default:
None
-H:CodeSectionLayoutOptimizationClosestIsBestGraphSize=4000
When code-section layout optimization is on, specify size of the graph used for closest-is-best algorithm.
-H:+CodeSectionLayoutOptimizationSizeLimit When code-section layout optimization is on, define if a size limit within closest-is-best algorithm is used. Default: +
(enabled).
-H:+CollectImageBuildStatistics Collect information during image build about devirtualized invokes and bytecode exceptions. Default: - (disabled).
-H:Color="auto" Color build output ('always', 'never', or 'auto').
-H:+CompilationBailoutAsFailure Treat compilation bailouts like compilation failures. Default: - (disabled).
-H:CompilationCountLimit=0 The number of compilations allowed for any method before the VM exits (a value of 0 means there is no limit).
-H:CompilationExcludePhases=... Exclude certain phases from compilation, either unconditionally or with a method filter. Multiple exclusions can be
specified separated by ':'. Phase names are matched as substrings, e.g.:
CompilationExcludePhases=PartialEscape:Loop=A.*,B.foo excludes PartialEscapePhase from all compilations and any phase
containing 'Loop' in its name from compilations of all methods in class A and of method B.foo. Default: None
-H:CompilationExpirationPeriod=300.0 Time limit in seconds before a compilation expires (0 to disable the limit). A non-zero value for this option is doubled
if assertions are enabled and quadrupled if DetailedAsserts is true.
-H:CompilationFailureAction=Silent Specifies the action to take when compilation fails. [Extra help available]
-H:CompilationWatchDogStartDelay=0 Delay in seconds before watch dog monitors a compilation (0 disables monitoring).
-H:CompilationWatchDogVMExitDelay=0 Number of seconds after which a compilation appearing to make no progress causes the VM to exit (0 disables VM exiting).
-H:+CompileGraalWithC1Only In tiered mode compile Graal and JVMCI using optimized first tier code. Default: + (enabled).
-H:CompilerBackend="lir" Backend used by the compiler.
-H:CompilerConfiguration=... Names the compiler configuration to use. If omitted, the compiler configuration with the highest auto-selection priority
is used. To see the set of available configurations, supply the value 'help' to this option. Default: None
-H:CompilerNodePenaltyCoefficient=0.006 Controls the likelihood of exploring subtrees that already have a lot of code during inlining.
-H:+ConditionalElimination Default: + (enabled).
-H:+ConditionalEliminationBeforeAnalysis Run conditional elimination before static analysis. Default: + (enabled).
-H:ConditionalEliminationMaxIterations=4
-H:ConfigurationFileDirectories=<path>* Directories directly containing configuration files for dynamic features at runtime.
-H:ConfigurationResourceRoots=<string>* Resource path above configuration resources for dynamic features at runtime.
-H:+ConfigureReflectionMetadata Enable runtime instantiation of reflection objects for non-invoked methods. Default: + (enabled).
-H:+ConsiderVectorizableLoops Consider the vectorizability of loop during the duplication of a merge inside a loop.There are rare cases where
duplication can destroy vectorization. Default: + (enabled).
-H:ContendedPaddingWidth=128 How many bytes to pad fields and classes marked @Contended with.
-H:+ContextAwareInlining Use PGO sampling data to do context aware inlining. Default: - (disabled).
-H:+CopyPrimitiveElementArrays Return copies of primitive element arrays when referencing them from native code. Default: - (disabled).
-H:CostNewLiveVariable=4 PullThroughPhiOptimization: Abstract cost for the creation of a new live value: new values can have a negativeimpact on
register allocation, therefore we penalize it.
-H:CostReductionFactor=32.0 PullThroughPhiOptimization: Cost/Benefit heuristic for EE floating node duplication: reduce cost by a constant factor
when comparing with relative benefit.
-H:CostReductionFactorHotCode=128.0 See CostReductionFactor.
-H:Count=... Pattern for specifying scopes in which counters are enabled. See the Dump option for the pattern syntax. An empty value
enables all counters unconditionally. Default: None
-H:+CountWriteBarriers Instrument write barriers with counters. Serial GC only. Default: - (disabled).
-H:CountedStripMiningBudget=0.1 Code size budget of the strip mining transformation in terms of NodeCostSize.
-H:CountedStripMiningBudgetHotCode=2.5 See CountedStripMiningBudget.
-H:CountedStripMiningInnerLoopTrips=4096 The max number of iterations the counted inner loop takes.
-H:+CountedStripMiningLogCounters Print counter phi values on each outer and inner loop iteration. Default: - (disabled).
-H:CountedStripMiningMinFrequency=4 Minimal frequency to consider a loop for strip mining.
-H:CountedStripMiningNodeSizeSmallGraphs=2000
Code size in NodeSize defining when code size heuristics starts capping strip mining.
-H:Counters=... Comma separated names of counters that are enabled irrespective of the value for Count option. An empty value enables
all counters unconditionally. Default: None
-H:CrashAt=... Pattern for method(s) that will trigger an exception when compiled. This option exists to test handling compilation
crashes gracefully. See the MethodFilter option for the pattern syntax. A ':Bailout' suffix will raise a bailout
exception and a ':PermanentBailout' suffix will raise a permanent bailout exception. Default: None
-H:+CreateJvmShim Create a `jvm` shim for native libraries that link against that library. Default: - (disabled).
-H:CutoffCodeSizePenaltyCoefficient=1.0E-5 Controls the likelihood of further exploring subtrees with a lot of code during inlining.
-H:+DashboardAll In the dashboard dump, include all available information about the native image (this takes precedence over more
specific flags). Default: - (disabled).
-H:+DashboardBgv Set dashboard to use BGV format for dump. Default: + (enabled).
-H:+DashboardCode In the dashboard dump, include the breakdown of the code size across different packages. Default: - (disabled).
-H:DashboardDump=... Enable dashboard dumps to the specified file. Default: None
-H:+DashboardHeap In the dashboard dump, include the breakdown of the object sizes in the heap across different classes. Default: -
(disabled).
-H:+DashboardJson Set dashboard to use JSON format for dump. Default: - (disabled).
-H:+DashboardPointsTo In the dashboard dump, include the information about the points-to analysis. Default: - (disabled).
-H:+DashboardPretty Set dashboard to use pretty print in JSON format. Default: - (disabled).
-H:+DeadlockWatchdogExitOnTimeout Exit the image builder VM after printing call stacks. Default: + (enabled).
-H:DeadlockWatchdogInterval=10 The interval in minutes between watchdog checks (0 disables the watchdog).
-H:DebugCodeInfoMaxDepth=2147483647 Specify maximum inlining depth to consider when building DebugCodeInfo.
-H:+DebugCodeInfoUseSourceMappings Do not use SourceMappings for generating DebugCodeInfo (i.e. only use Infopoints). Default: - (disabled).
-H:DebugInfoSourceCacheRoot="sources" Directory under which to create source file cache for Application or GraalVM classes.
-H:DebugInfoSourceSearchPath=<path>* Search path for source files for application or GraalVM classes (list of comma-separated directories or jar files).
-H:+DebugPeelingSynonyms Debug simulation synonyms during simulation-based loop peeling. Default: - (disabled).
-H:+DebugStubsAndSnippets Enable debug output for stub code generation and snippet preparation. Default: - (disabled).
-H:DefaultCharset="UTF-8" Default charset of the image, by the default it is the same as the default charset of the image builder.
-H:DefaultLocale="zh-CN" Default locale of the image, by the default it is the same as the default locale of the image builder.
-H:DefaultLoopFrequency=100.0 Default frequency for loops with unknown local frequency.
-H:DefaultUnswitchFactor=0.7 Default unswitching factor for control split node with unkown profile data.
-H:+DeleteLocalSymbols Use linker option to remove all local symbols from image. Default: + (enabled).
-H:+DeoptALot Default: - (disabled).
-H:+DeoptAfterOSR Deoptimize OSR compiled code when the OSR entry loop is finished if there is no mature profile available for the rest of
the method. Default: + (enabled).
-H:+DeoptimizeAll Compiles all methods as deoptimization targets for testing. Default: - (disabled).
-H:DeoptsToDisableOptimisticOptimization=40
-H:+DetailedAsserts Enable expensive assertions if normal assertions (i.e. -ea or -esa) are enabled. Default: - (disabled).
-H:+DetectInvertedLoopsAsCounted Default: + (enabled).
-H:+DetectUserDirectoriesInImageHeap When set to true, the image generator verifies that the image heap does not contain a home directory as a substring.
Default: - (disabled).
-H:+DevirtualizeHotCallees Devirtualizes callees that are hot. Default: + (enabled).
-H:DiagnoseDumpLevel=3 Specify the dump level if CompilationFailureAction#Diagnose is used.See CompilationFailureAction for details.
file:doc-files/CompilationFailureActionHelp.txt.
-H:DiagnosticBufferSize=30 Specifies the number of entries that diagnostic buffers have.
-H:DiagnosticsDir=<path>* Sets the dir where diagnostic information is dumped.
-H:+DiagnosticsMode Enables the diagnostic mode. Default: - (disabled).
-H:+DisableIntercept Disable intercepting exceptions in debug scopes. Default: - (disabled).
-H:DisableIntrinsics=... Disable intrinsics matching the given method filter (see MethodFilter option for details). For example,
'DisableIntrinsics=String.equals' disables intrinsics for any method named 'equals' in a class whose simple name is
'String'. You can append ':verbose' at the end of the filter value to print out disabled intrinsics as they are
encountered during compilation (e.g., 'String.equals:verbose'). Default: None
-H:+DisableTypeIdResultVerification For internal purposes only. Disables type id result verification even when running with assertions enabled. Default: +
(enabled).
-H:DisableURLProtocols=<string>* List of comma separated URL protocols that must never be included.
-H:DominatorUsageTreeMaxDepth=16
-H:Dump=... Filter pattern for specifying scopes in which dumping is enabled. Default: None [Extra help available]
-H:+DumpAfterEveryBCI Dump the current graph after every bci to IGV. Default: - (disabled).
-H:+DumpDetailedNodeTypeStats Gather statistics on local variables and their lifetimes relative to FrameStates. Default: - (disabled).
-H:+DumpEndVersusExitLoopFrequencies Debug flag to dump loop frequency differences computed based on loop end or exit nodes.If the frequencies diverge a lot,
this may indicate missing profiles on control flowinside the loop body. Default: - (disabled).
-H:+DumpFoldedReflectionElements Dump folded reflection elements. Default: - (disabled).
-H:DumpHeap=<string>* Dump the heap at a specific time during image building.The option accepts a list of comma separated phases, any of:
during-analysis, after-analysis, before-compilation.
-H:+DumpOnError Send compiler IR to dump handlers on error. Default: - (disabled).
-H:DumpOnPhaseChange=... Dump a before and after graph if the named phase changes the graph.%nThe argument is substring matched against the
simple name of the phase class. Default: None
-H:+DumpOutlinedSBGraphs Dump all graphs for outlined String, StringBuilder, and StringBuffer aggregations. Default: - (disabled).
-H:DumpPath="graal_dumps" The directory where various Graal dump files are written.
-H:+DumpRuntimeCompilationOnSignal Dumps all runtime compiled methods on SIGUSR2. Default: - (disabled).
-H:+DumpTargetInfo Show native-toolchain information and image-build settings. Default: - (disabled).
-H:+DumpThreadStacksOnSignal Dumps all thread stacktraces on SIGQUIT/SIGBREAK. Default: - (disabled).
-H:+DumpingErrorsAreFatal Treat any exceptions during dumping as fatal. Default: - (disabled).
-H:+DuplicateALot Perform Duplications as long as there is any sane improvement. Default: - (disabled).
-H:DuplicationBudgetFactor=0.25 Percentage in node cost graph size for the duplication budget. Computed relative to the methods code size.
-H:DuplicationBudgetFactorHotCode=2.5 See DuplicationBudgetFactor.
-H:DuplicationBudgetFactorLate=0.5 Percentage in node cost graph size for the late duplication budget. Computed relative to the methods code size.
-H:DuplicationCostReductionFactor=64 Cost/Benefit heuristic for EE simulation-based code duplication: reduce cost by a constant factor when comparing with
relative benefit.
-H:DuplicationCostReductionFactorHotCode=256 See DuplicationCostReductionFactor.
-H:DuplicationMinBranchFrequency=0.66 Ignore low frequency branches during duplication.
-H:+DynamicCountersPrintGroupSeparator Use grouping separators for number printing. Default: + (enabled).
-H:DynamicProxyConfigurationFiles=<path>* One or several (comma-separated) paths to JSON files that specify lists of interfaces that define Java proxy classes.
[Extra help available]
-H:DynamicProxyConfigurationResources=<string>*
Resources describing program elements to be made available for reflection (see ProxyConfigurationFiles).
-H:+DynamicProxyTracing Enable trace logging for dynamic proxy. Default: - (disabled).
-H:+EEPeelAlot Default: - (disabled).
-H:+EagerSnippets Eagerly construct extra snippet info. Default: - (disabled).
-H:+EarlyCodeEmissionOrder Enable early code emission order computation instead of late code emission order computation. Default: - (disabled).
-H:+EarlyExpandCheckCast Try to improve code generation by making checkcast operations better optimizable early in the compilation pipeline.
Default: + (enabled).
-H:+EarlyGVN Perform early global value numbering. Default: + (enabled).
-H:+EarlyLICM Perform early loop invariant code motion. Default: + (enabled).
-H:+EmitStringSubstitutions Emit substitutions for String methods. Default: + (enabled).
-H:+EnableAllSecurityServices Add all security service classes to the generated image. Default: - (disabled).
-H:+EnableCFI Enforce backward-edge control-flow integrity (CFI) within the native executable using pointer authentication codes (PAC)
(aarch64 only). Default: - (disabled).
-H:+EnableLoggingFeature Enable the feature that provides support for logging. Default: + (enabled).
-H:EnableMonitoringFeatures=<string>* Enable monitoring features that allow the VM to be inspected at run time. Comma-separated list can contain 'heapdump',
'jfr', 'jvmstat', 'jmxserver' (experimental), 'jmxclient' (experimental), or 'all' (deprecated behavior: defaults to
'all' if no argument is provided). For example: '--enable-monitoring=heapdump,jfr'.
-H:+EnablePLTGOT Enables support for dynamic method address resolution. Should never be enabled directly. Default: - (disabled).
-H:+EnableSecurityServicesFeature Enable automatic registration of security services. Default: + (enabled).
-H:EnableURLProtocols=<string>* List of comma separated URL protocols to enable.
-H:+EnableWildcardExpansion Enable wildcard expansion in command line arguments on Windows. Default: + (enabled).
-H:+EnforceMaxRuntimeCompileMethods Enforce checking of maximum number of methods allowed for runtime compilation. Useful for checking in the gate that the
number of methods does not go up without a good reason. Default: - (disabled).
-H:+EnterpriseCloneReadElimination Try to eliminate array clone operations by handling clone operations in early read elimination. Default: + (enabled).
-H:EnterpriseEAIterations=3 Enterprise PEA Iterations.
-H:+EnterpriseEarlyGVN Perform an extended version of early global value numbering on a graph.Considers only graphs without floating guards.
Default: + (enabled).
-H:+EnterpriseEarlyInversionGVN Enterprise Loop Inversion for GVN. Default: + (enabled).
-H:+EnterpriseEarlyReadElimination Run more read eliminations early in the compilation pipeline. Default: + (enabled).
-H:+EnterpriseExactIVOpt Try to improve counted loop detection by specially handling math exact operations with code duplication. Default: +
(enabled).
-H:+EnterprisePartialUnroll Enable EE version of partial loop unrolling that considers more loop shapes for unrolling. Default: + (enabled).
-H:+EnterpriseRCELogRangeCheckValues Log all range check sub values to stdout. Default: - (disabled).
-H:+EnterpriseRangeCheckElimination Perform range check elimination for java long type range checks. Default: + (enabled).
-H:EntryPointNamePrefix="" Prefix that is added to the names of entry point methods.
-H:ErrorFile="svm_err_b_%t_pid%p.md" If an error occurs, save a build error report to this file [default: svm_err_b_%t_pid%p.md] (%p replaced with pid, %t
with timestamp).).
-H:+EscapeAnalysisBeforeAnalysis Run partial escape analysis on compiler graphs before static analysis. Default: + (enabled).
-H:EscapeAnalysisIterations=2
-H:EscapeAnalysisLoopCutoff=20
-H:EscapeAnalyzeOnly=... Default: None
-H:ExactFullUnrollMaxNodes=800
-H:ExactPartialUnrollMaxNodes=200
-H:ExcludeFunctionFromDuplication=... Exclude compilations that MethodFilter.match this string from the duplication optimization. Default: None
-H:ExcludeResources=<string>* Regexp to match names of resources to be excluded from the image.
-H:+ExhaustiveHeapScan Scan all objects reachable from roots for analysis. By default false. Default: - (disabled).
-H:+ExitAfterAnalysis Exit after analysis. Default: - (disabled).
-H:+ExitAfterCAPCache Exit image generation after C Annotation Processor Cache creation. Default: - (disabled).
-H:+ExitAfterQueryCodeGeneration Output query code for target platform without executing it. Default: - (disabled).
-H:+ExitAfterRelocatableImageWrite Exit after writing relocatable file. Default: - (disabled).
-H:ExpandAllProximityBonus=6.0 The decrease in call graph expansion pressure when there are few call nodes left to explore.
-H:ExpandAllProximityBonusInertia=2.0 The inertia at which the expand-all proximity bonus decreases with the number of yet unexpanded nodes.
-H:ExpansionInertiaBaseValue=550 The slowness at which the expansion pressure grows with code size; the higher it is, the slower the pressure growth.
-H:ExpansionInertiaInvokeBonus=14 The extra slowness at which the expansion pressure grows with the code size, for each extra invoke node.
-H:ExpansionInertiaMax=2000 The max slowness at which the expansion pressure grows with the code size.
-H:+ExtendedAsserts Enable extended asserts which slow down analysis. Default: - (disabled).
-H:+FailedLoopExplosionIsFatal Do not bail out but throw an exception on failed loop explosion. Default: - (disabled).
-H:FallbackExecutorClasspath=... Internal option used to specify Classpath for FallbackExecutor. Default: None
-H:FallbackExecutorJavaArg=<string>* Internal option used to specify java arguments for FallbackExecutor.
-H:FallbackExecutorMainClass=... Internal option used to specify MainClass for FallbackExecutor. Default: None
-H:FallbackExecutorSystemProperty=<string>* Internal option used to specify system properties for FallbackExecutor.
-H:FallbackThreshold=5 Define when fallback-image generation should be used.
-H:Features=<string>* A comma-separated list of fully qualified Feature implementation classes.
-H:+FloatingDivNodes Try to float non-constant division operations to expose global value numbering of divisions. Default: + (enabled).
-H:+FoldSecurityManagerGetter Fold SecurityManager getter. Default: + (enabled).
-H:+ForceAdversarialLayout Place N-byte constants in the data section such that they are misaligned with respect to N*2. For example, place 4 byte
constants at offset 4, 12 or 20, etc. This layout is used to detect instructions that load constants with alignment
smaller than the fetch size. For instance, an XORPS instruction that does a 16-byte fetch of a 4-byte float not
aligned to 16 bytes will cause a segfault. Default: - (disabled).
-H:+ForceExplicitReachabilityFence Force an explicit compiler node for Reference.reachabilityFence, instead of relying on FrameState liveness. Default: -
(disabled).
-H:+ForceGuardHoistingLoopDuplicationWithoutPGO
Consider methods for guard hoisting loop duplication even if not using PGO. Default: - (disabled).
-H:+ForceNoROSectionRelocations Use only a writable native image heap (requires ld.gold linker). Default: - (disabled).
-H:+ForceUnroll Force partial unrolling of loops if at all possible. Default: - (disabled).
-H:ForeignConfigurationFiles=<path>* Files describing stubs allowing foreign calls.
-H:ForeignResources=<string>* Resources describing stubs allowing foreign calls.
-H:+FrameStateLivenessStatistics Gather statistics on local variables and their lifetimes relative to FrameStates. Default: - (disabled).
-H:+FullUnroll Default: + (enabled).
-H:+FullUnrollAsPEACleanup Perform full unrolling as a Partial Escape Analysis Cleanup. Default: + (enabled).
-H:FullUnrollCodeSizeBudgetFactorForLargeGraphs=2.0
Maximum factor by which full unrolling can increase code size for large graphs. The FullUnrollSmallGraphThreshold option
determines which graphs are small.
-H:FullUnrollCodeSizeBudgetFactorForSmallGraphs=10.0
Maximum factor by which full unrolling can increase code size for small graphs. The FullUnrollSmallGraphThreshold option
determines which graphs are small.
-H:FullUnrollConstantCompareBoost=15
-H:FullUnrollMaxApplication=60
-H:FullUnrollMaxIterations=600
-H:FullUnrollMaxNodes=700
-H:FullUnrollSmallGraphThreshold=1000 The threshold in terms of NodeSize for a graph to be considered small for the purpose of full unrolling. Applied in
conjunction with the FullUnrollCodeSizeBudgetFactorForSmallGraphs and FullUnrollCodeSizeBudgetFactorForLargeGraphs
options.
-H:G1DebugLevel="product" Specifies the debug level of the linked G1 GC [product, fastdebug, or debug].
-H:G1HeapRegionSize=1048576 Size of the G1 regions in bytes. Supported values are 1, 2, 4, 8, 16, 32, 64, 128, 256, or 512M.
-H:GCCardSizeInBytes=512 Card table entry size (in bytes) for the G1 GC.
-H:GCDebugStartCycle=-1 Start tracing compiled GC barriers after N garbage collections (disabled if N <= 0).
-H:+GatherSafepointStatistics Gather statistics about each safepoint. Default: - (disabled).
-H:GenJavaCodeFilter=... Generate Java code before high tier lowering for methods that MethodFilter.match this string. Default: None
-H:GenJavaCodeSaveDirectory=... Path for saving generated Java code. If the value is omitted the debug dump path will be used. Default: None
-H:+GenJavaCodeWithComments Generate comments alongside variable declarations. Default: - (disabled).
-H:+GenLoopSafepoints Default: + (enabled).
-H:+GenerateBuildArtifactsFile Create a build-artifacts.json file in the build directory. The output conforms to the JSON schema located at:
docs/reference-manual/native-image/assets/build-artifacts-schema-v0.9.0.json. Default: - (disabled).
-H:GenerateDebugInfo=0 Insert debug info into the generated native image or library.
-H:+GenericDynamicCounters Turn on the benchmark counters, and displays the results on VM shutdown. Default: - (disabled).
-H:+GraalArithmeticStubs Use Graal arithmetic stubs instead of HotSpot stubs where possible. Default: + (enabled).
-H:GraalCompileOnly=... A filter applied to a method the VM has selected for compilation by Graal. A method not matching the filter is
redirected to a lower tier compiler. The filter format is the same as for the MethodFilter option. Default: None
-H:+GraalOS Compile the application for GraalOS. Default: - (disabled).
-H:GraphCompressionThreshold=70 Graal graph compression is performed when percent of live nodes falls below this value.
-H:+GreyToBlackObjRefDemographics Develop demographics of the object references visited. Serial GC only. Default: - (disabled).
-H:+GuardHoistingLoopDuplication Duplicate certain loops and eliminate their guards. Default: + (enabled).
-H:GuardHoistingLoopDuplicationHoistFraction=0.5
Duplicate only loops where at least this fraction of guards can be hoisted.
-H:GuardHoistingLoopDuplicationMaxSize=64 Duplicate only loops up to this estimated size.
-H:GuardHoistingLoopDuplicationMaxSizeHotCode=2048
See GuardHoistingLoopDuplicationMaxSize.
-H:GuardHoistingLoopDuplicationMinBodyIterations=4
Duplicate only loops with at least this many expected iterations of the loop body.
-H:GuardHoistingLoopDuplicationMinBodyIterationsHotCode=0
See GuardHoistingLoopDuplicationMinBodyIterations.
-H:GuardHoistingLoopDuplicationMinHotness=1 Duplicate only loops in methods executed at least this number of times.
-H:GuardMaxCondExitProbability=0.8 Maximum execution probability of a branch that contains the ControlSinkNode.
-H:GuardMinCondEstimatedAssembly=50.0 Minimum estimated assembly size of a branch that triggers the exit guard.
-H:GuardMinLoopProbability=0.2 Minimum loop body execution probability.
-H:+GuardPriorities Default: + (enabled).
-H:HeapChunkHeaderPadding=0 Number of bytes at the beginning of each heap chunk that are not used for payload data, i.e., can be freely used as
metadata by the heap chunk provider. Serial and epsilon GC only.
-H:HeapDumpDefaultFilenamePrefix="svm-heapdump-"
A prefix that is used for heap dump filenames if no heap dump filename was specified explicitly.
-H:HeapVerifierVerbosity=0 Control heap verifier verbosity level: 0 - quiet, 1 - info, 2 - warning, 3 - all.
-H:+HighTierInversion Default: - (disabled).
-H:+HighTierPartialUnrolling Enable EE partial unrolling in high tier. Default: + (enabled).
-H:HotCodeMinSelfTime=0.001 Minimal self time for a compilation unit to be considered hot globally.
-H:HotCompilationBaseTargetSpending=300 BaseTargetSpending value for the hot compilations.
-H:HotCompilationCompilerNodePenaltyCoefficient=0.0
CompilerNodePenaltyCoefficient value for the hot compilations.
-H:HotCompilationCutoffCodeSizePenaltyCoefficient=0.0
CutoffCodeSizePenaltyCoefficient value for the hot compilations.
-H:HotCompilationExpansionInertiaBaseValue=550
ExpansionInertiaBaseValue value for the hot compilations.
-H:HotCompilationLargeChildrenCountPenaltyCoefficient=0.0
LargeChildrenCountPenaltyCoefficient value for the hot compilations.
-H:HotCompilationMaxPolymorphicDispatches=3 MaxPolymorphicDispatches value for the hot compilations.
-H:HotCompilationMinPolymorphicDispatchProbability=0.09
MinPolymorphicDispatchProbability value for the hot compilations.
-H:HotCompilationRelativeBenefitInliningCoefficient=2.0E-4
RelativeBenefitInliningCoefficient value for the hot compilations.
-H:HotCompilationSmallRootIrPenaltyCoefficient=0.0
SmallRootIrPenaltyCoefficient value for the hot compilations.
-H:HotCompilationTypicalGraphSize=4320 TypicalGraphSize value for the hot compilations.
-H:HotCompilationTypicalGraphSizeInvokeBonus=20
TypicalGraphSizeInvokeBonus value for the hot compilations.
-H:+HotSpotDeoptExplicitExceptions Testing only option that forces deopts for exception throws. Default: - (disabled).
-H:+HotSpotPostOnExceptions Testing only option that forces deopts for exception throws. Default: - (disabled).
-H:+HotSpotPrintInlining Print inlining optimizations. Default: - (disabled).
-H:+HybridStaticContext Enable hybrid context for static methods, i.e. uses invocation site as context for static methods. Default: -
(disabled).
-H:IPEACutoffMaterializationWeight=0.0 Weight of a materialization triggered by an Invoke corresponding to a CutoffNode in the CallTree for IPEA.
-H:IPEAFrequency=3 Indicates how often to run IPEA analysis.
-H:IPEAMaterializationBoostConstant=12 Boost for Parent Nodes based on reduction of materializations.
-H:IPEAMaxForce=2 Indicates how often to force IPEA analysis when otherwise inlining would not continue.
-H:IPEAStatisticsHistogramBuckets=12 Track IPEA statistics in substratePriorityInliner.
-H:IPEAVirtualEscapeBoostSingle=12 Boost for CutoffNode for single escaping object.
-H:+IgnoreBadDuplications Ignore duplications with a bad benefit cost relation. Default: + (enabled).
-H:+IgnoreDeoptUsages Default: + (enabled).
-H:ImageBuildID="" Image Build ID is a 128-bit UUID string generated randomly, once per bundle or digest of input args when bundles are not
used.
-H:+ImageHeapCardMarking Enables card marking for image heap objects, which arranges them in chunks. Automatically enabled when supported. Serial
GC only.
-H:ImageObjectTreeExpandRoots="" Override the default suppression of specified roots. See: StaticAnalysisReports.md.
-H:ImageObjectTreeExpandTypes="" Override the default suppression of specified types. See: StaticAnalysisReports.md.
-H:ImageObjectTreeSuppressRoots="" Suppress the expansion of specified roots. See: StaticAnalysisReports.md.
-H:ImageObjectTreeSuppressTypes="" Suppress the expansion of specified types. See: StaticAnalysisReports.md.
-H:ImageSymbolsPrefix="" Common prefix used by method symbols in image.
-H:+IncludeAllLocales Make all hosted locales available at run time. Default: - (disabled).
-H:+IncludeAllTimeZones When true, all time zones will be pre-initialized in the image. Default: - (disabled).
-H:+IncludeDebugHelperMethods Determines if debugging-specific helper methods are embedded into the image. Those methods can be called directly from
the debugger to obtain or print additional information. Default: - (disabled).
-H:IncludeLocales=<string>* Comma separated list of locales to be included into the image. The default locale is included in the list automatically
if not present.
-H:+IncludeMethodData Include a list of methods included in the image for runtime inspection. Default: + (enabled).
-H:+IncludeNodeSourcePositions Track NodeSourcePositions during runtime-compilation. Default: - (disabled).
-H:IncludeResourceBundles=<string>* Comma separated list of bundles to be included into the image.
-H:IncludeResources=<string>* Regexp to match names of resources to be included in the image.
-H:IncludeSBOM=<string>* Embed a Software Bill of Materials (SBOM) in the executable or shared library for passive inspection. A comma-separated
list can contain 'cyclonedx', 'strict' (defaults to 'cyclonedx' if no argument is provided), or 'export' to save the
SBOM to the native executable's output directory. The optional 'strict' flag aborts the build if any class cannot be
matched to a library in the SBOM. For example: '--enable-sbom=cyclonedx,strict'.
-H:IncludeTimeZones="" The time zones, in addition to the default zone of the host, that will be pre-initialized in the image.
-H:+IndirectBranchTargetMarker Emit indirect branch target marker instructions. Default: - (disabled).
-H:+InfeasiblePathCorrelation Default: + (enabled).
-H:InfeasiblePathCorrelationWindowSize=10 Limit of the number of dominating if nodes to consider in infeasible path correlation to avoid compile time explosion.
-H:InitialCollectionPolicy="Adaptive" The garbage collection policy, either Adaptive (default) or BySpaceAndTime. Serial GC only.
-H:InjectedCompilationDelay=0 The number of seconds by which to slow down each compilation. The compilations slowed down can be restricted with
MethodFilter. This option exists to test the compilation watchdog.
-H:+Inline Enable inlining. Default: + (enabled).
-H:InlineAllBonus=1.0 The bonus applied to call nodes that can be fully inlined.
-H:+InlineBeforeAnalysis Inline methods before static analysis. Default: + (enabled).
-H:InlineBeforeAnalysisAllowedDepth=20 Maximum call depth for method inlined before static analysis.
-H:InlineBeforeAnalysisAllowedInvokes=1 Maximum number of invokes for method inlined before static analysis.
-H:InlineBeforeAnalysisAllowedNodes=1 Maximum number of computation nodes for method inlined before static analysis.
-H:InlineBeforeAnalysisMethodHandleAllowedInvokes=20
Maximum number of invokes for method handle internals inlined before static analysis.
-H:InlineBeforeAnalysisMethodHandleAllowedNodes=100
Maximum number of computation nodes for method handle internals inlined before static analysis.
-H:+InlineDuringParsing Inlines trivial methods during bytecode parsing. Default: + (enabled).
-H:InlineDuringParsingMaxDepth=10 Maximum depth when inlining during bytecode parsing.
-H:+InlineEverything Default: - (disabled).
-H:+InlineGraalStubs Embed all the emitted code for Graal-generated stubs. Default: - (disabled).
-H:+InlineMegamorphicCalls Inline calls with megamorphic type profile (i.e., not all types could be recorded). Default: + (enabled).
-H:+InlineMonomorphicCalls Inline calls with monomorphic type profile. Default: + (enabled).
-H:+InlinePartialIntrinsicExitDuringParsing Inlines partial intrinsic exits during bytecode parsing when possible. A partial intrinsic exit is a call within an
intrinsic to the method being intrinsified and denotes semantics of the original method that the intrinsic does not
support. Default: + (enabled).
-H:+InlinePolymorphicCalls Inline calls with polymorphic type profile. Default: + (enabled).
-H:+InlineVTableStubs Default: + (enabled).
-H:InlinedCompilerNodeLimit=20000 Controls the maximum number of compiler nodes that can be inlined into the compiled method.
-H:InliningCoefficient=0.02 The coefficient used to compute the inlining threshold; the higher, the more to inline.
-H:InliningDepthError=1000 Maximum inlining depth during partial evaluation before reporting an infinite recursion.
-H:+InsertPreMainPostOnly Do not unroll the main loop, only create pre-main-post. Default: - (disabled).
-H:+InspectGraphs Inspect analysis graphs. Default: - (disabled).
-H:InspectServerContentPath="inspect" Path to the contents of the Inspect web server.
-H:+InstallExitHandlers Provide java.lang.Terminator exit handlers. Default: - (disabled).
-H:+InterceptBailout Intercept also bailout exceptions. Default: - (disabled).
-H:+InternalSymbolsAreGlobal Compatibility option to make symbols used for the image heap global. Using global symbols is problematic for shared
libraries because the loader implicitly changes the value when the symbol is already defined in the executable loading
the library. Setting this option to true preserves the broken behavior of old Native Image versions. Default: -
(disabled).
-H:InternalThreadStackSize=2097152 The size of each internal thread stack, in bytes.
-H:+Intrinsify Use compiler intrinsifications. Default: + (enabled).
-H:+IntrinsifyStringFormat Intrinsify String.format with constant format strings. Default: + (enabled).
-H:InversionMinLocalFrequency=2.0 Minimal loop frequency for a loop to be considered for inversion.
-H:InversionMinRelativeFrequency=1.0 Minimal relative frequency for a loop to be considered for inversion.
-H:+InvertMultiEndLoops Default: - (disabled).
-H:+InvertNonLeafLoops Default: - (disabled).
-H:+InvertVectorizableLoops Default: - (disabled).
-H:IsolatedLoopHeaderAlignment=32 Alignment in bytes for loop header blocks that have no fall through paths.
-H:IterativePeelingLimit=2 Allow iterative peeling of loops up to this many times (each time the peeling phase runs).
-H:IterativePeelingOuterFrequencyBonusThreshold=4.0
Allow iterative peeling of loops with an outer frequency bonus above this value.
-H:+JNI Enable Java Native Interface (JNI) support. Default: + (enabled).
-H:JNIConfigurationFiles=<path>* Files describing program elements to be made accessible via JNI (for syntax, see ReflectionConfigurationFiles).
-H:JNIConfigurationResources=<string>* Resources describing program elements to be made accessible via JNI (see JNIConfigurationFiles).
-H:+JNIEnhancedErrorCodes JNI functions will return more specific error codes. Default: - (disabled).
-H:+JNIExportSymbols Export Invocation API symbols. Default: + (enabled).
-H:+JNIVerboseLookupErrors Report information about known JNI elements when lookup fails. Default: - (disabled).
-H:+LIRDynMoveProfileMethod Enable dynamic move profiling per method. Default: - (disabled).
-H:LIRInstructionVerifierPath=... Path to jar file containing LIR instruction verifier. Default: None
-H:+LIROptConstantLoadOptimization Enable constant load optimization.
-H:+LIROptControlFlowOptimizer
-H:+LIROptEdgeMoveOptimizer
-H:+LIROptLSRAEliminateSpillMoves Enable spill move elimination.
-H:+LIROptLSRAOptimizeSpillPosition Enable spill position optimization.
-H:+LIROptLSStackSlotAllocator Use linear scan stack slot allocation.
-H:+LIROptNullCheckOptimizer
-H:+LIROptRedundantMoveElimination
-H:+LIROptStackMoveOptimizer
-H:+LIROptimization Enable LIR level optimizations. Default: + (enabled).
-H:+LIRProfileMethods Enables profiling of methods. Default: - (disabled).
-H:+LIRProfileMoves Enables profiling of move types on LIR level. Move types are for example stores (register to stack), constant loads
(constant to register) or copies (register to register). Default: - (disabled).
-H:+LSRAOptSplitOnly LSRA optimization: Only split but do not reassign. Default: - (disabled).
-H:+LSRAOptimization Enable LSRA optimization. Default: - (disabled).
-H:LargeArrayThreshold=131072 The size at or above which an array will be allocated in its own unaligned chunk. Serial and epsilon GC only.
-H:LargeChildrenCountPenaltyCoefficient=0.005
Reduces the likelihood of exploring call graphs that have a lot of children below the root.
-H:LimitInlinedInvokes=5.0
-H:+LimitObjectArrayLength Enable a limit for the number of objects recorded for each type of a type state before disabling heap sensitivity for
that type. The analysis must be heap sensitive. Default: - (disabled).
-H:LinkAtBuildTime=<string>* Require types to be fully defined at image build-time. If used without args, all classes in scope of the option are
required to be fully defined. [Extra help available]
-H:LinkAtBuildTimePaths=<string>* Require all types in given class or module-path entries to be fully defined at image build-time. [Extra help available]
-H:LinkerRPath=<string>* Path passed to the linker as the -rpath (list of comma-separated directories).
-H:+ListCPUFeatures Show CPU features specific to the target platform and exit. Default: - (disabled).
-H:+ListMetrics Lists on the console at VM shutdown the metric names available to the Timers, Counters and MemUseTrackers options. Note
that this only lists the metrics that were initialized during the VM execution and so will not include metrics for
compiler code that is not executed. Default: - (disabled).
-H:+ListModules List observable modules and exit. Default: - (disabled).
-H:+LoadExceptionObjectInVM Use a VM runtime call to load and clear the exception object from the thread at the start of a compiled exception
handler. Default: - (disabled).
-H:LoadProfiles=... Load per compilation profile information. Default: None
-H:LocalizationCompressBundles=<string>* Regular expressions matching which bundles should be compressed.
-H:+LocalizationCompressInParallel Compress the bundles in parallel. Default: + (enabled).
-H:+LocalizationOptimizedMode Optimize the resource bundle lookup using a simple map. Default: - (disabled).
-H:+LocalizationSubstituteLoadLookup Store the resource bundle content more efficiently in the fallback mode. Default: + (enabled).
-H:LocalsPerCounter=16 Number of cpu locals per counter. It has to be a power of 2.
-H:Log=... Pattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax. Default: None
-H:LogFile=... File to which logging is sent. A %p in the name will be replaced with a string identifying the process, usually the
process id and %t will be replaced by System.currentTimeMillis(). If the current runtime is in an isolate, then %i
will be replaced by '<isolate id>' otherwise %i is removed. An %I is the same as %i except that the replacement is
'<isolate id>@<isolate address>'. Using %o as filename sends logging to System.out whereas %e sends logging to
System.err. Default: None
-H:+LogVerbose Enable more verbose log output when available. Default: - (disabled).
-H:+LoopBoundOptimizationPhase Try to improve counted loop detection by finding more precise loop bounds. Default: + (enabled).
-H:LoopExitVsLoopEndFrequencyDiff=1000.0 Scaling factor of frequency difference computed based on loop ends or exits.
-H:LoopHeaderAlignment=16 Alignment in bytes for loop header blocks.
-H:+LoopInversion Default: + (enabled).
-H:LoopMaxUnswitch=3
-H:+LoopPeeling Default: + (enabled).
-H:+LoopPredication Hoists array bounds checks out of simple loops. This is ignored if SpeculativeGuardMovement is enabled. Default: +
(enabled).
-H:+LoopPredicationMainPath Restricts LoopPredication to only focus on array bounds checks that dominate the back edge of a loop. Default: +
(enabled).
-H:+LoopRotation Enable Loop Rotation to let the compiler detect more loops as counted. Default: + (enabled).
-H:+LoopRotationAssertCountedAfter Default: - (disabled).
-H:LoopRotationToxicNodeSetMaxNodecost=512 Maximum size in NodeSize of the code to be duplicated during rotation.
-H:+LoopUnswitch Default: + (enabled).
-H:LoopUnswitchFrequencyBoost=20.0 Number of nodes allowed for a loop unswitching per loop frequency. The number of nodes allowed for the unswitching is
proportional to the relative frequency of the loop by this constant.
-H:LoopUnswitchFrequencyMaxFactor=0.95 Maximun value for the frequency factor of an invariant.
-H:LoopUnswitchFrequencyMinFactor=0.05 Minimum value for the frequency factor of an invariant.
-H:LoopUnswitchMaxIncrease=2000 Maximum loop unswitching code size increase in nodes.
-H:LoopUnswitchMinSplitFrequency=1.0 Lower bound for the minimun frequency of an invariant condition to be unswitched.
-H:LoopUnswitchTrivial=20 Number of nodes allowed for a loop unswitching regardless of the loop frequency.
-H:+LoopVectorizationKeepPostLoop Keep the original loop as the post-loop during loop vectorization. Default: - (disabled).
-H:+MLGraphFeaturesExtraction Extract graph ML features to support the profile inference in the GraalVM Native Image. Default: - (disabled).
-H:+MLProfileInference Employ static profiler to infer profiles in the GraalVM Native Image. Default: + (enabled).
-H:+MLProfileInferenceGuards Employ guards to tune the ML-inferred profiles. Default: + (enabled).
-H:+MatchExpressions Allow backend to match complex expressions. Default: + (enabled).
-H:MaxCallingContextDepth=0 The maximum length of the methods context chains.
-H:MaxCallingContextWidth=0 The maximum number of contexts to record for a method. It only affects the analysis when the max and min calling context
depth are different.
-H:MaxCompilationProblemsPerAction=2 The maximum number of compilation failures to handle with the action specified by CompilationFailureAction before
changing to a less verbose action. This does not apply to the ExitVM action.
-H:MaxConstantObjectsPerType=0 The maximum number of constant objects recorded for each type before merging the constants into one unique constant
object per type. If the value is 0 there is no limit.
-H:MaxDuplicationAnchor=2147483647 Maximum duplication anchor number.
-H:MaxDuplicationFactor=2.0 Max amount of extra effort to expend handling irreducible loops. A value <= 1 disables support for irreducible loops.
-H:MaxGraphSizeNodeCost=100000 Maximum node cost graph size for duplication. If a graph is bigger duplication will stop.
-H:MaxHeapContextDepth=0 The maximum length of the context used to model a heap object in addition to the allocation site; used only when
ContextSensitiveHeap is enabled.
-H:MaxHeapContextWidth=0 The maximum number of contexts to record for a heap object. It only affects the analysis when the max and min calling
context depth are different.
-H:MaxInvokesInTrivialMethod=1 Maximum number of invokes in a method so that it is considered trivial (for testing only).
-H:MaxMispredictionCostIncreaseFactor=2.0 Abstract measure of the cost of branch misprediction. Higher values make generation of conditional moves more likely.
-H:MaxNodesAfterTrivialInlining=2147483647 The maximum number of nodes in a graph allowed after trivial inlining.
-H:MaxNodesInTrivialLeafMethod=40 Maximum number of nodes in a method so that it is considered trivial, if it does not have any invokes.
-H:MaxNodesInTrivialMethod=20 Maximum number of nodes in a method so that it is considered trivial.
-H:MaxObjectSetSize=100 The maximum number of objects recorded for each type of a type state before disabling heap sensitivity for that type.
The analysis must be heap sensitive. It has a minimum value of 1.
-H:MaxPolymorphicDispatches=4 The maximum number of dispatches in guarded polymorphic inlining.
-H:MaxPriorityInliningPeelingIterations=10 Max number of precise inlining peeling iterations.
-H:MaxReachableTypes=-1 Maximum number of types allowed in the image. Used for tests where small number of types is necessary.
-H:MaxRuntimeCodeOffsetInstructions=0 The maximum number of instructions to randomly offset the entry of runtime installed methods. Use this option for less
predictable entry points.
-H:MaxRuntimeCompileMethods=<string>* Maximum number of methods allowed for runtime compilation.
-H:MaxSimulationIterations=2 Maximum simulation-duplication iterations of the duplication optimization per invocation.
-H:MaxSimulationIterationsHotCode=4 See MaxSimulationIterations.
-H:MaxSplitsPerNode=32
-H:MaxSurvivorSpaces=... Maximum number of survivor spaces. Serial GC only. Default: None
-H:MaxTemplatesPerSnippet=50
-H:MaxThinLockRecursion=20 Maximum recursive locking depth for thin locks.
-H:MaxUnrolledObjectZeroingStores=8 Define the maximum number of stores for which the loop that zeroes out objects is unrolled.
-H:MaxUnswitchSuccessors=64 Maximum number of split successors before aborting unswitching.
-H:MaxValueNodesPartialEscapeSelectiveInlining=35000
Controls the maximum number of value nodes that can appear in the final graph.
-H:MaxVectorAlignmentUnroll=4 Maximum number of unrolled alignment instructions.
-H:MaxVectorUnroll=16 Maximum length of linear-code vector operations.
-H:MaximumDesiredSize=20000 Maximum desired size of the compiler graph in nodes.
-H:MaximumEscapeAnalysisArrayLength=128 The maximum length of an array that will be escape analyzed.
-H:MaximumInliningSize=300 Inlining is explored up to this number of nodes in the graph for each call site.
-H:MaximumLoopExplosionCount=10000 Max number of loop explosions per method.
-H:MaximumRecursiveInlining=5 Maximum level of recursive inlining.
-H:MaximumTransitiveEnabledPullFactor=2 PullThroughPhiOptimization: Maximum number of algorithm iterations per optimization invocation.
-H:MegamorphicInliningMinMethodProbability=0.33
Minimum probability for methods to be inlined for megamorphic type profiles.
-H:MemUseTrackers=... Comma separated names of memory usage trackers that are enabled irrespective of the value for TrackMemUse option. An
empty value enables all memory usage trackers unconditionally. Default: None
-H:Method="main" Name of the main entry point method. Optional if --shared is used.
-H:MethodFilter=... Pattern for matching methods. The syntax for a pattern is:. Default: None [Extra help available]
-H:+MethodFilterRootOnly Only check MethodFilter against the root method in the context if true, otherwise check all methods. Default: -
(disabled).
-H:MethodInlineBailoutLimit=5000 Per-compilation method inlining exploration limit before giving up (use 0 to disable).
-H:MetricsFile=... File to which metrics are dumped per compilation. Default: None [Extra help available]
-H:MicroArchitecture=... Generate instructions for a specific machine type. Defaults to 'x86-64-v3' on AMD64 and 'armv8-a' on AArch64. Use
-march=compatibility for best compatibility, or -march=native for best performance if the native executable is
deployed on the same machine or on a machine with the same CPU features. To list all available machine types, use
-march=list. Default: None
-H:+MidTierInversion Default: + (enabled).
-H:+MidTierPartialUnrolling Enable EE partial unrolling in mid tier. Default: + (enabled).
-H:MinBlockFrequencyPull=0.66 PullThroughPhiOptimization: Ignore low frequency branches during duplication.
-H:MinCallingContextDepth=0 The minimum length of the methods context chains.
-H:MinDuplicationAnchor=1 Skip n duplication anchors.
-H:MinHeapContextDepth=0 The minimum length of the context used to model a heap object in addition to the allocation site; used only when
ContextSensitiveHeap is enabled.
-H:MinPolymorphicDispatchProbability=0.1 The minimum probability for using a dispatch in guarded polymorphic inlining.
-H:+MinifyInvertedPhis Break chained phis. Default: + (enabled).
-H:MinimalBulkZeroingSize=2048 If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.
-H:MinimalGraphNodeSizeCheckSize=1000 Minimal size in NodeSize to check the graph size increases of phases.
-H:+MinimalRegions Try to reduce duplication code size to the minimal amount of code. Default: + (enabled).
-H:MinimumBlindedConstantSize=4 Minimum size (in bytes) of constants to blind.
-H:MinimumPeelFrequency=0.35
-H:MissingRegistrationReportingMode=Throw Select the mode in which the missing reflection registrations will be reported. [Extra help available]
-H:Module="" Module containing the class that contains the main entry point. Optional if --shared is used.
-H:+MoveGuardsUpwards Move guard nodes to earlier places in the dominator tree if all successors of basic block share a common guard
condition. Default: + (enabled).
-H:MultiExitCostFactor=32 Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every
none-sinking loop exit.
-H:MultiExitCostFactorSink=2 Cost/Benefit heuristic for EE unrolling: If a loop has multiple exits, cost is increased by this value for every sinking
loop exit.
-H:+MultiThreaded Enable support for threads and and thread-local variables (disable for single-threaded implementation). Default: +
(enabled).
-H:NDCV=0 Run level for NoDeadCodeVerifyHandler (0 = off, 1 = info, 2 = verbose, 3 = fatal).
-H:Name="" Name of the output file to be generated.
-H:+NativeArchitecture Uses the native architecture, i.e., the architecture of a machine that builds an image. Default: - (disabled).
-H:NativeLinkerOption=<string>* Pass the provided raw option that will be appended to the linker command to produce the final binary. The possible
options are platform specific and passed through without any validation.
-H:NeverInline=<string>* Pattern for disabling inlining of methods during image generation. [Extra help available]
-H:+NewCAPCache Create a C Annotation Processor Cache. Will erase any previous cache at that same location. Default: - (disabled).
-H:NonCountedStripMinedBenefitBoost=64 Benefit boost for strip mined non counted loops.
-H:NonCountedStripMiningBudget=0.1 Code size budget of the non-counted strip mining transformation in terms of NodeCostSize.
-H:NonCountedStripMiningBudgetHotCode=2.5 See NonCountedStripMiningBudget.
-H:+NonCountedStripMiningForceStripAll Force non-counted strip mining for all loops (also counted ones), test flag only. Default: - (disabled).
-H:+NonCountedStripMiningIgnoreSmallLoops Ignore small loops from strip mining, the iv overhead can cause slowdowns. Default: + (enabled).
-H:NonCountedStripMiningInnerLoopTrips=-1 The max number of iterations the counted inner loop takes. If -1, the frequency of the loop will be used to derive an
inner frequency.
-H:NonCountedStripMiningMaximumInnerLoopTrips=8192
If NonCountedStripMiningInnerLoopTrips == -1: Maximum loop trips for strip mined non-counted loops.
-H:NonCountedStripMiningMinFrequency=16.0 Minimal loop frequency to consider a non-counted loop for strip mining.
-H:NonCountedStripMiningMinimumInnerLoopTrips=512
If NonCountedStripMiningInnerLoopTrips == -1: Minimum loop trips for strip mined non-counted loops.
-H:+NonCountedStripMiningReuseIVs Try to reuse pre-existing induction variables inside non-counted loops for the strip-mined loop's exit check. Default: +
(enabled).
-H:NumberOfAnalysisThreads=-1 The number of threads to use for analysis during native image generation. The number must be smaller than the
NumberOfThreads.
-H:NumberOfThreads=24 The maximum number of threads to use concurrently during native image generation.
-H:ObjdumpExecutables=... Comma separated list of candidate GNU objdump executables. If not specified, disassembling via GNU objdump is disabled.
Otherwise, the first existing executable in the list is used. Default: None
-H:+ObjectInlining Enable object inlining. Default: + (enabled).
-H:ObjectInliningConfigurationFiles=<path>* Files describing Java fields that have value semantics.
-H:ObjectInliningConfigurationResources=<string>*
Resources describing Java fields that have value semantics.
-H:+OmitHotExceptionStacktrace Default: - (disabled).
-H:+OmitInlinedMethodDebugLineInfo Omit generation of DebugLineInfo originating from inlined methods. Default: - (disabled).
-H:+OptAssumptions Default: + (enabled).
-H:+OptBulkAllocation Default: + (enabled).
-H:+OptCompressedFrameStateValues Default: + (enabled).
-H:+OptConditionalMoves Optimize simple if branches with conditional moves. Default: + (enabled).
-H:+OptConvertDeoptsToGuards Default: + (enabled).
-H:+OptDeDuplication Default: + (enabled).
-H:+OptDeoptimizationGrouping Default: + (enabled).
-H:+OptDevirtualizeInvokesOptimistically Default: + (enabled).
-H:+OptDuplication Default: + (enabled).
-H:+OptEarlyReadElimination Default: + (enabled).
-H:+OptEliminateGuards Default: + (enabled).
-H:+OptExactArithmetic Default: + (enabled).
-H:+OptFastMonitorExit Straighten monitor enter/exit paths through duplication. Default: + (enabled).
-H:+OptFloatingReads Default: + (enabled).
-H:+OptGuardRangeGrouping Default: + (enabled).
-H:+OptImplicitNullChecks Default: + (enabled).
-H:+OptInlineImageHeapConstants Optimize address operations that involve image heap constants. Default: + (enabled).
-H:+OptLockElimination Default: + (enabled).
-H:+OptLoopPhiStamps Inject stamps on induction variables. Default: + (enabled).
-H:+OptMethodDuplication Duplicate methods to form hot part and cold part areas. Default: - (disabled).
-H:+OptPropagateEquality Propagate equality into dominated nodes. Default: + (enabled).
-H:+OptPullThroughPhi Default: + (enabled).
-H:+OptReadElimination Default: + (enabled).
-H:+OptScheduleOutOfLoops Default: + (enabled).
-H:+OptStaticFinalFieldFolding Optimize static final fields that get a constant assigned in the class initializer. Default: + (enabled).
-H:+OptStringConcat Optimize StringBuilder construction. Default: + (enabled).
-H:+OptStringConcatDump Dump graphs to help debug operation. Default: - (disabled).
-H:+OptStringConcatDumpUnhandled Dump graphs to help debug operation. Default: - (disabled).
-H:+OptWriteBarrierElimination Eliminate redundant write barriers. Default: + (enabled).
-H:+OptWriteMotion Perform write sinking, which moves writes inside loops after them, effectively reducing their frequency. Default: -
(disabled).
-H:+OptimisticAliasingAnalysis Default: + (enabled).
-H:+OptimisticAliasingUseSpeculation Use speculation and deoptimization in optimistic aliasing analysis. Default: + (enabled).
-H:OptimizationLog=... Enable the structured optimization log and specify where it is printed. Default: None [Extra help available]
-H:OptimizationLogPath=... Path to the directory where the optimization log is saved if OptimizationLog is set to Directory. Directories are
created if they do no exist. Default: None
-H:Optimize="2" Control code optimizations: b - optimize for fastest build time, 0 - no optimizations, 1 - basic optimizations, 2 -
advanced optimizations, 3 - all optimizations for best performance.
-H:+OptimizeLoopAccesses Enable access node optimizations for loops. Default: + (enabled).
-H:+OptimizeReturnedParameter Analysis: Detect methods that return one of their parameters and hardwire the parameter straight to the return. Default:
+ (enabled).
-H:+OptimizeVectorAPI Expand Vector API operations to optimized machine instructions. Default: + (enabled).
-H:+OptionalIdentityHashCodes Allocate memory for identity hash codes only for those objects that need it.
-H:+OutlineAllocations Outline allocations into factory methods. Default: + (enabled).
-H:+OutlineIndyStringConcatenations Outline string concatenation operations represented by invoke dynamic (indy) calls. Default: + (enabled).
-H:+OutlineSBMaterializations Allow outlined sequences of (StringBuilder|StringBuffer).append() to be materialized into a
(StringBuilder|StringBuilder) instance. Default: + (enabled).
-H:+OutlineStringBufferAppends Attempt to outline sequences of StringBuffer.append() operations. Default: + (enabled).
-H:+OutlineStringBuilderAppends Attempt to outline sequences of StringBuilder.append() operations. Default: + (enabled).
-H:+OverrideProfiles Allow multiple compilations of the same method by overriding existing profiles. Default: - (disabled).
-H:PGOAdoptedProfilesNormalizationValue=100000000000000
The value that will be used to normalize adopted profiles.
-H:+PGOContextSensitivityEnabled Enables context sensitivity in PGO. Default: + (enabled).
-H:+PGOEnableProfileNormalization Enable/disable normalization of profiles. Default: - (disabled).
-H:PGOEnabled=<path>* A comma-separated list of files from which to read the data collected for profile-guided optimization of AOT compiled
code (reads from default.iprof if nothing is specified). Each file must contain a single PGOProfiles object,
serialized in JSON format, optionally compressed by gzip. .
-H:+PGOPrintDroppedCallingContexts Print a list of all calling-contexts that are dropped during a PGO run. Default: - (disabled).
-H:PGOProfilesNormalizationValue=1000000000000000
The value that will be used to normalize collected profiles.
-H:PageSize=0 Define PageSize of a machine that runs the image. The default = 0 (== same as host machine page size).
-H:+ParseOnce When true, compiler graphs are parsed only once before static analysis. When false, compiler graphs are parsed for
static analysis and again for AOT compilation. Default: + (enabled).
-H:+ParseOnceJIT When true, each compiler graph version (DeoptTarget, AOT, JIT) needed for runtime compilation will be separately
analyzed during static analysis.When false, only one version of the compiler graph (AOT) will be used in static
analysis, and then three new versions will be parsed for compilation. Default: + (enabled).
-H:+ParseRuntimeOptions Parse and consume standard options and system properties from the command line arguments when the VM is created.
Default: + (enabled).
-H:ParsingContextMaxDepth=100 Limit the parsing context depth. Default value is arbitrary set at 100.
-H:+PartialEscapeAnalysis Default: + (enabled).
-H:+PartialRedundancyElimination Enable partial redundancy elimination. Default: + (enabled).
-H:+PartialUnroll Default: + (enabled).
-H:PartialUnrollCostReductionFactorHighTier=2
Cost/Benefit heuristic for EE unrolling in high tier: reduce cost by a constant factor when comparing with relative
benefit.
-H:PartialUnrollCostReductionFactorHotCodeMidTier=32
See PartialUnrollCostReductionFactorMidTier.
-H:PartialUnrollCostReductionFactorMidTier=8 Cost/Benefit heuristic for EE unrolling in mid tier: reduce cost by a constant factor when comparing with relative
benefit.
-H:PartialUnrollMaxIterationsHighTier=4 Maximum number of iterations to unroll for a high tier main loop.
-H:PartialUnrollMaxIterationsMidTier=16 Maximum number of iterations to unroll for a mid tier main loop.
-H:PartialUnrollMaxSizeHighTier=256 Maximum node cost size of a loop to be considered for high tier unrolling.
-H:PartialUnrollMaxSizeHotCodeMidTier=1024 See PartialUnrollMaxSizeMidTier.
-H:PartialUnrollMaxSizeMidTier=256 Maximum node cost size of a loop to be considered for mid tier tier unrolling.
-H:PartialUnrollMinFrequency=4 Minimal loop frequency to consider a loop for partial unrolling.
-H:Path=... Directory of the image file to be generated. Default: None
-H:PathProfileCutThreshold=10 The limit on the number of paths at control-flow merges. Decreasing this value reduces the number of paths, but also
shortens them.
-H:PathProfileDumpFile=... Dump information for path profile (null or file name). If set to null, then dumping is disabled. Default: None
-H:PathProfileFrequentThreshold=500 Maximum acceptable number of paths coming from the inbound of a merge if both of them are frequent.
-H:PathProfileGlobalLowFrequencyRatio=0.1 If some block's relative frequency drops below this number times the maximum relative frequency in the graph, then the
block is considered infrequent.
-H:PathProfileLocalLowFrequencyRatio=10.0 If the ratio of the merge's frequency with its inbound's frequency is greater than this threshold, then the inbound is
considered infrequent.
-H:PathProfileMaxTotalCounters=4000000 Maximum number of counters to use in path profiling for all instrumented methods.
-H:PathProfilePolicy=None Enable or disable the path-profiling algorithm. If it enables it, it also allows to select which mode to execute.
-H:+PathProfileRegenerate Controls whether the path-regeneration algorithm is executed. Default: - (disabled).
-H:+PeelALot Stress test for the loop peeling optimization by applying it aggressively. Default: - (disabled).
-H:PeelOnlyLoopWithNodeID=-1 Peel only the loop with the specific loop begin node ID for debugging purposes.
-H:PeelingConsideredMinLoopIterations=1.5 Minimal loop body iterations necessary to consider peeling.
-H:PeelingConsideredMinRelativeFrequency=4.0 Minimal relative frequency of loop begin necessary to consider peeling.
-H:PeelingHighTierCostReductionFactor=64.0 Cost/Benefit heuristic for EE simulation-based loop peeling in high tier: reduce cost by a constant factor when
comparing with relative benefit.
-H:PeelingMidTierCostReductionFactor=8.0 Cost/Benefit heuristic for EE simulation-based loop peeling in mid tier: reduce cost by a constant factor when comparing
with relative benefit.
-H:+PenalizeComplexLoopControlFlow Increase the cost of duplicating control flow splits inside loops if they are not foldable.The generally tend to
complicate control flow and generate worse code in the backend. Default: + (enabled).
-H:+PerfDataMemoryMappedFile Determines if the collected performance data should be written to a memory-mapped file so that it can be accessed by
external tools. Default: + (enabled).
-H:PhiMinificationMinimalLoopFrequency=2.0 Minimal loop frequency to consider a loop for inverted phi minifaction.
-H:+PinnedObjectAddressing Allows the addresses of pinned objects to be passed to other code. Default: + (enabled).
-H:+PlatformInterfaceCompatibilityMode Enable the behavior of old GraalVM versions. When enabled, interfaces not available for the current platform are
filtered. Default: - (disabled).
-H:PredefinedClassesConfigurationFiles=<path>*
Files describing predefined classes that can be loaded at runtime according to the schema at
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/predefined-classes-config-schema-v1.0.0.json.
-H:PredefinedClassesConfigurationResources=<string>*
Resources describing predefined classes that can be loaded at runtime according to the schema at
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/predefined-classes-config-schema-v1.0.0.json.
-H:+PreferUnsignedComparison Rewrite signed comparisons to unsigned ones if the result is equal. Default: + (enabled).
-H:+PreserveFramePointer Saves stack base pointer on the stack on method entry. Default: - (disabled).
-H:+PreventStringValueEscaping Determines if aggressive method inlining should be used to prevent escaping of String.value. Default: + (enabled).
-H:+PrintAOTCompilation Print logging information during compilation. Default: - (disabled).
-H:+PrintAnalysisCallTree Print analysis call tree, a breadth-first tree reduction of the call graph. Default: - (disabled).
-H:PrintAnalysisCallTreeType=TXT Change the output format of the analysis call tree, available options are TXT and CSV. See: Reports.md.
-H:+PrintAnalysisStatistics Print analysis results statistics. Default: - (disabled).
-H:+PrintBBInfo Enables dumping of basic blocks relative PC and frequencies in the dump directory. Default: - (disabled).
-H:+PrintBackendCFG Enable dumping scheduled HIR, LIR, register allocation and code generation info to the C1Visualizer. Default: -
(disabled).
-H:+PrintBlockMapping Enable dumping CFG built during initial BciBlockMapping. Default: - (disabled).
-H:+PrintCallEdges Print call edges with other analysis results statistics. Default: - (disabled).
-H:PrintCanonicalGraphStringFlavor=0 Choose format used when dumping canonical text for graphs: 0 gives a scheduled graph (better for spotting changes
involving the schedule) while 1 gives a CFG containing expressions rooted at fixed nodes (better for spotting small
structure differences).
-H:+PrintCanonicalGraphStrings Enable dumping canonical text from for graphs. Default: - (disabled).
-H:+PrintClassInitialization Prints class initialization info for all classes detected by analysis. Default: - (disabled).
-H:+PrintCompilation Print an informational line to the console for each completed compilation. Default: - (disabled).
-H:+PrintFeatures Print a list of active features. Default: - (disabled).
-H:PrintFlags=... Show available options based on comma-separated option-types (allowed categories: User, Expert, Debug). Default: None
-H:PrintFlagsWithExtraHelp=... Print extra help, if available, based on comma-separated option names. Pass * to show all options that contain extra
help. Default: None
-H:+PrintGOT Prints the contents of the GOT. Default: - (disabled).
-H:PrintGraph=File Where IdealGraphVisualizer graph dumps triggered by Dump or DumpOnError should be written. [Extra help available]
-H:+PrintGraphFile Setting to true sets PrintGraph=file, setting to false sets PrintGraph=network. Default: + (enabled).
-H:PrintGraphHost="127.0.0.1" Host part of the address to which graphs are dumped.
-H:PrintGraphPort=4445 Port part of the address to which graphs are dumped in binary format.
-H:+PrintGraphStateDiff Prints the difference in the graph state caused by each phase of the suite. Default: - (disabled).
-H:+PrintGraphWithSchedule Schedule graphs as they are dumped. Default: - (disabled).
-H:+PrintHeapHistogram Print class statistics of native image heap. Default: - (disabled).
-H:+PrintIRWithLIR Print HIR along side LIR as the latter is generated. Default: - (disabled).
-H:+PrintImageElementSizes Print the sizes of the elements of the built image. Default: - (disabled).
-H:+PrintImageHeapConnectedComponents A native-image run with the flag `-H:+PrintImageHeapConnectedComponents` will create reports that can help us debug
which objects got into the native image heap and why. A component represents a set of objects in the image heap.
Default: - (disabled). [Extra help available]
-H:+PrintImageHeapPartitionSizes Print the sizes of the native image heap as the image is built. Default: - (disabled).
-H:+PrintImageObjectTree Print image object hierarchy. Default: - (disabled).
-H:+PrintJNIMethods Print JNI methods added to generated image. Default: - (disabled).
-H:+PrintLIRWithAssembly Include the LIR as comments with the final assembly. Default: - (disabled).
-H:+PrintLoweringScheduleToTTY Print schedule result pre lowering to TTY. Default: - (disabled).
-H:+PrintMethodHistogram Print statistics of methods in native image heap. Default: - (disabled).
-H:+PrintOutlinedSBMethodMetrics Print histogram and metrics about the OutlinedSBMethods created. Default: - (disabled).
-H:+PrintPointsToStatistics Report analysis statistics. Default: - (disabled).
-H:+PrintProfileLoading Print to stdout when a profile is loaded. Default: - (disabled).
-H:+PrintProfilingInformation Print profiling information when parsing a method's bytecode. Default: - (disabled).
-H:+PrintRestrictHeapAccessPath Print path for @RestrictHeapAccess warnings. Default: + (enabled).
-H:+PrintRestrictHeapAccessWarnings Print warnings for @RestrictHeapAccess annotations. Default: + (enabled).
-H:+PrintRuntimeCompilationCallTree Print call tree of methods reachable for runtime compilation. Default: - (disabled).
-H:+PrintRuntimeCompileMethods Print methods available for runtime compilation. Default: - (disabled).
-H:+PrintSBOutliningCounters Print counters collected while attempting to outline sequences of StringBuffer and StringBuilder operations. Default: -
(disabled).
-H:+PrintSynchronizedAnalysis Print types used for Java synchronization. Default: - (disabled).
-H:+PrintUninterruptibleCalleeDOTGraph Print (to stderr) a DOT graph of the @Uninterruptible annotations. Default: - (disabled).
-H:+PrintUniverse Print information about classes, methods, and fields that are present in the native image. Default: - (disabled).
-H:+PrintUnmodifiedGraphs Dump a graph even if it has not changed since it was last dumped. Change detection is based on adding and deleting
nodes or changing inputs. Default: + (enabled).
-H:PriorityForceInline=... Unconditionally inline all methods matching the pattern using the priority-based inliner. See the MethodFilter option
for a description of the pattern syntax. Default: None
-H:PriorityInliningPolicy="" The policy to use, must be empty for automatic resolution.
-H:PriorityInliningTuningPolicy="DomainSpecific"
Comma-separated list of analysis policies for exploring the methods in the call graph and for inlining, empty for no
policy.
-H:PriorityNeverInline=... Never inline methods matching the pattern using the priority-based inliner. See the MethodFilter option for a
description of the pattern syntax. Default: None
-H:+ProfileAllocations Enable profiling of allocation sites. Default: - (disabled).
-H:ProfileAllocationsContext=AllocatingMethod
Control the naming and granularity of the counters when using ProfileAllocations. [Extra help available]
-H:+ProfileAnalysisOperations Track the progress of the static analysis. Default: - (disabled).
-H:+ProfileCompiledMethods Default: - (disabled).
-H:+ProfileConstantObjects Track the creation of constant objects. Default: - (disabled).
-H:+ProfileDeoptimization Print logging information during object file writing. Default: - (disabled).
-H:+ProfileLockElimination Default: - (disabled).
-H:ProfileMethodFilter=... Restrict saving or loading of profiles based on this filter. See the MethodFilter option for the pattern syntax.
Default: None
-H:+ProfileMonitors Enable profiling of monitor operations. Default: - (disabled).
-H:+ProfileOptBulkAllocation Default: - (disabled).
-H:+ProfileSelfTime Excludes time spent in invoked methods; measures total time including subcalls when turned off. Default: + (enabled).
-H:+ProfilingEnablePathProfiling Replace profiling counters with path-profiling counters. Default: - (disabled).
-H:+ProfilingEnableProfileDumpHooks Dump the PGO profiles on shutdown. Default: + (enabled).
-H:+ProfilingEnabled Instrument AOT compiled code to collect data for profile-guided optimization into default.iprof file. Default: -
(disabled).
-H:ProfilingPackagePrefixes=... A comma-separated list of package prefixes for which the PGO profiles are collected. Default: None
-H:+ProfilingPathProfilingVerify Collect profiling counters, and verify that they match the path-profile counters. Default: - (disabled).
-H:+ProfilingRDPID Use RDTSCP or RDPID if available to compute the index in the counter array. Setting this option to false ensures Knuth
hashing is used instead. Default: - (disabled).
-H:PropagateEqualityDepth=6 Maximum depth of dependency when propagating equals property.
-H:+ProtectionKeys Enable support for Memory Protection Keys. Default: - (disabled).
-H:+PruneLargeDominatorUsageTrees Default: + (enabled).
-H:PullThroughPhiCodeSizeIncrease=0.1 PullThroughPhiOptimization: Percentage in node cost graph size for the floating node duplication budget. Computed
relative to the method's graph size.
-H:PullThroughPhiCodeSizeIncreaseHotCode=2.5 See PullThroughPhiCodeSizeIncrease.
-H:QueryCodeDir="" Directory where query code for target platform should be output.
-H:+RawConditionalElimination Default: + (enabled).
-H:ReadEliminationMaxLoopVisits=5
-H:ReadProxySchedulingStrategy=LATEST_OUT_OF_LOOPS
Chose the scheduling strategy for inserting the read proxies.
-H:+ReassociateExpressions Re-associate loop invariants and constants. Default: + (enabled).
-H:+ReduceDCE Disable optional dead code eliminations. Default: + (enabled).
-H:ReflectionConfigurationFiles=<path>* One or several (comma-separated) paths to JSON files that specify which program elements should be made available via
reflection. [Extra help available]
-H:ReflectionConfigurationResources=<string>*
Resources describing program elements to be made available for reflection (see ReflectionConfigurationFiles).
-H:+ReflectionPluginTracing Enable trace logging for reflection plugins. Default: - (disabled).
-H:RegisterPressure=... Comma separated list of registers that register allocation is limited to. Default: None
-H:RelativeBenefitInliningCoefficient=0.001 The coefficient used to compute the inlining threshold; the higher, the hard to inline.
-H:+RelaxTypeFlowStateConstraints Allow a type flow state to contain types not compatible with its declared type. Default: + (enabled).
-H:+RemoveLoopSafepoints Remove safepoints on counted loop ends. Default: + (enabled).
-H:+RemoveNeverExecutedCode Default: + (enabled).
-H:+RemoveSaturatedTypeFlows Enable the type flow saturation analysis performance optimization. Default: + (enabled).
-H:+RemoveUnneededDeoptSupport Remove Deopt(Entries,Anchors,Proxies) determined to be unneeded after the runtime compiled graphs have been finalized.
Default: + (enabled).
-H:+RemoveUnusedSymbols Use linker option to prevent unreferenced symbols in image. Default: + (enabled).
-H:+ReplaceInputsWithConstantsBasedOnStamps Default: + (enabled).
-H:ReportAnalysisForbiddenType=<string>* Report error if <typename>[:<UsageKind>{,<UsageKind>}] is discovered during analysis (valid values for UsageKind:
InHeap, Allocated, Reachable).
-H:+ReportExceptionStackTraces Show exception stack traces for exceptions during image building.). Default: - (disabled).
-H:+ReportPerformedSubstitutions Report performed substitutions. Default: - (disabled).
-H:+ReportUnsafeOffsetWarnings Print unsafe operation offset warnings.). Default: - (disabled).
-H:+ReportUnsupportedElementsAtRuntime Report usage of unsupported methods and fields at run time when they are accessed the first time, instead of as an error
during image building. Default: - (disabled).
-H:ReservedAuxiliaryImageBytes=0 Size in bytes of an address space to reserve for auxiliary images.
-H:ResourceConfigurationFiles=<path>* Files describing Java resources to be included in the image according to the schema at
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/resource-config-schema-v1.0.0.json.
-H:ResourceConfigurationResources=<string>* Resources describing Java resources to be included in the image according to the schema at
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/assets/resource-config-schema-v1.0.0.json.
-H:+RespectVectorization Try avoid unrolling vectorizable loops. Default: + (enabled).
-H:+ReturnAfterAnalysis Return after analysis. Default: - (disabled).
-H:+ReuseRecursiveDuplicatedMethods Do not duplicate recursive methods but rather reuse a previous duplicate. Default: + (enabled).
-H:+RewriteStripMinedCounterTo32Bit Rewrite the counter of a strip mined loop to have a 32bit type. Default: + (enabled).
-H:RootSizePenaltyCoefficient=0.1 Reduces likelihood of spending a lot of time inlining when the IR is already large.
-H:RootSizePenaltyTypicalGraphSize=3250 At what size of the root IR graph do we start to consider applying a exploration penalty.
-H:+RotateNonLeafLoops Default: - (disabled).
-H:RotationMinLocalFrequency=2.0 Minimal loop frequency for a loop to be considered for rotation.
-H:RotationMinRelativeFrequency=1.0 Minimal relative frequency for a loop to be considered for rotation.
-H:+RunMainInNewThread Initializes and runs main entry point in a new native thread. Default: - (disabled).
-H:+RunReachabilityHandlersConcurrently Run reachability handlers concurrently during analysis. Default: + (enabled).
-H:RuntimeAssertions=<string>* Enable or disable Java assert statements at run time.
-H:RuntimeCheckedCPUFeatures=<string>* Comma separated list of CPU features that will be enabled for runtime checks. The native image may check at run time if
such features are supported by the target CPU, and can optimize certain operations based on this information. If a
feature is not supported at run time, a less optimized variant will be executed. Because of the presence of multiple
code variants, enabling runtime features can result in larger executables. To completely turn off runtime checked CPU
features, set this option to the empty string. The specific options available are target platform dependent. See
--list-cpu-features for feature list. The default values are: AMD64: 'AVX,AVX2'; AArch64: ''.
-H:+RuntimeCompilationInlineBeforeAnalysis Perform InlineBeforeAnalysis on runtime compiled methods. Default: + (enabled).
-H:+RuntimeSystemAssertions Enable or disable Java system assertions at run time. Default: - (disabled).
-H:SIMDArithmeticReduceMinLength=16 Minimum vector length for matching SIMD arithmetic reduce patterns.
-H:+SIMDVectorizationCheckLoadGroupProfitability
Check for profitability when grouping memory loads to SIMD loads. Default: + (enabled).
-H:+SIMDVectorizationDirectLoadStore Allow SIMDVectorization to vectorize load to store opportunities when there are no matching SIMD operations between load
and store. Default: - (disabled).
-H:+SIMDVectorizationSingletons Enable matching of singleton groups to increase corner-case matching. Default: - (disabled).
-H:+SIMDVectorizationVolatileLoads Allow load grouping to include grouping of volatile loads. Note currently this may generate incorrect results. Default:
- (disabled).
-H:+SIMDVectorizationVolatileWrites Allow store grouping to include grouping of volatile writes. Note currently this may generate incorrect results.
Default: - (disabled).
-H:SIMDVectorizationWindowSize=4 Set the number of dominating and dominated blocks scanned per block.
-H:+SafepointCheckInEpilogue Check for safepoints in method epilogue. Default: + (enabled).
-H:SafepointSamplerStats="" Dump some stats about the safepoint sampler into a file on this path.
-H:+SamplingCollect Perform profiling by sampling the AOT compiled code to collect data for profile-guided optimization. Default: -
(disabled).
-H:+SaveProfiles Save per compilation profile information. Default: - (disabled).
-H:SaveProfilesPath=... Path for saving compilation profiles. If the value is omitted the debug dump path will be used. Default: None
-H:+ScanObjectsParallel Object scanning in parallel. Default: + (enabled).
-H:+ScheduledDuplicationSimulation Simulation can either only process fixed nodes or schedule the graph and also process floating nodes. Default: -
(disabled).
-H:SerializationConfigurationFiles=<path>* One or several (comma-separated) paths to JSON files that specify lists of serialization configurations. [Extra help
available]
-H:SerializationConfigurationResources=<string>*
Resources describing program elements to be made available for serialization (see SerializationConfigurationFiles).
-H:SerializationDenyConfigurationFiles=<path>*
One or several (comma-separated) paths to JSON files that specify lists of serialization configurations. [Extra help
available]
-H:SerializationDenyConfigurationResources=<string>*
Resources describing program elements that must not be made available for serialization.
-H:ServiceLoaderFeatureExcludeServiceProviders=<string>*
Comma-separated list of service providers that should be excluded.
-H:ServiceLoaderFeatureExcludeServices=<string>*
Comma-separated list of services that should be excluded.
-H:+SharedLibrary Build shared library. Default: - (disabled).
-H:ShowConfiguration=none Writes to the VM log information about the compiler configuration selected.
-H:+ShowDumpFiles Print the name of each dump file path as it's created. Default: - (disabled).
-H:+ShowSubstitutionSourceInfo Controls whether the source position information of snippets and method substitutions are exposed to HotSpot. Can be
useful when profiling to get more precise position information. Default: - (disabled).
-H:+SignalHandlerBasedExecutionSampler Determines if JFR uses a signal handler for execution sampling. Default: - (disabled).
-H:+SimpleFastInflatedLocking Handle simple cases for inflated monitors in the fast-path. Default: + (enabled).
-H:+SimulateClassInitializer Simulate the effects of class initializer at image build time, to avoid class initialization at run time. Default: +
(enabled).
-H:+SimulateClassInitializerCollectAllReasons
Configuration for SimulateClassInitializer: Collect all reasons why a class initializer cannot be simulated. Default: -
(disabled).
-H:SimulateClassInitializerMaxAllocatedBytes=40000
Configuration for SimulateClassInitializer: Maximum number of bytes allocated in the image heap for each class
initializer.
-H:SimulateClassInitializerMaxInlineDepth=200
Configuration for SimulateClassInitializer: Maximum inlining depth during simulation.
-H:SimulateClassInitializerMaxLoopIterations=2000
Configuration for SimulateClassInitializer: Maximum number of loop iterations that are unrolled during simulation.
-H:+SimulationBasedLoopPeeling Use DBDS algorithm to simulate the impact of peeling on a loop. Default: + (enabled).
-H:+SimulationPruneUnlikelyBranches Ignore low frequency branches during simulation. Default: + (enabled).
-H:SizeForIPEAFrequencyDecrease=500 Size of the IR that forces a reduction in the number of IPEA runs made.
-H:SmallCompiledLowLevelGraphSize=330 If the previous low-level graph size of the method exceeds the threshold, it is not inlined.
-H:SmallGraphDuplicationBudgetFactor=1.0 See 'DuplicationBudgetFactor': for small graphs.
-H:SmallGraphSize=2000 Node cost graph size for a graph to be considered 'small'.
-H:SmallRootIrPenaltyCoefficient=0.02 Reduces the likelihood of exploring call graphs with IR size much larger than the root.
-H:+SnippetCounters Enable counters for various paths in snippets. Default: - (disabled).
-H:SoftRefLRUPolicyMSPerMB=1000 This number of milliseconds multiplied by the free heap memory in MByte is the time span for which a soft reference will
keep its referent alive after its last access. Serial GC only.
-H:+SourceLevelDebug Preserve the local variable information for every Java source line to allow line-by-line stepping in the debugger. Allow
the lookup of Java-level method information, e.g., in stack traces. Default: - (disabled).
-H:SourceLevelDebugFilter=<string>* Constrain debug info generation to the comma-separated list of package prefixes given to this option.
-H:+SpawnIsolates Support multiple isolates. Default: + (enabled).
-H:SpectrePHTBarriers=None Select a strategy to mitigate speculative bounds check bypass (aka Spectre-PHT or Spectre V1). [Extra help available]
-H:+SpectrePHTIndexMasking Mask indices to scope access to allocation size after bounds check. Default: - (disabled).
-H:+SpeculativeExecutionBarriers Stop speculative execution on all branch targets with execution barrier instructions. Default: - (disabled).
-H:+SpeculativeGuardMovement Move loop invariant guards (e.g., array bounds checks) out of loops. Default: + (enabled).
-H:+SpeculativeStoreCheck Speculates that arrays have exact type to optimize store checks. Default: + (enabled).
-H:+StackOverflowCheckInPrologue Check for stack overflow in method prologue. Default: + (enabled).
-H:StackRedZoneSize=8192 Size (in bytes) of the red zone reserved at the end of the stack. This stack space can only be used by critical VM code
and C code, e.g., to report fatal errors.
-H:+StackTrace Deprecated, has no effect. Default: + (enabled).
-H:StackYellowZoneSize=32768 Size (in bytes) of the yellow zone reserved at the end of the stack. This stack space is reserved for VM use and cannot
be used by the application.
-H:+StaticExecutable Build statically linked executable (requires static libc and zlib). Default: - (disabled).
-H:+StaticExecutableWithDynamicLibC Builds a statically linked executable with libc dynamically linked. Default: - (disabled).
-H:+StrengthenGraphWithConstants Perform constant folding in StrengthenGraphs. Default: + (enabled).
-H:+StressExplicitExceptionCode Stress the code emitting explicit exception throwing code. Default: - (disabled).
-H:+StressInvokeWithExceptionNode Stress the code emitting invokes with explicit exception edges. Default: - (disabled).
-H:+StressTestEarlyReads Stress the code by emitting reads at earliest instead of latest point. Default: - (disabled).
-H:+StrictConfiguration When configuration files do not match their schema, abort the image build instead of emitting a warning. Default: -
(disabled).
-H:+StrictDeoptInsertionChecks Perform checks that guards and deopts aren't introduced in graphs that should handle exceptions explicitly. Default: -
(disabled).
-H:+StrictImageHeap Enable the strict image heap mode that allows all classes to be used at build-time but also requires types of all
objects in the heap to be explicitly marked for build-time initialization. Default: - (disabled).
-H:+StrictProfiles Throw an error if an attempt is made to overwrite/update a profile loaded from disk. Default: + (enabled).
-H:+StrictQueryCodeCompilation Use strict checks when performing query code compilation. Default: + (enabled).
-H:StringIndexOfConstantLimit=4096 String.indexOf invocations will be evaluated at compile time if the receiver is a constant and its length is smaller
than this value.
-H:+StripDebugInfo Use a separate file for debug info. Default: + (enabled).
-H:+StripMineALot Force strip mining of all loops that can be strip mined. Default: - (disabled).
-H:+StripMineCountedLoops Default: + (enabled).
-H:+StripMineInvertedLoops Strip mine inverted loops. Default: + (enabled).
-H:+StripMineNonCountedLoops Default: + (enabled).
-H:+SupportCompileInIsolates Support runtime compilation in separate isolates (enable at runtime with option CompileInIsolates).
-H:+SupportJsrBytecodes Default: + (enabled).
-H:+SupportOSRWithLocks Support OSR compilations with locks. If DeoptAfterOSR is true we can per definition not have unbalanced enter/exits
mappings. If DeoptAfterOSR is false insert artificial monitor enters after the OSRStart to have balanced enter/exits
in the graph. Default: + (enabled).
-H:+SupportPredefinedClasses Enable support for predefining additional classes. Default: + (enabled).
-H:+SupportRecurringCallback Support a per-thread timer that is called at a specific interval. Default: + (enabled).
-H:+SuppressStderr Suppress console error output for unittests. Default: - (disabled).
-H:+SuppressStdout Suppress console normal output for unittests. Default: - (disabled).
-H:SystemicCompilationFailureRate=1 Compilation failure rate indicating a systemic compilation problem that will issue a warning. The value is made absolute
and clamped to produce P, a value between 0 and 100. Systemic failure is detected if the percent of failing
compilations in a sliding time window >= P. A negative value will cause the VM to exit after issuing the warning. Set
to 0 to disable systemic compilation problem detection.
-H:TargetPlatform="" Selects native-image compilation target (in <OS>-<architecture> format). Defaults to host's OS-architecture pair.
-H:TempDirectory=<path>* Directory for temporary files generated during native image generation. If this option is specified, the temporary files
are not deleted so that you can inspect them after native image generation.
-H:+ThrowLinkAtBuildTimeIOExceptions Instead of warning, throw IOExceptions for link-at-build-time resources at build time. Default: - (disabled).
-H:ThrowMissingRegistrationErrors=<string>* Throw Native Image-specific errors when trying to access an element that has not been registered. [Extra help available]
-H:ThrowMissingRegistrationErrorsPaths=<string>*
Trigger missing registration errors from all types in the given class or module-path entries. [Extra help available]
-H:+ThrowUnsafeOffsetErrors Throw unsafe operation offset errors.). Default: + (enabled).
-H:Time=... Pattern for specifying scopes in which timing is enabled. See the Dump option for the pattern syntax. An empty value
enables all timers unconditionally. Default: None
-H:+TimeStampProfiling Profile method execution time. Default: - (disabled).
-H:TimedDynamicCounters=-1 Turn on the benchmark counters, and displays the results every n milliseconds.
-H:Timers=... Comma separated names of timers that are enabled irrespective of the value for Time option. An empty value enables all
timers unconditionally. Default: None
-H:TraceBytecodeParserLevel=0 The trace level for the bytecode parser. A value of 1 enables instruction tracing and any greater value emits a frame
state trace just prior to each instruction trace.Instruction tracing output from multiple compiler threads will be
interleaved so use of this option make most sense for single threaded compilation. The MethodFilter option can be used
to refine tracing to selected methods.
-H:TraceClassInitialization=<string>* Comma-separated list of fully-qualified class names that class initialization is traced for.
-H:+TraceDuplicatedMethods Trace duplicated methods. Default: - (disabled).
-H:+TraceEscapeAnalysis Default: - (disabled).
-H:+TraceExceptionHandlerStub Trace execution of stub used to handle an exception thrown by a callee. Default: - (disabled).
-H:+TraceInlineDuringParsing Traces inlining performed during bytecode parsing. Default: - (disabled).
-H:+TraceInlining Enable tracing of inlining decisions. Default: - (disabled). [Extra help available]
-H:+TraceInliningForStubsAndSnippets Enable inlining decision tracing in stubs and snippets. Default: - (disabled).
-H:TraceLIRGeneratorLevel=0 The trace level for the LIR generator.
-H:+TraceLocalizationFeature When enabled, localization feature details are printed. Default: - (disabled).
-H:+TraceLoggingFeature When enabled, logging feature details are printed. Default: - (disabled).
-H:TraceMonitorsMethodFilter=... Trace monitor operations in methods whose fully qualified name contains this substring. Default: None
-H:TraceMonitorsTypeFilter=... Trace monitor operations on objects whose type contains this substring. Default: None
-H:+TraceNativeToolUsage Trace all native tool invocations as part of image building. Default: - (disabled).
-H:TraceObjectInstantiation=<string>* Comma-separated list of fully-qualified class names that object instantiation is traced for.
-H:+TraceParserPlugins Traces use of plugins during bytecode parsing. Default: - (disabled).
-H:+TraceSecurityServices Enable tracing of security services automatic registration. Default: - (disabled).
-H:+TraceUnwindStub Trace execution of the stub that routes an exception to a handler in the calling frame. Default: - (disabled).
-H:+TraceVMOperations Trace VMOperation execution. Default: - (disabled).
-H:+TrackAccessChain Track the callers for methods and accessing methods for fields. Default: - (disabled).
-H:+TrackGraphSizesInDuplication Enable (if Count is enabled) graph size tracking during every duplication iteration. Default: - (disabled).
-H:TrackIPEAStatistics=none Track IPEA statistics in substratePriorityInliner.
-H:TrackInliningStatistics=none Track inlining statistics (inlining duration, call tree size, compiler node counts, and the number of callsites). One
of: none, interactive.
-H:+TrackInputFlows Track the input for type flows. Default: - (disabled).
-H:TrackMemUse=... Pattern for specifying scopes in which memory use tracking is enabled. See the Dump option for the pattern syntax. An
empty value enables all memory use trackers unconditionally. Default: None
-H:+TrackNodeInsertion Track source stack trace where a node was inserted into the graph. Default: - (disabled).
-H:+TrackNodeSourcePosition Track the NodeSourcePosition. Default: - (disabled).
-H:+TreatRuntimeCodeInfoReferencesAsWeak Determines if references from runtime-compiled code to Java heap objects should be treated as strong or weak. Default: +
(enabled).
-H:TrivialInliningSize=10 Graphs with less than this number of nodes are trivial and therefore always inlined.
-H:TrivialLoopSizeLimitForPeeling=512.0 Loop peeling will consider any loop with a size (in terms of estimated machine instructions) below this value to be a
prime candidate for peeling. Larger loops will only be considered for peeling if the simulated benefit of peeling is
relatively high. The larger the loop, the greater the expected benefit has to be.
-H:TruffleCompilerConfiguration=... Select a compiler configuration for Truffle compilation (default: use Graal system compiler configuration). Default:
None
-H:+TruffleHostInlining Whether Truffle host inlining is enabled. Default: + (enabled).
-H:TruffleHostInliningBaseBudget=5000 Maximum budget for Truffle host inlining for runtime compiled methods.
-H:TruffleHostInliningByteCodeInterpreterBudget=100000
Maximum budget for Truffle host inlining for runtime compiled methods with a BytecodeInterpreterSwitch annotation.
-H:TruffleHostInliningMaxExplorationDepth=1000
Determines the maximum call depth for exploration during host inlining.
-H:TruffleHostInliningMaxSubtreeInvokes=20 Maximum number of subtree invokes for a subtree to get inlined until it is considered too complex.
-H:TruffleHostInliningMinFrequency=0.001 Minimum relative frequency for calls to get inlined. Default 0.001 on HotSpot and no minimum frequency on SVM.
-H:+TruffleHostInliningPrintExplored When logging is activated for this phase enables printing of only explored, but ultimately not inlined call trees.
Default: - (disabled).
-H:+TruffleImmutableFrameFields Whether Truffle should mark final frame fields as immutable. Default: + (enabled).
-H:+TruffleTrustedNonNullCast Whether Truffle trusted non-null casts are enabled. Default: + (enabled).
-H:+TruffleTrustedTypeCast Whether Truffle trusted type casts are enabled. Default: + (enabled).
-H:+TrustFinalDefaultFields Determines whether to treat final fields with default values as constant. Default: + (enabled).
-H:+TryExplodeOverPhis PullThroughPhiOptimization: Enable floating node duplication over multiple phi nodes at once. Default: + (enabled).
-H:+TryPhiPhiPulls PullThroughPhiOptimization: Enable floating node duplication over phis where the target node has different phis as
input. Default: + (enabled).
-H:TuneInlinerExploration=0.0 Increases or decreases the time spent exploring inlining opportunities under the assumption that more time results in
better peak performance and less time reduces time to reach (a lower) peak performance. The value of the option is
clamped between -1 and 1 inclusive. Anything below 0, reduces the exploration time and anything above 0 increases
exploration time. Note that this option is only a heuristic and should be tuned for any specific application.
-H:TypeCheckMaxHints=2 The maximum number of profiled types that will be used when compiling a profiled type check. Note that
TypeCheckMinProfileHitProbability also influences whether profiling info is used in compiled type checks.
-H:TypeCheckMinProfileHitProbability=0.5 If the probability that a type check will hit one the profiled types (up to TypeCheckMaxHints) is below this value, the
type check will be compiled without profiling info.
-H:TypeFlowPrinterInRadius=0 How many levels of inputs to print. A value of 0 prints only the target flow.
-H:TypeFlowPrinterOutRadius=0 How many levels of outputs to print. A value of 0 prints only the target flow.
-H:TypeFlowSaturationCutoff=20 The maximum number of types recorded in a type flow. -1 indicates no limitation.
-H:TypicalCallGraphSize=100 Denotes the call graph size that is considered medium size.
-H:TypicalGraphSize=3250 The typical graph size at which inlining pressure must start growing.
-H:TypicalGraphSizeInvokeBonus=70 The increase in estimated typical graph size after inlining, per each extra invoke.
-H:TypicalGraphSizeMax=15000 The maximum in estimated inlined typical graph size.
-H:+UnlockExperimentalVMOptions Enable and disable normal processing of flags relating to experimental options. Default: - (disabled).
-H:+UnresolvedIsError Report unresolved elements as errors. Default: + (enabled).
-H:+UnrollEmptyLoops Unroll empty loops. Default: - (disabled).
-H:+UnrollInvertedLoops Unroll inverted (tail counted) loops. Default: + (enabled).
-H:UnrollMaxIterations=16
-H:+UnrollMultiEndLoops Unroll loops with multiple loop ends. Default: + (enabled).
-H:+UnrollMultiExitLoops Unroll loops with multiple loop exits. Default: + (enabled).
-H:UnsafeAutomaticSubstitutionsLogLevel=1 Unsafe automatic substitutions logging level: Disabled=0, Basic=1, Info=2, Debug=3.).
-H:+UnsafeOffsetWarningsAreFatal Print unsafe operation offset warnings.). Default: - (disabled).
-H:+UseApplicationCodeSourceLocation Return the application path as the Class.getProtectionDomain().getCodeSource().getLocation() for all classes that have
no explicit ProtectionDomain.
-H:+UseBranchesWithin32ByteBoundary Force branch instructions to align with 32-bytes boundary, to mitigate the jcc erratum. See
https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf for
more details. If not set explicitly, the default value will be determined according to the CPU model. Default: -
(disabled).
-H:+UseCAPCache Indicate the C Annotation Processor to use previously cached native information when generating C Type information.
Default: - (disabled).
-H:+UseCalleeSavedRegisters Use callee saved registers to reduce spilling for low-frequency calls to stubs (if callee saved registers are supported
by the architecture). Default: + (enabled).
-H:+UseCompilationStatistics Enables CompilationStatistics. Default: - (disabled).
-H:+UseCompressedReferenceShift Use bit-shifting to enlarge the address range with narrow references. Default: + (enabled).
-H:+UseCompressedReferences Use compressed references (32-bit instead of 64-bit references to Java objects). Default: + (enabled).
-H:+UseContainerSupport Enable detection and runtime container configuration support. Default: + (enabled).
-H:+UseDedicatedVMOperationThread Determines if VM operations should be executed in a dedicated thread. Default: - (disabled).
-H:+UseDirectCallTrampolinesALot Force many trampolines to be needed for inter-method calls. Normally trampolines are only used when a method destination
is outside the range of a pc-relative branch instruction. Default: - (disabled).
-H:+UseEpsilonGC Use a no-op GC. Default: - (disabled).
-H:+UseExceptionProbability Default: + (enabled).
-H:+UseExperimentalReachabilityAnalysis Use experimental Reachability Analysis instead of points-to. Default: - (disabled).
-H:+UseG1GC Determines if the G1 garbage collector should be used. Default: - (disabled).
-H:+UseGraphCache Turn on graph caching. Default: + (enabled).
-H:+UseIPEA Use InterproceduralPartialEscapeAnalysisPhase in priorityInliner. Default: + (enabled).
-H:+UseImagebuildDebugSections Emit debuginfo debug.svm.imagebuild.* sections with detailed image-build options. Default: + (enabled).
-H:UseLibC=... Selects the libc implementation to use. Available implementations: glibc, musl, bionic. Default: None
-H:+UseLoopEndFrequencies Derive loop frequencies only from backedge frequencies instead of from loop exit frequencies. Default: - (disabled).
-H:+UseLoopLimitChecks Default: + (enabled).
-H:+UseMethodChecks Perform method-based checks during inlining. Default: + (enabled).
-H:+UseMonitorFastPath Use thin locking fast path in snippets. Default: + (enabled).
-H:+UseNullRegion Determines if a null region is present between the heap base and the image heap. Default: + (enabled).
-H:+UseOldMethodHandleIntrinsics Force using legacy method handle intrinsics. Default: - (disabled).
-H:+UsePartialEscapeSelectiveInlining Use PartialEscapeSelectiveInliningPhase to give PartialEscape phase more opportunities. Default: - (disabled).
-H:+UsePriorityInlining Use priority-based inlining. Default: + (enabled).
-H:+UsePriorityInliningPEA Turn on partial escape analysis during inlining. Default: + (enabled).
-H:+UseReachabilityMethodSummaries Use method summaries for Reachability Analysis. Default: - (disabled).
-H:+UseRememberedSet Determines if a remembered sets is used, which is necessary for collecting the young and old generation independently.
Default: + (enabled).
-H:+UseSerialGC Use a serial GC. Default: + (enabled).
-H:+UseServiceLoaderFeature Automatically register services for run-time lookup using ServiceLoader. Default: + (enabled).
-H:+UseSnippetGraphCache Use a cache for snippet graphs. Default: + (enabled).
-H:+UseSnippetTemplateCache Use a LRU cache for snippet templates. Default: + (enabled).
-H:+UseStringInlining Determines if the string inlining optimization should be used. Default: - (disabled).
-H:+UseTLAB Use thread-local object allocation. G1 GC only. Default: + (enabled).
-H:+UseThinLocking Use thin locking to optimize monitor operations. Default: - (disabled).
-H:+UseTrappingNullChecks Use traps for null checks instead of explicit null-checks. Default: + (enabled).
-H:+UseTypeCheckHints Default: + (enabled).
-H:VTunePath="" Path to VTune installation (usually /opt/intel/oneapi/vtune/latest/ or /opt/intel/vtune_amplifier).
-H:VectorFoldMinIterations=4 Only generate SIMD loops for vector folds expected to iterate at least this many times.
-H:+VectorIntrinsics Enable vectorized array copy intrinsics. Default: + (enabled).
-H:+VectorPolynomialIntrinsics Enable vectorized polynomial intrinsics. Default: - (disabled).
-H:VectorUnroll=1 Unroll vectorized loops.
-H:+Vectorization Enable vectorization. Default: + (enabled).
-H:+VectorizeAllocation Enable vectorized array initialization. Default: + (enabled).
-H:+VectorizeConditional Enable vectorization of conditional code. Default: + (enabled).
-H:+VectorizeDeopts Enable vectorization of loops with conditional deopts before writes. Default: + (enabled).
-H:+VectorizeFoldShaped Enable vectorization of loops implementing a higher-order 'fold' function. Default: + (enabled).
-H:+VectorizeGather Enable vectorization of vector gather operations. Default: + (enabled).
-H:+VectorizeHashes Enable vectorization of hashCode patterns. Default: + (enabled).
-H:+VectorizeIntegerMinMax Enable vectorization of integer min/max operations. Default: + (enabled).
-H:+VectorizeLoops Enable vectorization of loops. Default: + (enabled).
-H:+VectorizeMapShaped Enable vectorization of loops implementing a higher-order 'map' function. Default: + (enabled).
-H:+VectorizeNegativeStride Enable vectorization of loops with negative strides. Default: + (enabled).
-H:+VectorizeReachabilityFences Enable vectorization of loops with reachability fences. Default: + (enabled).
-H:+VectorizeSIMD Enable detection of SIMD patterns. Default: + (enabled).
-H:+VectorizeSafepoints Enable vectorization of loops with safepoints. Default: + (enabled).
-H:+VectorizeSequence Enable vectorization of sequence values. Default: + (enabled).
-H:Verify=... Pattern for specifying scopes in which logging is enabled. See the Dump option for the pattern syntax. Default: None
-H:+VerifyAfterGC Verify the heap after doing a garbage collection if VerifyHeap is enabled. Serial GC only. Default: + (enabled).
-H:+VerifyBalancedMonitors Emit extra code to dynamically check monitor operations are balanced. Default: - (disabled).
-H:+VerifyBeforeGC Verify the heap before doing a garbage collection if VerifyHeap is enabled. Serial GC only. Default: + (enabled).
-H:+VerifyDeoptimizationEntryPoints Verify that all possible deoptimization entry points have been properly compiled and registered in the metadata.
Default: - (disabled).
-H:+VerifyDuplicationOperations Default: - (disabled).
-H:+VerifyGraalGraphEdges Perform expensive verification of graph inputs, usages, successors and predecessors. Default: - (disabled).
-H:+VerifyGraalGraphs Verify graphs often during compilation when assertions are turned on. Default: + (enabled).
-H:+VerifyGraalPhasesSize Verify before - after relation of the relative, computed, code size of a graph. Default: - (disabled).
-H:+VerifyHeap Verify the heap before and after each collection. Default: - (disabled).
-H:+VerifyHeapAtReturn Perform platform dependent validation of the Java heap at returns. Default: - (disabled).
-H:+VerifyKillCFGUnusedNodes Verify that there are no new unused nodes when performing killCFG. Default: - (disabled).
-H:+VerifyLoopVectorization Run expensive checks to verify the graph after loop vectorization. Default: - (disabled).
-H:+VerifyNamingConventions Verify naming conventions during image construction. Default: - (disabled).
-H:+VerifyPhases Default: - (disabled).
-H:+VerifyReferences Verify all object references if VerifyHeap is enabled. Serial GC only. Default: + (enabled).
-H:+VerifyReferencesPointIntoValidChunk Verify that object references point into valid heap chunks if VerifyHeap is enabled. Serial GC only. Default: -
(disabled).
-H:+VerifyRememberedSet Verify the remembered set if VerifyHeap is enabled. Serial GC only. Default: + (enabled).
-H:+VerifyTypes Verify type states computed by the static analysis at run time. This is useful when diagnosing problems in the static
analysis, but reduces peak performance significantly. Default: - (disabled).
-H:+VerifyWriteBarrierElimination Add code to verify that eliminated barriers weren't needed. Default: - (disabled).
-H:+VerifyWriteBarriers Verify write barriers. Serial GC only. Default: - (disabled).
-H:Virtualize="" Build the native image for a virtualized environment. The argument is a path to a JSON file that specifies the
virtualized environment properties.
-H:+WarnAboutCodeSignatureMismatch Print to stdout when a compilation performed with different profiles generates different backend code. Default: +
(enabled).
-H:+WarnAboutGraphSignatureMismatch Print to stdout when a compilation performed with different profiles generates different frontend IR. Default: +
(enabled).
-H:+WarnAboutMissingReflectionOrJNIMetadataElements
Warn when reflection and JNI configuration files have elements that could not be found on the classpath or modulepath.
Default: - (disabled).
-H:+WarnAboutNotCachedLoadedAccess Print to stdout when requesting profiling info not present in a loaded profile. Default: + (enabled).
-H:+WarnMissingIntrinsic Print a warning when a missing intrinsic is seen. Default: - (disabled).
-H:WriteSinkingExcludeFields=... Exclude certain fields from write sinking. Fields are specified with the same syntax as method filters, minus the
signature part. Default: None
-H:+ZapChunks Fill unused memory chunks with a sentinel value. Serial and epsilon GC only. Default: - (disabled).
-H:+ZapConsumedHeapChunks After use, Fill memory chunks with a sentinel value. Serial and epsilon GC only. Default: - (disabled).
-H:+ZapProducedHeapChunks Before use, fill memory chunks with a sentinel value. Serial and epsilon GC only. Default: - (disabled).
-H:+ZapStackOnMethodEntry Default: - (disabled).

浙公网安备 33010602011771号