This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Compile-time measurements in Chromium


On Mon, Feb 6, 2012 at 7:06 PM, Hans Wennborg <hans@chromium.org> wrote:
> Hello all,
>
> I have been measuring compile times for Chromium using different
> versions of GCC and Clang, and I thought it might be a good idea to
> share the results in case someone else finds them interesting.
>
> Two measurements were conducted: average compile time for a file in a
> set of 100 randomly selected translation units, and average compile
> time for a file in the set of the 10 translation units that are
> slowest to compile.
>
> Each translation unit was first compiled once for warm-up, and then
> compiled five times using "perf stat -r5" [1]. The means of the wall
> clock compile times were then added together and divided by number of
> translation units.
>
> The measurements were conducted on an x64 machine running Ubuntu
> GNU/Linux. CPU frequency scaling had been disabled.
>
> The GCC versions used were 4.4.6, 4.6.2, and 4.7 built from svn
> revision r183805.
> The Clang/LLVM versions used were 3.0, and 3.1 built from svn revision r149506.
> The Chromium version used was r119678. Source is available from [2].
>
> The flags used were -fsyntax-only -O0, -O0, -O0 -g, -O2, -O2 -g. Note
> that the -fsyntax-only results are incomparable between compilers
> since the flag means different things for GCC and Clang.
>
> GCC was configured with "--enable-languages=c,c++ --disable-multilib
> --enable-checking=release"
> Clang was configured with "--enable-optimized --disable-assertions"
>
> Attached are plots of the results and the full output from running the
> measurements.
>
> These are the average compile times for compiling a file in a set of
> 100 randomly selected files: (time values in seconds)
>
> ? ? ? ? ? ?gcc 4.4 ?gcc 4.6 ?gcc 4.7 ?clang 3.0 ?clang 3.1
> -fs-o -O0 ? 0.450 ? ?0.458 ? ?0.501 ? ?0.449 ? ? ?0.439
> -O0 ? ? ? ? 0.624 ? ?0.631 ? ?0.684 ? ?0.504 ? ? ?0.494
> -O0 -g ? ? ?0.722 ? ?0.727 ? ?0.781 ? ?0.661 ? ? ?0.653
> -O2 ? ? ? ? 0.811 ? ?0.803 ? ?0.874 ? ?0.603 ? ? ?0.597
> -O2 -g ? ? ?0.916 ? ?0.979 ? ?1.06 ? ? 0.809 ? ? ?0.809
>
>
> These are the average compile times for compiling a file in the set of
> the 10 files that are slowest (as when compiled with gcc 4.4 using
> -O2) to compile:
>
> ? ? ? ? ? ?gcc 4.4 ?gcc 4.6 ?gcc 4.7 ?clang 3.0 ?clang 3.1
> -fs-o -O0 ? 2.18 ? ? 1.70 ? ? 1.86 ? ? 1.70 ? ? ? 1.66
> -O0 ? ? ? ? 5.87 ? ? 5.33 ? ? 5.71 ? ? 2.90 ? ? ? 2.85
> -O0 -g ? ? ?6.71 ? ? 6.19 ? ? 6.61 ? ? 4.00 ? ? ? 4.08
> -O2 ? ? ? ? 11.9 ? ? 10.8 ? ? 12.0 ? ? 6.72 ? ? ? 6.80
> -O2 -g ? ? ?13.2 ? ? 13.6 ? ? 15.1 ? ? 9.57 ? ? ? 9.78

It would be interesting to have access to preprocessed source
of the file that is slowest to compile (or alternatively the file from
this set that shows the greatest difference between gcc 4.6 and gcc 4.7
at -O2).  Can you open a bugzilla at gcc.gnu.org with that file(s)
attached?

Thanks,
Richard.

>
> Thanks,
> Hans
>
>
> [1] http://linux.die.net/man/1/perf-stat
> [2] http://dev.chromium.org/developers/how-tos/get-the-code


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]