build times

Started by Andrew Dunstanover 14 years ago3 messages
#1Andrew Dunstan
andrew@dunslane.net

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#1)
Re: build times

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

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: build times

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