[asterisk-dev] build times (was Re: policy for managing headers)

Luigi Rizzo rizzo at icir.org
Fri Nov 16 10:57:03 CST 2007

since there was some concern about aggregating common system headers
into asterisk/compat.h, i did a bit of measurement with the basic
files (stdio.h, stdlib.h, inttypes.h, string.h, stddef.h).

Results are below (all computed from a warm filesystem cache, i.e.
after doing a couple of times a full build followed by a 'gmake clean'):

    trunk -O2 , unmodified
	146.276u 11.120s 2:32.12 103.4% 4005+2454k 0+904io 3pf+0w
	145.869u 11.529s 2:32.31 103.3% 4012+2455k 0+904io 2pf+0w
    trunk -O2 with the above headers grouped in compat.h
	146.001u 11.725s 2:32.90 103.1% 3999+2447k 0+928io 2pf+0w
	145.970u 11.635s 2:32.64 103.2% 3988+2446k 0+970io 2pf+0w
	146.259u 11.707s 2:32.97 103.2% 3988+2447k 0+962io 2pf+0w

so the difference is basically in the noise, i cannot even tell
which one is faster.

Measurement from a cold filesystem cache are difficult these days
with large memories, but i saw approx 10-15s more in the real time
the first time i built the code (but this included a configure pass).

What really made an impressive difference was the use of ccache:
after the first build (so that the cache is filled up) here is what you get:

	15.480u 8.765s 0:25.26 95.9%    2557+1067k 5+1186io 85pf+0w
	15.269u 8.975s 0:24.74 97.9%    2535+1062k 10+1249io 85pf+0w
	14.520u 9.026s 0:24.28 96.9%    2519+1072k 2+1237io 85pf+0w

I think i will have a hard time reverting to not using ccache...



More information about the asterisk-dev mailing list