diff --git a/docs/version0.42.md b/docs/version0.42.md index 4e3610f93e..15d1c01529 100644 --- a/docs/version0.42.md +++ b/docs/version0.42.md @@ -28,6 +28,7 @@ The following new features and notable changes since version 0.41.0 are included - [New binaries and changes to supported environments](#binaries-and-supported-environments) - ![Start of content that applies to Java 21 (LTS) and later](cr/java21plus.png) [OpenJ9 `jextract` removed](#openj9-jextract-removed) ![End of content that applies to Java 21 (LTS) and later](cr/java_close_lts.png) - [Change in the `System.gc()` call behavior](#change-in-the-systemgc-call-behavior) +- [New `-XX:[+|-]IProfileDuringStartupPhase` option added](#new-xx-iprofileduringstartupphase-option-added) - ![Start of content that applies to Java 21 (LTS) and later](cr/java21plus.png) [New JDK 21 features](#new-jdk-21-features) ![End of content that applies to Java 21 (LTS) and later](cr/java_close_lts.png) ## Features and changes @@ -52,6 +53,10 @@ Now, the `System.gc()` call triggers the GC cycle twice internally to clear the For more information, see [Garbage collection](gc_overview.md). +### New `-XX:[+|-]IProfileDuringStartupPhase` option added + +I-Profiler collects profiling information at the time of JIT compilation. The I-Profiler uses an algorithm to decide whether to collect the information or not during a VM startup. You can overrule the algorithm result and control the collection of the profiling information during the startup phase by using the [`-XX:[+|-]IProfileDuringStartupPhase`](xxiprofileduringstartupphase.md) option. + ### ![Start of content that applies to Java 21 plus](cr/java21plus.png) New JDK 21 features The following features are supported by OpenJ9: diff --git a/docs/xxiprofileduringstartupphase.md b/docs/xxiprofileduringstartupphase.md new file mode 100644 index 0000000000..f350f98042 --- /dev/null +++ b/docs/xxiprofileduringstartupphase.md @@ -0,0 +1,49 @@ + + +# -XX:[+|-]IProfileDuringStartupPhase + +This option enables or disables the I-Profiler data collection of the profiling information during a VM startup. + +## Syntax + + -XX:[+|-]IProfileDuringStartupPhase + +| Setting | Effect | +|----------------------------------|---------| +|`-XX:+IProfileDuringStartupPhase` | Enable | +|`-XX:-IProfileDuringStartupPhase` | Disable | + +## Explanation + + I-Profiler collects profiling information that is used to optimize methods at the time of JIT compilation. This interpreter profiling data is stored in the shared classes cache and improves the VM startup time. I-Profiler uses an algorithm that includes the shared classes cache properties to decide whether to collect the information or not during a VM startup. You can overrule the algorithm result and control the collection of the profiling information during the startup phase by using the `-XX:[+|-]IProfileDuringStartupPhase` option. + + - If the `-XX:+IProfileDuringStartupPhase` option is specified, the VM collects the I-Profiler information during startup. Use this option to collect the latest profiling information for optimizing the methods and storing the information in the shared classes cache. By using this option, the optimization levels of methods might increase but might affect performance in the startup phase. + - If the `-XX:-IProfileDuringStartupPhase` option is specified, the VM does not collect the I-Profiler information during startup. Use this option if the shared classes cache already has the I-Profiler information and therefore, you don't have to collect the new information and affect performance. + +## See also + +- [The JIT compiler](jit.md) + + + diff --git a/mkdocs.yml b/mkdocs.yml index 6cfb6a04c3..f4d925fabb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -409,6 +409,7 @@ nav: - "-XX:InitialRAMPercentage" : xxinitialrampercentage.md - "-XX:InitialHeapSize" : xxinitialheapsize.md - "-XX:[+|-]InterleaveMemory" : xxinterleavememory.md + - "-XX:[+|-]IProfileDuringStartupPhase" : xxiprofileduringstartupphase.md - "-XX:[+|-]JITInlineWatches" : xxjitinlinewatches.md - "-XX:JITServerAddress" : xxjitserveraddress.md - "-XX:JITServerAOTCacheDir" : xxjitserveraotcachedir.md