RFR: JDK-8213339 Update precompiled.hpp with headers based on current frequency
david.holmes at oracle.com
Sat Nov 3 22:24:15 UTC 2018
On 3/11/2018 10:09 PM, David Holmes wrote:
> 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 :)
> 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.
>> old: 00:05:00
>> new: 00:03:47
>> old: 00:05:43
>> new: 00:04:51
>> old: 00:05:18
>> new: 00:04:33
>> old: 00:07:57
>> new: 00:03:48
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8213339
More information about the build-dev