RFR: 8365053: Refresh hotspot precompiled.hpp with headers based on current frequency [v14]

Magnus Ihse Bursie ihse at openjdk.org
Mon Aug 25 15:30:58 UTC 2025


On Mon, 25 Aug 2025 13:04:14 GMT, Francesco Andreuzzi <duke at 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 incrementally with two additional commits since the last revision:
> 
>  - nl
>  - move down

The new PCH file is surprisingly short. But we should trust the performance measurements, and this seems to be much better than the existing file. It might be an indication that gcc/clang have improved in performance for non-PCH headers. If you are up to it, it would be interesting to have a comparison run on your test platforms for running without PCH. You don't have to retest everything you ran, but just some representative selection perhaps? It's not relevant to this PR, but more to the general discussion of how relevant it is to keep PCH at all.

Apart from that, I still share Kim's worry that the platform with the most potential impact is Windows, and we have no numbers at all there. Can you arrange to test so we at least to not have any regressions there? And also check how the performance changes if you also manually include the same set of `inline` files as is currently in the PCH.

But if that looks fine, then I guess this is ready for integration.

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

PR Comment: https://git.openjdk.org/jdk/pull/26681#issuecomment-3220737322


More information about the hotspot-dev mailing list