Stop using precompiled headers for Linux?

Magnus Ihse Bursie magnus.ihse.bursie at
Fri Nov 2 14:00:26 UTC 2018

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.


More information about the build-dev mailing list