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

David Holmes 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 :) ).

s/recompile/precompile/  :)

David

>   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