RFR: 8355003: Implement JEP 515: Ahead-of-Time Method Profiling [v19]

Ioi Lam iklam at openjdk.org
Tue May 13 23:15:57 UTC 2025


On Tue, 13 May 2025 22:40:42 GMT, Igor Veresov <iveresov at openjdk.org> wrote:

>> Improve warm-up time by making profile data from a previous run of an application instantly available, when the HotSpot Java Virtual Machine starts. Specifically, enhance the [AOT cache](https://openjdk.org/jeps/483) to store method execution profiles from training runs, reducing profiling delays in subsequent production runs.
>> 
>> More details in the JEP: https://bugs.openjdk.org/browse/JDK-8325147
>
> Igor Veresov has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 82 commits:
> 
>  - Merge branch 'master' into pp2
>  - Address Ioi's comments
>  - 8356885: Don't emit C1 profiling for casts if TypeProfileCasts is off
>    
>    Reviewed-by: vlivanov, kvn
>  - 8352755: Misconceptions about j.text.DecimalFormat digits during parsing
>    
>    Reviewed-by: naoto
>  - 8356667: GenShen: Eliminate races with ShenandoahFreeSet::available()
>    
>    Reviewed-by: wkemper
>  - 8356819: [macos] MacSign should use "openssl" and "faketime" from Homebrew by default
>    
>    Reviewed-by: asemenyuk
>  - 8356107: [java.lang] Use @requires tag instead of exiting based on os.name or separatorChar property
>    
>    Reviewed-by: naoto, bpb
>  - 8356447: Change default for EagerJVMCI to true
>    
>    Reviewed-by: yzheng, kvn, never
>  - 8351415: (fs) Path::toAbsolutePath should specify if an absolute path has a root component
>    
>    Reviewed-by: alanb
>  - 8356551: Javac rejects receiver parameter in constructor of local class in early construction context
>    
>    Reviewed-by: mcimadamore
>  - ... and 72 more: https://git.openjdk.org/jdk/compare/10dcdf1b...1669f900

test/hotspot/jtreg/runtime/cds/appcds/aotProfile/AOTProfileFlags.java line 115:

> 113: 
> 114:         out = CDSTestUtils.executeAndLog(pb, "production_failure");
> 115:         out.shouldContain("does not equal");

Since all the flags have `Profile` in them, I think we should use this to match the intended output:


String errorPattern = "Profile.* setting .* does not equal the current .*Profile.* setting";
out.shouldNotMatch(errorPattern);
...
out.shouldMatch(errorPattern);

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24886#discussion_r2087753972


More information about the hotspot-dev mailing list