On Mon, 25 Aug 2025 11:09:19 GMT, Francesco Andreuzzi <d...@openjdk.org> wrote:

>> In this PR I propose to refresh the included headers in hotspot 
>> `precompiled.hpp`. The current set of precompiled headers was refreshed in 
>> 2018, 7 years ago. I repeated the same operations and measurements after 
>> refreshing the set of precompiled headers according to the current usage 
>> frequency.
>> 
>> These are the results I observed. Depending on the platform, the improvement 
>> is between 10 and 20% in terms of total work (user+sys). The results are in 
>> seconds.
>> 
>> 
>> linux-x64 GCC
>> master      real 81.39 user 3352.15 sys 287.49
>> JDK-8365053 real 81.94 user 3030.24 sys 295.82
>> 
>> linux-x64 Clang
>> master      real 43.44 user 2082.93 sys 130.70
>> JDK-8365053 real 38.44 user 1723.80 sys 117.68
>> 
>> linux-aarch64 GCC
>> master      real 1188.08 user 2015.22 sys 175.53
>> JDK-8365053 real 1019.85 user 1667.45 sys 171.86
>> 
>> linux-aarch64 clang
>> master      real 981.77 user 1645.05 sys 118.60
>> JDK-8365053 real 791.96 user 1262.92 sys 101.50
>
> Francesco Andreuzzi has updated the pull request with a new target base due 
> to a merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains 25 additional 
> commits since the last revision:
> 
>  - revert
>  - Merge branch 'master' into refresh-precompiled-hotspot
>  - comment
>  - nn
>  - conditional
>  - time-trace
>  - conditional includes
>  - variants
>  - magic number: 400
>  - inline
>  - ... and 15 more: https://git.openjdk.org/jdk/compare/d3649fee...aea7c793

Oh, `-ftime-trace` is cute.

Current PR still gives me considerable improvements on M1, I'd ballpark 15% 
faster Hotspot build.


CONF=macosx-aarch64-server-fastdebug make clean hotspot

# Before
1237.16s user 230.31s system 635% cpu 3:50.81 total
1239.11s user 233.62s system 643% cpu 3:48.88 total
1239.93s user 231.30s system 643% cpu 3:48.50 total

# After
1064.64s user 206.11s system 624% cpu 3:23.34 total
1067.86s user 208.56s system 621% cpu 3:25.39 total
1065.11s user 208.03s system 597% cpu 3:33.21 total

src/hotspot/share/precompiled/precompiled.hpp line 33:

> 31: 
> 32: #include "classfile/javaClasses.inline.hpp"
> 33: #if INCLUDE_SHENANDOAHGC

So the common style is to move conditional includes at the end of the include 
block. I think the same rule applies here.

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

PR Review: https://git.openjdk.org/jdk/pull/26681#pullrequestreview-3151331144
PR Review Comment: https://git.openjdk.org/jdk/pull/26681#discussion_r2298028288

Reply via email to