RFR: JDK-8213339 Update precompiled.hpp with headers based on current frequency

David Holmes david.holmes at oracle.com
Sat Nov 3 12:09:28 UTC 2018


Looks okay - thanks for doing all the experiments! (Though I'm still 
curious what happens if you recompile individual header files :) ).

  25 // Precompiled headers are turned off for Sun Studio,

May as well change to Solaris Studio if you're going to fix the typo :)

Thanks.
David

On 3/11/2018 7:06 PM, Magnus Ihse Bursie wrote:
> The reasons for the current set of files included in precompiled.hpp is 
> somewhat lost in the mists of history. However, it is clear that it is 
> not optimal.
> 
> This patch replaces the current set with a new set, based on how often a 
> header file is included in a C++ file. This selection contains all 
> header files that are included by at least 130 C++ files. Testing has 
> shown that this is around the optimal value -- include many more, and 
> too many "innocent" files get hurt by unneeded work, leave out many 
> more, and we miss out on optimization possibilities.
> 
> The same set turned out to work well for both clang and gcc. However, 
> files named "*.inline.hpp" did hurt rather than help performance, so 
> those have been left out. For visual studio, the same set was also 
> optimal, as long as the inline files were included. Presumably, visual 
> studio is better than gcc/clang on handling precompiled headers 
> containing inlined code.
> 
> Here are some rough comparisons from our internal CI system, for 
> building the target "hotspot" from scratch.
> 
> macosx-x64:
> old: 00:05:00
> new: 00:03:47
> 
> linux-x64:
> old: 00:05:43
> new: 00:04:51
> 
> windows-x64:
> old: 00:05:18
> new: 00:04:33
> 
> linux-aarch64:
> old: 00:07:57
> new: 00:03:48
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8213339
> WebRev: 
> http://cr.openjdk.java.net/~ihse/JDK-8213339-update-precompiled-headers/webrev.01 
> 
> 
> /Magnus



More information about the build-dev mailing list