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

Francesco Andreuzzi duke at openjdk.org
Mon Aug 11 21:37:14 UTC 2025


On Fri, 8 Aug 2025 22:11:32 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:
> 
>  - magic number: 400
>  - inline

| Feature               | Baseline `precompiled.hpp` (Mean ±)  | Updated `precompiled.hpp` (Mean ±)  |
|-----------------------|---------------------|----------------------|
| epsilongc             | 505.78 ± 9.08        | 499.36 ± 3.21         |
| epsilongc cds         | 523.93 ± 9.42        | 510.68 ± 0.99         |
| epsilongc compiler1   | 514.89 ± 2.28        | 518.67 ± 14.22        |
| epsilongc compiler2   | 758.34 ± 5.56        | 736.65 ± 32.95        |
| g1gc                  | 674.96 ± 6.37        | 693.39 ± 23.25        |
| epsilongc services jfr| 707.45 ± 2.08        | 670.55 ± 1.50         |
| epsilongc jni-check   | 522.61 ± 1.82        | 517.46 ± 1.67         |
| epsilongc compiler1 jvmci | 604.92 ± 4.23    | 600.61 ± 8.79         |
| epsilongc compiler2 jvmci | 836.85 ± 7.40    | 792.07 ± 16.18        |
| epsilongc services jvmti | 549.48 ± 6.87     | 553.74 ± 7.67         |
| epsilongc management  | 486.56 ± 5.68        | 480.58 ± 4.59         |
| epsilongc opt-size    | 476.57 ± 1.87        | 476.71 ± 1.23         |
| parallelgc            | 497.28 ± 3.90        | 493.68 ± 2.19         |
| serialgc              | 477.84 ± 0.86        | 476.14 ± 1.32         |
| epsilongc services    | 476.99 ± 2.44        | 478.74 ± 3.47         |
| shenandoahgc          | 676.10 ± 5.35        | 623.43 ± 3.11         |
| zgc                   | 620.95 ± 1.84        | 621.86 ± 4.35         |

`±`: maximum and minimum measurements

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

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


More information about the hotspot-dev mailing list