> 3 nov. 2018 kl. 23:24 skrev David Holmes <david.hol...@oracle.com>:
> 
>> 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/  :)

What do you mean? To have more than one set of PCH? As far as I know, all 
compilers we use only support a single PCH per source file to compile. So while 
you could have a PCH tailored per source file, that would only make sense in a 
scenario were you recompile all source files (but no header files) often. 

/Magnus

> 
> 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

Reply via email to