Обсуждение: build times
I have been investigating some build performance issues, and trying to narrow down causes of slowness, and observed an odd effect, which was suggested by a huge time difference between building from git and building from a tarball. If I do make -C src/port all and then wait 10 seconds or so and do make -j 3 or even just plain make the build finishes much much faster (like 1m vs 5m) than if I had not run the first command. I have seen this on a Fedora VM (VirtualBox, W7 host, Athlon II X2) and a ScientificLinux 6 machine (dual quad xeon E5620). The setup is a vpath build configured thus: ../pgsql/configure --enable-cassert --enable-debug --enable-integer-datetimes --with-perl --with-python --with-tcl --with-krb5 --with-includes=/usr/include/et --with-openssl --with-ldap --with-libxml --with-libxslt Can anyone with a bit more make-fu than I have suggest why this should be so? Can we tweak the make files so hacks like this aren't required to get a fast build? Can anyone replicate this odd result? cheers andrew
Andrew Dunstan <andrew@dunslane.net> writes: > I have been investigating some build performance issues, and trying to > narrow down causes of slowness, and observed an odd effect, which was > suggested by a huge time difference between building from git and > building from a tarball. > If I do > make -C src/port all > and then wait 10 seconds or so and do > make -j 3 > or even just plain > make > the build finishes much much faster (like 1m vs 5m) than if I had not > run the first command. Can't reproduce that here. What I do notice on a Fedora 14 machine is that ccache seems to be enabled by default, ie you get caching even when you just say "gcc", and that makes a huge difference in build times. I see 70 seconds after "rm -rf ~/.ccache", versus 4 seconds with it fully populated. Building src/port first saves nothing in either starting state. I wonder whether your experiments got affected by something similar. regards, tom lane
On 10/02/2011 05:25 PM, Tom Lane wrote: > Andrew Dunstan<andrew@dunslane.net> writes: >> I have been investigating some build performance issues, and trying to >> narrow down causes of slowness, and observed an odd effect, which was >> suggested by a huge time difference between building from git and >> building from a tarball. >> If I do >> make -C src/port all >> and then wait 10 seconds or so and do >> make -j 3 >> or even just plain >> make >> the build finishes much much faster (like 1m vs 5m) than if I had not >> run the first command. > Can't reproduce that here. What I do notice on a Fedora 14 machine is > that ccache seems to be enabled by default, ie you get caching even when > you just say "gcc", and that makes a huge difference in build times. > I see 70 seconds after "rm -rf ~/.ccache", versus 4 seconds with it > fully populated. Building src/port first saves nothing in either > starting state. > > I wonder whether your experiments got affected by something similar. > > Yes, possibly, although SL6 (which is an RHEL clone) doesn't have ccache by default. I'm not sure what happened there, as now I can't reproduce it either. Sorry for the noise. cheers andrew