Stop using precompiled headers for Linux?

Erik Joelsson erik.joelsson at
Fri Nov 2 16:21:29 UTC 2018

Nice work!

What exactly are you measuring, "make hotspot" or some other target?

If we can find a reasonable set of extra files for the windows pch that 
restores all or most of the performance, that would of course be 
preferable. I doubt we will find a significantly better selection on Mac 
compared to Linux though.


On 2018-11-02 07:00, Magnus Ihse Bursie wrote:
> On 2018-11-02 12:14, Magnus Ihse Bursie wrote:
>> Caveats: I have only run this on my local linux build with the 
>> default server JVM configuration. Other machines will have different 
>> sweet spots. Other JVM variants/feature combinations will have 
>> different sweet spots. And, most importantly, I have not tested this 
>> at all on Windows. Nevertheless, I'm almost prepared to suggest a 
>> patch that uses this selection of files if running on gcc, just as 
>> is, because of the speed improvements I measured. 
> I've started running tests on other platforms. Unfortunately, I don't 
> have access to quite as powerful machines, so everything takes much 
> longer. For the moment, I've only tested my "BKM" (best known method) 
> from linux, to see if it works.
> For xcode/macos I got:
> real    4m21,528s
> user    27m28,623s
> sys    2m18,244s
> hotspot with original pch
> real    4m28,867s
> user    29m10,685s
> sys    2m14,456s
> hotspot without pch
> real    3m6,322s
> user    19m3,000s
> sys    1m41,252s
> hotspot with new BKM pch
> So obviously this is a nice improvement even here. I could probably 
> try around a bit and see if there is an even better fit with a 
> different selections of header files, but even without that, I'd say 
> this patch is by itself as good for clang as it is for gcc.
> For windows I got:
> real    6m39.035s
> user    0m58.580s
> sys     2m48.138s
> hotspot with original pch
> real    10m29.227s
> user    1m6.909s
> sys    2m24.108s
> hotspot without pch
> real    6m56.262s
> user    0m57.563s
> sys    2m27.514s
> hotspot with new BKM pch
> I'm not sure what's going on with the user time numbers here. 
> Presumably cygwin cannot get to the real Windows time data. What I can 
> see is the huge difference in wall clock time between PCH and no PCH. 
> I can also see that the new trimmed BKM list retains most of that 
> improvement, but is actually somewhat slower that the original list. 
> I'm currently rerunning with a larger set on Windows, to see if this 
> helps improve things. I can certainly live with a precompiled.hpp that 
> includes some additional files on Windows.
> /Magnus

More information about the build-dev mailing list